一、单体架构
将业务的所有功能集中在一个项目中开发,打成一个包部署。
1. 优点
- 架构简单
- 部署成本低
2.缺点
- 耦合度高不利于大型项目开发
二、分布式架构
根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
1.优点
- 降低了服务耦合
- 扩展性好
- 由利于服务升级拓展
2.缺点
- 架构复杂
- 运维、监控、部署难度高
三、什么是微服务?
微服务是一种经过良好架构设计的分布式架构方案,微服务架构的特征:
-
单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责, 避免重复业务开发。 -
面向服务:微服务对外暴露业务接口。 -
自治:团队独立、技术独立、数据独立、部署独立。 -
隔离性强:服务调用做好隔离、容错、降级、避免出现级联问题。 -
微服务技术对比 -
企业需求
四、服务拆分及远程调用
1.服务拆分注意事项
-
不同微服务,不要重复开发相同业务。 -
微服务数据独立,不要访问其它微服务的数据库。 -
微服务可以将自己的业务暴露为接口,供其它微服务调用。
2.微服务调用
- 微服务调用方式:基于RestTemplate发起的http请求实现远程调用
2.http请求做远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可。
3.提供者与消费者
- 服务提供者:次业务中,被其它微服务调用的服务。( 提供按口给其它微服务)。
- 服务消费者:一次业务中,调用其它微服务的服务。( 调用其它微服务提供的接口)。
- 一个服务既可以是提供者又可以是消费者
|