微服务开发与应用全解析
1. 微服务开发生命周期
1.1 通信
服务之间的通信可以是异步或同步的。同步系统更易于理解,但异步系统具有高度解耦性,能降低变更风险,且可能更具弹性,不过其系统复杂度较高。在微服务应用中,需要平衡同步和异步消息传递,以有效编排和协调多个微服务的操作。
1.2 弹性
在分布式系统中,服务不能完全信任其协作方,这并非一定是因为代码编写不佳或人为错误,而是无法确保服务之间的网络或行为可靠且可预测。服务需要具备应对故障的弹性,可通过在出现错误时退让、限制不良协作方的请求速率以及动态查找健康服务等防御性设计来实现。
1.3 部署微服务
开发和运维在构建微服务时必须紧密结合。开发人员应参与服务的运行,因为了解服务的运行方式有助于在系统发展过程中做出更好的设计决策。为实现可靠、低成本的新服务部署,需要完成以下两个关键步骤:
1. 标准化微服务部署工件 :不同语言和框架有各自的部署工具,且部署环境复杂,包括服务器选择、应用依赖管理和启动方式等。缺乏一致性会增加部署管理和引入新技术的成本。容器是解决此问题的理想工具,它能实现操作系统级别的虚拟化,具有快速构建和启动的优势,可在一台机器上运行多个容器,简化本地开发并优化云环境中的资源使用。其中,Docker 是较为成熟和易用的容器工具。
2. 实施持续交付管道 :持续交付是指开发人员能够随时将软件可靠地发布到生产环境的实践。为实现这一目标,需要构建从代码提交到实时运行的管道,该管道应包含一系列验证步骤,以确保代码的正确性,并实现自动化交付。持续交付可降低风险,
超级会员免费看
订阅专栏 解锁全文
168万+

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



