微服务拆分
什么是微服务:一种软件架构风格,以专注于单一职责的很多小型项目为基础,组合出复杂的大型应用
为什么使用微服务:
单一职责:一个微服务负责一部分业务功能,其核心数据不依赖于其他模块,
团队自治、服务自治:微服务独立打包部署,避免了其他服务的影响
单体架构可用性较差,功能之间的相互影响比较大:某一接口的并发量过高会影响其他接口的性能
拆分要求:高内聚低耦合(想起了设计模式)
横向:按照业务模块拆
纵向:抽取公共服务,提高复用性
拆分:本身最大的项目是project,每一个项目都是一个module,通过maven聚合进行拆分。
拆分之后如果有两个业务需要互相调用,这时我们就需要远程调用
//1注入容器 @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } <T> RestTemplate<T> exchange( String, HttpMethod, @nullable HttpEntity<?>, //请求实体 class<T>, //返回值类型 Map<K,V> //请求参数 );
关于返回值类型:
如果是普通类:直接admin.class即可
如果是集合类:字节码会擦除泛型,这里使用new ParameterizedTypeReference<>() {},即可,返回一个ResponseEntity<T>类型数据,getBody即可取出其中内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2023-04-22 2023/4/22 SCRUM个人博客