微服务开发:挑战、解决方案与能力模型
1. 微服务实施的基础需求
在实施微服务时,需要将每个服务的日志传输到集中管理的日志存储库。这样做有两个好处:一是服务无需依赖本地磁盘或本地 I/O;二是日志文件集中管理,便于进行各种分析,如历史分析、实时分析和趋势分析。通过引入关联 ID,可以轻松跟踪端到端事务。
随着微服务数量的增加、版本的多样化以及服务实例的增多,确定哪个服务在哪个服务器上运行、服务的健康状况以及服务之间的依赖关系变得困难。而单体应用在特定或固定的服务器集上运行时,这些问题更容易解决。
除了理解部署拓扑和服务健康状况,识别服务行为、调试和找出热点也面临挑战,因此需要强大的监控能力来管理这样的基础设施。
1.1 依赖管理
依赖管理是大规模微服务部署中的关键问题。需要解决以下几个方面的问题:
- 如何识别和减少变更的影响?
- 如何知道所有依赖的服务是否正常运行?
- 如果某个依赖服务不可用,服务将如何表现?
过多的依赖会给微服务带来挑战,以下是四个重要的设计方面:
1. 通过合理设计服务边界来减少依赖。
2. 尽可能将依赖设计为松耦合,并通过异步通信方式设计服务交互。
3. 使用诸如断路器等模式来解决依赖问题。
4. 使用可视化依赖图来监控依赖关系。
1.2 组织文化挑战
微服务实施中最大的挑战之一是组织文化。为了利用微服务的快速交付能力,组织应采用敏捷开发流程、持续集成、自动化 QA 检查、自动化交付管道、自动化部署和自动基础设施供应。
遵循瀑布式开发或重量级发布管理流程且发
超级会员免费看
订阅专栏 解锁全文
171万+

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



