微服务应用设计:架构、通信与存储全解析
1. 六边形架构优势
六边形架构对测试支持更为友好,它能通过隔离外部系统,更轻松地测试业务逻辑。这种架构解决了分层架构的弊端,是构建应用中各个服务的上佳之选。
2. 服务通信策略
2.1 服务发现
服务彼此通信前,必须先“知晓”对方,这就是服务发现。它是一种自动监控和发现计算机网络内设备或服务的机制,能让调用者动态感知网络设备的变化。现实中最大的服务发现系统或许就是 DNS,借助它我们能轻松访问互联网上大量的网站。
有人可能会问,为何需要服务发现?若应用初始化配置包含所有服务地址,不就能直接访问了吗?确实,服务数量较少时这种方法可行,但对于包含成百上千个服务的应用,就行不通了。新服务加入网络无法被自动发现,需修改配置并重启应用加载,频繁的配置更改会带来更高的维护成本。而且大规模服务集群的节点伸缩、版本和可用性状态频繁变化,若无自动检测机制,系统难以正常运行。所以,服务发现对微服务架构至关重要。
服务发现系统通常有三个角色:
- 服务提供者 :可理解为向外暴露 API 的 Web 服务,有 IP 地址和端口作为服务地址,在微服务应用中可视为上游服务,即被调用的服务。
- 服务消费者 :消费服务,访问服务提供者的 API 获取数据并实现功能,在微服务应用中可看作下游服务,即调用者。
- 注册中心 :可理解为集中存储服务地址信息的数据库,是服务提供者和消费者之间的桥梁。
若一个服务既访问上游服务又向下游服务提供 API
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



