一、微服务:系统架构设计的一种设计风格,相对于传统单体系统架构而言,微服务架构将业务系统各个功能模块拆分为可以独立运行和部署的不同服务,各个服务之间通过RESTful API进行通信协作。微服务解决了单体系统后期维护成本大并且难以控制等问题。
二、微服务架构特性:
1、服务组件化:对服务进行组件化分解,各个组件独立部署和运行,组件之间通过RESTfil API进行通讯协作;
2、按业务组织团队:每个微服务都是业务的宽栈或全栈实现。既负责数据的持久化,又负责用户接口的定义,因此传统的前后的、DBA、运行团队的划分不适合微服务架构的实施。按业务组织团队能减少服务内部修改造成的内耗且团队的边界会更清晰;
3、做“产品的态度”:需要用做“产品”态度对待每一个服务,对服务的整个生命周期负责,持续关注服务的运作情况;
4、智能端点和哑管道:避免组件间繁琐的通信,采用粗粒度通讯协议,使用HTTP RESTful API或轻量级的消息协议进行信息传递和服务调用;在轻量级消息总线上进行信息传递,类似RabbitMQ等提供的消息中间件;
5、去中心化数据管理:微服务管理自用的数据库,微服务间强调“无事务”调用,对于数据的一致性,保证最后处理结果是一致结果,并通过补偿机制来处理错误数据;
6、基础设施自动化:自动化测试和自动化部署;
7、容错设计:需考虑快速检查服务错误以及自动化恢复服务;
8、演进式设计:
三、spring cloud
spring cloud 是基于spring boot 实现的微服务架构开发工具,它为微服务涉及的配置管理、服务治理、智能路由、断路器、控制总线、微代理、全局锁、分布式会话等提供了简单的开发方式。