Skip to content

概念

  • 简单说就是把一个复杂系统拆除多个互相独立的模块,通过第三方插件进行交互。
  • 例如:淘宝有订单模块,用户模块,购物车模块。我们可以把这几个模块,分开部署。

优点

  • 独立开发:所有微服务都可以根据各自的功能轻松开发
  • 独立部署:根据他们所提供的服务,可以在任何应用中单独部署
  • 故障隔离:即时应用中的一个服务不起作用,系统仍然继续运行
  • 混合技术栈:可以用不同的语言和技术来构建同一应用程序的不同服务
  • 粒度缩放:各个组件可根据需要进行扩展,无需将所有组件融合到一起

缺点

  • 增加故障排除挑战
  • 由于远程呼叫而增加延迟
  • 增加了配置和其他操作的工作量
  • 难以保持交易安全
  • 艰难地跨越各种便捷跟踪数据
  • 难以在服务之间进行编码

微服务有哪些流程

  1. 服务拆分
  • 把现有的业务进行拆分。分成不同模块,独立开发部署。
  1. 服务注册/发现
  • 例如用户服务需要订单服务的订单列表,他怎么找到订单服务呢?那么就需要一个管理各个服务的状态工具,通过工具我能知道有-哪些服务可以调用。
  • 常用服务注册工具有Zookeeper、Consul、Nacos、Eureka
  1. 链路追踪
  • 微服务出现问题难以找到问题,需要一个准确的工具知道,用户请求到那个节点,那个服务出现问题。
  1. 服务监控
  • 提前监控,防范于未然。
  1. 熔断、服务降级、限流