基于Docker容器的微服务研究与实现

2020-11-16 06:08梁纯
理论与创新 2020年17期
关键词:微服务

【摘  要】随着信息技术的发展,在大数据时代的背景下对于信息的读写速度和网络的移植功能有了更高的要求,一些网络系统的设计也由单一的场景和应用向着“一平台,多场景”的微应用系统设计转变。在技术方面,要实现微服务的转变需要依托可移植的网络容器。本文探讨了基于DOCKER这一应用容器引擎、基于SOA的DUBBO架构的治理框架实现将个体应用分解转变成独立的微服务。同时利用容器协助形成微服务的自动安置和进一步的扩展。

【关键词】微服务;DOCKER容器;SOA架构

引言

互联网的多维式发展让网站和应用的开发模式不再单一,传统的老式计算机软件开发模式在现代的网络环境中的弊端逐渐显现。在现代化模式下,开发模式向敏捷式开发和微服务模式过渡。微服务是对个体应用中的服务模块和组件进一步的完善和拆分,使其成为独立于应用存在的服务结构,这样的分解结构也大大方便了现代网络模式下软件的开发和维护。

1.DOCKER容器技术概述

Docker容器是一款基于GO语言和LXC的高级引擎,具有易操作、隔离性高、启动快等性质。而且基于DOCKER的微服务部署不用考虑资源耗费量的问题,因为在DOCKER容器中可以实现部署迅速、移植操作、便于管理和服务共享等功能,只需要进行单次编译就可以移植到其他平台进行操作。此外,DOCKER的管理系统有很强的规划性,还能达到资源共享的目的。随着DOCKER容器核心技术的进步,依赖于DOCKER的微服务的功能也将增加。

1.1 DOCKER的技术实现

DOCKER依赖LXC实现分布式运行的功能,主要包括命名空间和群组控制两个方面。命名空间具有很强的隔离性,帮助程序运行时提供独立的空间,避免了各个系统运行过程中的干扰问题。群组控制负责控制不同DOCKER运行中所需的内存和CPU,不仅能实现堆运行进程的实时监管,还能让网络资源利用率实现最大化。另外,群组控制能依据DOCKER的重要程度合理安排控制排序,形成合理的資源分配的程序运行架构。

1.2 DOCKER容器的优势

由于特殊的技术原理支撑,DOCKER的优势也相对明显。首先它的秒级启动功能就为整个系统的运行和操作提供了极大的便利条件,另外,DOCKER易于架构的优势让资源的分配率更合理,每个主机构建的DOCKER越多,整个系统的运行效率就越高。DOCKER容器的具体优势体现如下:

(1)节省时间节约成本。DOCKER通过直接操作主机的内核,达到了程序运行时占用网络资源小、运行快的节约目的,运行空间也比传统的虚拟机扩大了几千倍,因此运行成本大大减少。

(2)更高效。DOCKER单次运行就能在平台间移植操作的特性,缩短了程序的开发和测试时间,提高了内存和CPU的利用度,保证了程序的高效运行。

(3)易于管理。DOCKER便于查看和接收信息指令,而且当系统发生故障的时,能通过观察指令信息来确定故障范围,因此数据管理更方便,故障修复更容易。

2.DOCKER虚拟化技术

DOCKER基于LINUX技术的特性让整个系统实现了操作虚拟化,每个用户都在隔离的状态下对系统进行操作,并且能共享和记录每个程序中代码间的关联,形成方便快速操作的新的构建。微服务的实现则是通过DOCKER把拆分后的应用程序移植到LINUX上面实现的,基于DOCKER容器的微服务程序具有诸多优势。

2.1节省网络资源的优势

微服务在DOCKER容器中的实现是通过在程序运行中建立分散形式的应用,再投射到DOCKER容器上,整个程序运行的环境被包括在DOCKER容器内,不仅对网络空间的占用率减少,也减少了一大部分网络资源的占用。

2.2基于DOCKER容器微服务环境的优势

DOCKER容器内有足够的空间环境支持程序的运行,因此省略了后期对程序的运行和维护,只需要维护好负责运行DOCKER的虚拟机即可。

2.3高效率的优势

