1.什么是微服务?(微服务全套技术栈)
微服务是分布式架构的一种,将服务(单体)做拆分,解决服务拆分的各种问题,不仅仅是spingcloud的服务治理问题。
1.注册中心:记录每个服务的ip,端口。
2.配置中心:统一管理微服务的配置中心(热更新)
3.服务网关:用户身份校验,用户请求路由到服务(部分负载均衡)
4.服务集群(数据库集群)
5.分布式缓存:任务请求先到缓存(在内存中查询)(解决高并发、分布式)
6.分布式搜索:
7.异步通信消息队列:解决链路服务太长,(响应时间缩短,提高并发(如秒杀))
8.分布式日志服务:
9.系统监控和链路追踪:
10.微服务项目集群自动化部署(叫持续集成):jenkins、docker、rancher、kubernetes等。
2.认识微服务(服务架构演变)
1.单体架构:一个项目,单包部署。优点架构简单,部署成本低。缺点耦合度高,扩展性差。例学生管理系统。
2.分布式架构:根据业务功能对系统进行拆分,每个业务员模块独立项目开发,称一个服务。优点降低服务耦合,有利于服务升级拓展。例如京东,淘宝。
分布式架构要考虑的问题(服务治理):
: 服务拆分粒度?
: 服务集群地址如何维护?
: 服务之间如何实现远程调用?
:服务健康状态如何感知?
微服务是一种良好架构设计的分布式架构方案,微服务架构特征:
:单一职责:拆分粒度更小,对应唯一业务能力,避免重复业务开发。
:面相服务:微服务对外暴露业务接口。
:自 治:团队独立,技术独立,数据独立,部署独立。
:隔离性强:服务调用做好隔离,容错,降级,避免出现级联问题
:缺点:架构非常复杂,运维,监控,部署难度提高。