Page 35 - 网络电信2022年7/8月刊
P. 35

基于分布式微服务系统的跨主机通信问题及其解


            决方案


            陈利  张凯  戴炯
            深南电路股份有限公司

                摘要:传统单体式架构(Monolithic  Architecture)的开发
            周期长、难维护、难测试等特征,越来越难适应当前互联网技术
            的发展需求,这也使得企业难以推进技术更新。随着移动互联网
            的发展,企业被迫将其应用迁移至现代化UI界面架构以便能兼容
            移动设备,这要求企业能实现应用功能的快速上线;此外,从技
            术方面看,云计算及互联网公司大量开源轻量级技术不停涌现并
            日渐成熟,比如:轻量级开发技术的出现如Spring  Cloud;新
            的轻量级协议如RESTful  API和轻量级消息机制;简化的基础设
            施如操作系统虚拟化如hypervisors;容器化如Docker,基础设施
            即服务(IaaS)如Kubernetes等;新的可替代数据持久化模型如
            NoSQL等;标准化代码管理如Github等等。这一切都催生了新的
            架构设计风格——微服务架构的出现。微服务天生就是分布式
            的,部署在各个主机上的服务系统会面临跨主机通信问题,如何
            设计一个高效、安全又能适应分布式微服务要求的网络架构,该
            文具有一定的指导意义。
                关键词:网络架构;微服务;分布式;Docker;跨主机通信





                传统单体式架构(Monolithic  Architecture)的开发周期           制互相沟通(通常是基于HTTP的RESTful  API)。每个服务都围
            长、难维护、难测试等特征,越来越难适应当前互联网技术的                          绕着具体的业务功能进行构建开发,并且能够被独立地部署到
            发展需求,这也使得企业难以推进技术更新。随着移动互联网                          生产环境或开发环境中。在分布式系统中,还要允许服务可重
            的发展,企业被迫将其应用迁移至现代化UI界面架构以便能兼                         复部署。微服务是一种架构风格,一个大型的复杂的软件应用
            容移动设备,这要求企业能实现应用功能的快速上线。此外,                          被切分成一个或多个微服务组成。系统中的各个微服务可被独
            从技术方面看,云计算及互联网公司大量开源轻量级技术不                           立部署运行,各个微服务之间是松耦合的,互不依赖。每个微
            停涌现并日渐成熟,比如:轻量级开发技术的出现如Spring                        服务仅关注于完成一件任务或者说一个单一的功能,并能很好
            Cloud;新的轻量级协议如RESTful  API和轻量级消息机制;                  地完成该任务。在所有情况下,每个任务代表着一个小的业务
            简化的基础设施如操作系统虚拟化如hypervisors;容器化如                     功能。
            Docker,基础设施即服务(IaaS)如Kubernetes等;新的可替代数
                                                                  图1 单体式架构应用
            据持久化模型如NoSQL等;标准化代码管理如Github等等。这一
            切都催生了新的架构设计风格——微服务架构的出现。
                微服务天生就是分布式的,部署在各个主机上的服务系统
            会面临跨主机通信问题,如何设计一个高效、安全又能适应分
            布式微服务要求的网络架构是当前面临的一个普遍问题。


                一.分布式微服务
                1.什么是微服务
                “微服务”源于2014年3月Martin  Fowler所写的一篇文章
            “Microservices”。微服务软件架构是一种软件设计模式,
            一种互联网软件系统架构,它将单体式应用划分成一些小的服
            务,服务之间互相协调、互相配合,为用户提供服务。每个服
            务运行在其独立的进程中,服务与服务间采用轻量级的通信机


                                                      网络电信 二零二二年七,八月                                           63
   30   31   32   33   34   35   36   37   38   39   40