微服务拆分

什么是微服务:一种软件架构风格,以专注于单一职责的很多小型项目为基础,组合出复杂的大型应用

为什么使用微服务:

  单一职责:一个微服务负责一部分业务功能,其核心数据不依赖于其他模块,

  团队自治、服务自治:微服务独立打包部署,避免了其他服务的影响

  单体架构可用性较差,功能之间的相互影响比较大:某一接口的并发量过高会影响其他接口的性能

拆分要求:高内聚低耦合(想起了设计模式)

    横向:按照业务模块拆

    纵向:抽取公共服务,提高复用性

拆分:本身最大的项目是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即可取出其中内容

 

posted @ 2024-04-22 17:02  天启A  阅读(35)  评论(0)    收藏  举报