DOCKER能在一秒内实现程序服务的启动和迅速部署。一般在拥挤的网络环境下,需要迅速在最短的时间里扩充和维护服务器来容纳大流量,而在DOCKER容器中只需要一秒就能达到扩充容量,以更快速、更高效、更敏捷的程序支撑拥挤的网络环境。

3.基于DOCKER的DUBBO应用

DOCKER容器要想对微服务进行部署,就要求微服务对软件程序进行拆分,形成独立的服务机制,让这些服务系统可以独立升级、快速部署,同时让各个应用达到运行所需的敏捷力和自我管理能力。基于这一需要,微服务在拆分服务机制时就需要DUBBO框架的支持。DUBBO是一种开源的分布式微服务框架,并且结合了ZOOKEPPER作为整个框架的服务注册站点,DUBBO和ZOOKEPPER的组合不仅能完成服务注册,还能发现和均衡软负载。

本文探讨了使用Dockerfile制作镜像,构建基于Docker的Dubbo框架,如图 1 所示。

架构中的Nginx的作用是支撑大流量的同时访问,并且对这些访问做出快速的响应和处理,在特殊情况下还能当做负载均衡服务器提供外部服务;Provider Cluster Node是整个框架中为服务机制提供注册的一环,在这一环节中,需要把所能提供的服务提前注册到注册站,以方便服务使用者随时调取服务;Zookepper Cluster Node:所有的Zookepper都不分等级,但是会随机选择某个点,使其成为Leader,在程序运行的时候,如果有节点宕机,则舍弃该节点;Dubbo Monitor是实施监控的一环,这一环负责向管理人员展示整个DOCKER容器的运营状况和各环节服务调取的状态。

该试验方法把整个应用拆分成了单一独立的微服务,并且把所有服务都放置于DOCKER容器内,而微服务和服务使用者之间则通过ZOOKEPPER的各个节点进行连接。当网络在同一时间出现大流量和访问量的时候,Nginx系统可以通过负载手段来均衡一部分的访问量。各个环节之间的合作模拟形成了基于DOCKER容器的微服务框架的搭建。本方法既体现了微服务之间节点的低耦合性,又体现了资源的高效利用和服务模块的快速部署。

4.结束语

尽管在应用信息技术的发展中,微服务的发展还没有完全成熟,但是与DOCKER容器的组合无疑让微服务有了更高效的运行结构。在整个框架中,既能实现动态注册和获取服务,还能远程调取服务,满足了服务消费者的一切需求。而且通过DOBBO平台可以实现迅速部署,在整个运行过程中不至于对网络资源造成大规模浪费,还可以满足应用不断扩大规模的需要,就算如此,程序启动时长和服务部署难度也不会随之增加。

在数据处理方面,基于DOCKER容器的微服务也有速率高的优势,高效的读写速度让这一结合框架具备微服务必须具备的数据储存和调取等功能,且为这些数据的储存和服务的调取提供了安全性较高的容器环境。

参考文献

[1]张丽敏, 高晶, 李务斌, et al. 微服务环境下容器编排可视化实践研究[J]. 计算机工程与科学, 2019(8):1366-1373.

[2]张瑞林, 吴学敏. Docker容器技术在后端服务设计中的应用[J]. 电脑知识与技术:学术版, 2019(5):281-282.

[3]孙琼, 罗光峰. 新一代运营系统中持续交付平台的实现[J]. 电信技术, 2017(3):25-29.

[4]张礼庆, 郭栋, 吴绍岭, et al. 一种最大化内存共享与最小化运行时环境的超轻量级容器[J]. 计算机研究与发展, 2019, 56(7):1545-1555.

作者介绍:梁纯(1979.12-),女,汉族,湖北武汉人,计算机硕士,讲师,研究方向为软件设计,面向微服务架构。

猜你喜欢
微服务
数字文化馆建设中的“微服务”
基于微服务架构的日志系统
微服务架构及相应云平台解析
基于供给侧改革理论的图书馆社交网络微服务研究
微信公众平台在医院图书馆的应用现状调查
基于微信企业号的校园移动服务
从单一模式系统架构往微服务架构迁移转化技术研究
基于微信公众平台的高校图书馆微服务现状及对策
微媒体时代高校图书馆阅读推广微服务探析
万科开启“微服务”时代