微服务

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的心跳续约:通过客户端主动发起心跳进行服务续约