课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
微服务开发是随着互联网的不断发展而逐渐被程序员接触和掌握的一个开发方式,而今天我们就一起来了解一下,微服务架构部署包含哪些内容。
1.服务部署包分发
当发布指令从调度中心下发后,每个机房的发布调度服务器会通知本机房内应用服务器集群中的每个服务节点到本机房的软件版本仓库下载对应的服务发布包。
这里要注意的是,如果服务节点过多,同时下载微服务的部署包可能会产生瞬时的“网络风暴”,导致网络被堵塞。因此,在下载调度上需要做一些优化,让这些服务节点分批下载,或者控制能同时下载的服务节点的数量。
2.服务状态检测
每个服务节点上新的服务部署包下载完成后,就要停止当前运行的服务进程,部署新版本服务。
在停止服务时,由于服务上有正在运行的请求,需要等待这些请求处理完毕,同时不让新的请求进来,这就是所谓的“优雅停机”。可以通过服务注册中心将该服务节点直接删除,或者通过调整该服务节点的路由权重为0来控制不再有新的请求进入该服务节点。另一方面,可以通过一些系统钩子(如JVM中的shutdownhook)来实现等待所有请求处理完毕再关闭应用的功能,同时做一些资源清理工作。
新版本服务启动后,会自动到服务注册中心进行登记注册,并重新恢复路由权重。这样,新的请求会重新被路由到该服务节点。
3.分批发布
微服务的发布如果要做到线上业务无感,就必须控制同时进行上、下线操作的服务节点的数量。因为如果一个服务集群中过多的节点下线,则剩余的节点可能无法负担当时线上所有的请求流量,所以针对服务发布,必须能控制同时进行上、下线操作的服务节点的数量或比例。
4.服务发布执行
发布调度服务器承担了“大脑”的作用,由它提供分批发布策略并向各个服务节点发出发布指令。微服务本身属于被操作的“物料”,在服务节点上还需要有发布操作的“执行人”。承担执行人角色的可以是集成在服务节点中的Agent,这个Agent是一个独立的进程,在服务节点启动后同步启动运行,并不断监听发布调度服务的指令,收到具体发布指令后,由其执行具体的发布策略。
除了独立部署的Agent,还可以采用以Ansible为代表的无代理的远程配置管理工具,以直接通过SSH协议对服务节点进行发布操作管理。使用Ansible的大好处是,不需要在服务节点上部署Agent程序,减少了Agent带来的稳定性风险,降低了整体维护成本。
不论是Agent,还是远程配置管理工具,在服务发布上基本都遵循相似的步骤。
1)检查环境:检测系统环境是否正常,相关技术栈是否完备;
2)下载部署包:参考指定软件版本下载部署物料;
3)关闭服务监控:关闭服务监控,防止部署过程中产生大量报错信息,但部署监控必须开启;
4)服务下线:服务注册中心将该服务节点直接删除,或者调整该服务节点的路由权重为0来控制不再有新的请求进入该服务节点;
5)停止服务:发出进程关闭信息,通过“优雅停机”的方式在所有存量请求处理完毕之后,关闭服务进程;
6)部署服务:部署新服务的部署包;
7)启动服务:启动服务进程;
8)健康检测:检测服务是否正常启动,进程是否正常,并在服务注册中心中正常注册;
9)开启服务监控:服务启动成功并正常注册后,开启服务监控。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。