微服务
1、微服务的优点和缺点
- 优点
- 服务通过网络依赖,耦合低,替换和复用便捷,拓展性高;
- 服务独立部署,故障隔离,减低重大事故的发生的概率
- 对于一个项目中,技术更加开放,技术栈混用,这就表示开发团队是比较容易协调的,人员安排灵活;
- 缺点
- 复杂度高,运维成本等也会有所增加
- 大量的服务调用存在通信时延,相对来说性能降低了
- 数据的一致性
2、对微服务是怎么理解的
- 相对于一体式的应用设计来说,微服务是比较分散的去中心化的架构设计,将应用系统分解成许多小的应用服务,每个服务各司其职,像是分治的思想。
- 通常每个服务都被视为组件,可以轻松被替换升级,每个服务可以用适合的技术实现,对使用的技术限制比较小,拓展能力更强
- 微服务架构下的应用对开发团队的要求比较灵活,可以充分调配不同的人做适当的事情
3、微服务怎么实现的
- 一个微服务应用会根据需要由许多组件组成
- 1、服务治理与发现
- Eureka自我保护机制:Eureka不会马上剔除健康检查不通过的服务,认为服务可能正在尝试重连;
- eurake 与 nacos:
- eurake需要配合config中心和MQ,git对配置进行管理,nacos通过长连接管理可以动态刷新;
- eurake没有管理界面,nacos有管理界面
- nacos面向的技术组件不同,springCloud全家桶或者是alibaba的生态组件;
- Nacos支持由客户端或服务端发起的健康检查,Eureka是由客户端发起心跳
- 2、微服务网关
- 作用:限流、监控、路由、鉴权
- gateway与kong:
- 3、服务通讯方式
- feign
- 4、服务监控告警
- 监控log、链路
- 5、服务链路跟踪
- slueth + zipkin
4、cloud的权限管理
- 使用SpringSecurity的认证授权框架,微服务中有Oauth2的认证授权的用户服务,网关充当资源服务器的角色
- 请求访问网关时,对请求进行权限检查
5、eurake
- eurake提供服务治理的能力,服务提供者启动时会将服务信息注册到eurake;
- eurake是ap的一致性协议,这个和zk不同,更加注重服务的可用性,自我保护机制和集群部署方式都体现了这个ap
- 自我保护机制:eurake在一段时间内接收到心跳续约低于85%的时候,会进入自我保护,判定为网络服区,延迟剔除服务下线。
- eurake集群:多个eurake实例组成集群时,实例之间平等,不存在主从,并且通过复制实现实例之间注册信息的同步
- eurake的心跳续约:通过客户端主动发起心跳进行服务续约