第2章 微服务

第2章 微服务

2.2 微服务概要介绍

2.2.1 微服务架构原理

20230321161721
20230321161834

2.2.2 微服务的特征

  • 特征1,组件化与多服务:传统应用通过库实现组件,微服务则是通过服务实现组件,从而将应用拆散为一系列的服务运行在不同的进程中,因此单一服务的局部变化仅需重新部署对应的服务进程;
  • 特征2,围绕“业务功能”组织团队:
    20230321165539
  • 特征3,关注产品而不是项目,即“谁构建谁运行”:微服务架构倾向于让开发团队负责整个产品的全部生命周期,对软件在生产环境中的运行负全部责任;
    20230321170538
  • 特征4,“智能端点”与“傻瓜管道”:微服务将服务间的通信尽可能地轻量化,
    20230321170652
  • 特征5&特征6:去中心化的治理技术&去中心化的管理数据
    20230321170854

2.3 微服务的高级进阶

2.3.2 微服务的进程间通信(IPC)

  • 微服务架构中,每个服务实例都是一个进程,因此服务之间的交互必须通过进程间通信(IPC)实现;
  • IPC通信类型:
    20230321171617
    • 请求/响应:客户端向服务器发起请求等待响应,等待过程可能会造成线程阻塞;
    • 请求/异步响应:服务器端异步响应请求,客户端不会阻塞,而且被设计为默认响应,不回立刻到达;
    • 发布/订阅:客户端发布通知消息,被零个或多个感兴趣的服务消费;
    • 发布/异步响应:客户端发布请求消息,然后等待从感兴趣服务发回的响应;
  • IPC通信技术:同步的如基于HTTP的REST或Thrift,异步的基于消息的通信模式,如AMQP或STOMP;

2.3.5 微服务部署模式

20230321172529

  • 单机单服务:方式简单,但存在监控困难问题;
  • 多应用程序容器:
  • 单主机单服务:
  • 使用PaaS:PaaS平台自动配置机器,对系统进行弹性管理;

2.4 从单体架构转向微服务

20230321174135

  • 建议采取逐步迁移单体应用的策略,逐步生成微服务新应用,与旧的单体式应用集成,随着时间的推移,单体式应用在整个架构中的比例逐渐下降,直到消失或变为微服务架构的一部分;
  • 微服务和单体架构集成,需要增加2个新的模块:
    • 请求路由器:负责处理入口请求,将新功能请求发送给新开发的业务,而将传统请求发给单体式应用;
    • 胶水代码:负责将微服务和单体应用集成到一起,负责数据整合,微服务通过胶水代码从单体应用中读写数据;
  • 微服务可通过3种方式访问单体应用数据:
    • 访问单体应用提供的远程API
    • 直接访问单体应用数据库
    • 自己维护一份从单体应用种同步的数据
posted @ 2023-04-03 17:39  不会飞的超人Lee~  阅读(32)  评论(0)    收藏  举报