一个典型的微服务架构(MSA)通常包含以下组件:
- 客户端
- 身份标识提供者: 提供访问服务所需的身份密钥,服务网关会负责完成对请求客户端的基本验签工作
- API服务网关: 客户端访问目标服务的入口点,经服务请求经服务网关路由到目标服务提供方。服务网关的优点:
- 服务更新操作对客户端透明
- 服务与服务之间的消息路由协议不一定非得基于WEB
- 服务网关可以统一进行安全授权或者负载均衡等操作
- 消息:
- 同步消息机制:REST,HTTP
- 异步消息机制:AMQP, STOMP, MQTT
- 数据库: 每个微服务都有自己相对独立的数据源,并且完成相对独立的业务功能。
- 静态资源: 微服务中静态资源通常通过Content Delivery Networks (CDNs). 管理和分发
- 服务管理: 主要负责节点间服务均衡以及故障是识别
- 服务发现: 维护服务列表以及服务路由
微服务架构优缺点
优点 | 缺点 |
---|---|
多技术栈 | 增加问题定位难度 |
服务功能单一纯粹、仅负责单一业务功能 | 因为服务调用链路增加,所以延迟增加 |
支持独立部署 | 额外的配置和其他管理操作 |
支持连续的服务更新 | 增加事务一致性的挑战 |
有效确保单个服务的安全性 | 跨服务链路导致数据难以跟踪 |
多个服务并行开发和部署 | 服务直接难以共享代码 |
原文链接: