微服务
微服务是一种软件架构风格,它是以专注于单一职责的很多小型项目为基础,组合成复杂的大型应用
- 单体架构
将业务的所有功能集中在一个项目中进行开发,打成一个包部署
微服务的特征:
粒度小
,团队自治
,服务自治
SpringCloud
SpringCloud是目前国内使用最广泛的微服务框架,SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配
拆分
- 创业型项目
先采用单体架构,快速开发,随着规模扩大逐渐拆分
- 确定的大型项目
如何拆分
高内聚
:每个微服务的职责要尽量单一,包含的业务相互关联度高,完整度高
低耦合
:每个微服务的功能要相互独立,尽量减少对其它微服务的依赖
从拆分方式来说,一般分为:
纵向拆分
:按照业务模块进行拆分
横向拆分
:抽取公共服务,提高复用性
远程调用
如果将一个项目拆分成多个项目,多个项目之间需要进行调用,这时该如何进行调用:
Spring给我们提供了一个RestTemplate工具,可以方便的实现Http请求的发送
- 注入RestTemplate到Spring容器中
@Bean
public RestTemplate restTemplate(){return new RestTemplate();
}
- 调用其中的方法发起请求:
public <T> ResponseEntity<T> exchange(String url, //请求路径HttpMethod method, //请求方式@Nullable HttpEntity<?> requestEntity,//请求实体,可以为空Class<T> responseType,//返回值类型Map<String,?> uriVariables //请求参数
)