【技术实现步骤摘要】
一种多级架构下微服务的统一部署方法
[0001]本专利技术涉及软件工程部署
,更具体地,涉及一种多级架构下微服务的统一部署方法
。
技术介绍
[0002]随着软件工程领域微服务技术的发展,多级单体架构面临着不稳定
、
不灵活等劣势
。
传统的多级单体架构将整个应用程序划分为多个功能模块,这些模块彼此紧密耦合,相互依赖
。
随着项目规模的不断扩大,这种架构越来越难以维护和扩展,限制了系统的灵活性和独立性,往往需要对整个系统进行重大变更才能解决问题
。
微服务将应用程序拆分为一系列较小的
、
独立可部署的服务,每个服务专注于一项特定的业务功能
。
这样的架构使得不同服务之间的耦合度降低,每个服务都可以独立进行开发
、
部署和维护
。
当某个服务需要进行更新或者出现故障时,只需要对该服务进行修改或重启,而不会影响整个系统的运行
。
[0003]将多级单体架构转为多级架构的微服 ...
【技术保护点】
【技术特征摘要】
1.
一种多级架构下微服务的统一部署方法,其特征在于,所述多级架构包括本级服务器集群和上级服务器集群,所述本级服务器集群和上级服务器集群均包括多个服务器,所述本级服务器集群中的特定服务器与所述上级服务器集群进行信息交互,所述多级架构下微服务的统一部署方法包括如下步骤:步骤
S1
:通过所述本级服务器集群中的特定服务器将所述上级服务器集群的各微服务运行资源文件分发到所述本级服务器集群中的其他服务器;步骤
S2
:对所述本级服务器集群中拟启动的各个微服务进行规划;步骤
S3
:在所述上级服务器集群的各微服务运行资源文件在所述本级服务器集群分发完成后,将规划好的各个拟启动微服务在所述本级服务器集群上部署完善;步骤
S4
:通过所述本级服务器集群中的特定服务器管理所述本级服务器集群上部署后的各个微服务,实现各个微服务的统一启动
、
统一停止
、
单个启动
、
单个停止
。2.
根据权利要求1所述的一种多级架构下微服务的统一部署方法,其特征在于,所述步骤
S1
中,还包括如下步骤
:
步骤1‑1:在上级服务器中生成第一哈希表
hash_table1
,其中,所述第一哈希表
hash_table1
的键为各微服务运行资源文件的全名称,包括运行资源文件名和扩展名,所述第一哈希表
hash_table1
的值为各微服务运行资源文件的国密
SM3
签名算法生成的摘要值;步骤1‑2:在上级服务器中生成第二哈希表
hash_table2
,其中,所述第二哈希表
hash_table2
的键为各微服务运行资源文件的全名称,包括运行资源文件名和扩展名,所述第二哈希表
hash_table2
的值为各微服务运行资源文件的句柄;步骤1‑3:本级服务器集群中的特定服务器以
HTTP
的
GET
请求从上级服务器获取所述第一哈希表
hash_table1
和所述第二哈希表
hash_table2
;步骤1‑4:本级特定服务器遍历所述第一哈希表
hash_table1
,根据所述第一哈希表
hash_table1
中各微服务运行资源文件全名称的键获取各微服务运行资源文件的摘要值,对比所述第一哈希表
hash_table1
中各微服务运行资源文件的摘要值和本级特定服务器的微服务运行资源文件摘要值;如果所述第一哈希表
hash_table1
中的微服务运行资源文件摘要值与本级特定服务器的微服务运行资源文件摘要值相同,则将该相同摘要值对应的键在所述第二哈希表
hash_table2
中移除,以更新第二哈希表
hash_table2
;如果摘要值不同,则所述第二哈希表
hash_table2
不进行移除;步骤1‑5:本级特定服务器遍历更新后的第二哈希表
hash_table2
,根据所述更新后的第二哈希表
hash_table2
中微服务运行资源文件的句柄从所述上级服务器中单线程下载微服务运行资源文件;步骤1‑6:下载完成后,根据本级特定服务器的当前各微服务运行资源文件,在本级特定服务器中生成第三哈希表
hash_table3
,其中,所述第三哈希表
hash_table3
的键为各微服务运行资源文件的全名称,包括运行资源文件名和扩展名,所述第三哈希表
hash_table3
的的值为各微服务运行资源文件的国密
SM3
签名算法生成的摘要值;步骤1‑7:根据本级特定服务器的当前各微服务运行资源文件,在本级特定服务器中生成第四哈希表
hash_table4
,其中,所述第四哈希表
hash_table4
的键为各微服务运行资源文件的全名称,包括运行资源文件名和扩展名,所述第四哈希表
hash_table4
的值为各微服
务运行资源文件的句柄;步骤1‑8:本级特定服务器将第三哈希表
hash_table3
和第四哈希表
hash_table4
传输至所述本级服务器集群中的其他某服务器;步骤1‑9:所述本级服务器集群中的其他某服务器遍历所述第三哈希表
hash_table3
,根据所述第三哈希表
hash_table3
中各微服务运行资源文件全名称的键获取各微服务运行资源文件的摘要值,对比所述第三哈希表
hash_table3
中各微服务运行资源文件的摘要值和所述本级服务器集群中其他某服务器的微服务运行资源文件摘要值;如果所述第三哈希表
hash_table3
中的微服务运行资源文件摘要值与所述本级服务器集群中其他某服务器的微服务运行资源文件摘要值相同,则将该相同摘要值对应的键在所述第四哈希表
hash_table4
中移除,以更新第四哈希表
hash_table4
;如果摘要值不同,则所述第四哈希表
hash_table4
不进行移除;步骤1‑
10
:本级特定服务器根据更新后的第四哈希表
hash_table4
构建红黑树
tree1
,其中,所述红黑树
tree1
设置排序规则为微服务运行资源文件从大到小;步骤1‑
11
:根据本级特定服务器的网络带宽,计算最佳传输线程数,然后生成固定线程数的线程池;步骤1‑
12
:顺序遍历红黑树
tree1
,将红黑树
tree1
中的各微服务运行资源文件句柄,以不超过
1024MB
大小为一批的方式,分批置入线程池运行队列中;步骤1‑
13
:循环执行步骤1‑8到步骤1‑
12
,直至把所述本级服务器集群中其他所有服务器所需的微服务运行资源文件都下载完成
。3.
根据权利要求1所述的一种多级架构下微服务的统一部署方法,其特征在于,所述步骤
S2
中,还包括如下步骤
:
步骤2‑1:本级特定服务器从上级服务器中获取各个微服务部署的硬件标准,以三元组的形式存放,
name
为微服务名称,
core
为该微服务所需
CPU
核心数,
mem
为该微服务所需内存大小,记为
(name
i
,core
i
,mem
i
)
;步骤2‑2:本级特定服务器统计本级服务器集群中所有服务器的
CPU
核心信息和内存信息,也以三元组的形式存放,
id
为服务器标识,
score
为该服务器拥有的
CPU
核心数,
smem
为该服务器的内存大小,记为
(id
j
,score
j
,smem
j
)
;步骤2‑3:根据
CPU
核心数计算得到本级服务器集群最多适配的微服务组数
server_num_cpu
,计算公式如公式
(1)
所示:其中,
j
为本级服务器集群中的服务器总数,
y
为本级服务器集群中的服务器序号,
i
为微服务总数,
x
为微服务的序号,是本级服务器集群拥有的
CPU
核心数之和,是所有微服务所需的
CPU
核心数之和,
round
函数是向下取整函数;步骤2‑4:根据内存大小计算得到本级服务器集群最多适配的微服务组数
server_num_mem
,计算公式如公式
(2)
所示:
其中,
j
为本级服务器集群中的服务器总数,
y
为本级服务器集群中的服务器序号,
i
为微服务总数,
x
为微服务的序号,是本级服务器集群拥有的内存大小之和,是所有微服务所需的内存大小之和,
round
函数是向下取整函数;步骤2‑5:根据公式
(3)
设置本级服务器集群部署的微服务组数,记为
server_num
;步骤2‑6:创建集合数组
P
,集合数组
P
保存本级服务器集群中每个本级服务器对应的微服务空集合
P
y
,若
server_num_cpu<server_num_mem
,则
CPU
资源较为短缺,执行步骤2‑7;否则,执行步骤2‑
13
;步骤2‑7:创建一个微服务大根堆
heap1
,将各个微服务三元组
(name
i
,core
i
,mem
i
)
分别复制
server_num
份,存入所述微服务大根堆
heap1
中,按照
CPU
核心数
core
i
由大到小排序;步骤2‑8:创建一个服务器大根堆
heap2
,将各个服务器三元组
(id
j
,score
j
,smem
j
)
存入服务器大根堆
heap2
中,按照
CPU
核心数
score
j
由大到小排...
【专利技术属性】
技术研发人员:史海壁,陆杨,张亚洲,朱键,
申请(专利权)人:公安部交通管理科学研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。