1、传统单体应用架构的问题
单一的应用架构存在的问题:
1、业务场景下,代码杂糅到了一起,耦合度太高,如果后期添加其他功能模块,较麻烦,扩展性不强
2、代码可维护性不高
3、运营成本和维护成本大大提高
4、无法对单独的某个模块进行分布式部署
2、如何解决传统应用架构的问题?
将系统进行拆分,转变成面向服务的体系结构(SOA),如果后期有需求,可直接增加所需要的服务。
3、什么是微服务架构?
微服务的优点:
1、复杂可控
2、可独立部署
3、技术选型灵活
4、容错率高
5、易于扩展
6、功能特定
微服务本质上比SOA拆分的更细
4、微服务架构的拆分以及架构组件
如何进行拆分?
微服务适合于未来有一定扩展复杂度的,并且有很大用户增量预期的应用。对于微服务的差分,可以参考如下几条建议:
1、通过业务功能分解并定义与业务功能相对应的服务
2、将域驱动设计分解为多个子域
3、按照动词或用例分解,并定义负责特定操作的服务。例如一个负责完成订单的航运服务
4、通过定义一个给定类型的实体或资源的所有操作负责的服务来分解名词或资源。例如一个负责管理用户账户的账户服务。
5、微服务架构的搭建
微服务架构需要满足的要求:
1、根据业务模块划分服务种类
2、每个服务可独立部署且相互隔离
3、通过轻量级API调用服务
4、服务需保证良好的高可用性
6、微服务架构的技术选型
springboot开发
duboo、zookeeper、Consul等用于服务的注册和发现
duboo、spring cloud ribbon用于负载均衡
Hystrix用于服务容错
docker用于部署