基于微服务和码头工人容器技术是什么

介绍

这篇文章主要讲解了“基于微服务和码头工人容器技术是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于微服务和码头工人容器技术是什么”吧!

基于微服务架构和码头工人容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发,部署,运维管理,持续开发持续集成的流程。平台提供基础设施,中间件,数据服务,云服务器等资源,开发人员只需要开发业务代码并提交到平台代码库,做一些必要的配置,系统会自动构建,部署,实现应用的敏捷开发,快速迭代。在系统架构上,PaaS云平台主要分为微服务架构,码头工人容器技术,DveOps三部分,这篇文章重点介绍微服务架构的实施。

,,,,实施微服务需要投入大量的技术力量来开发基础设施,这对很多公司来说显然是不现实的,别担心,业界已经有非常优秀的开源框架供我们参考使用。目前业界比较成熟的微服务框架有Netflix,春云和阿里的达博等.Spring云是基于弹簧引导的一整套实现微服务的框架,它提供了开发微服务所需的组件,跟春天引导一起使用的话开发微服务架构的云服务会变的很方便.Spring云包含很多子框架,其中春云Netflix是其中的一套框架,在我们的微服务架构设计中,就使用了很多春云Netflix框架的组件.Spring云Netflix项目的时间还不长,相关的文档资料很少,博主当时研究这套框架啃了很多英文文档,简直痛苦不堪。对于刚开始接触这套框架的同学,要搭建一套微服务应用架构,可能会不知道如何下手,接下来介绍我们的微服务架构搭建过程以及需要那些框架或组件来支持微服务架构。

,,,,为了直接明了的展示微服务架构的组成及原理,博主画了一张系统架构图,如下:

,,,,基于微服务和码头工人容器技术是什么

,,,,从上图可以看的出,微服务访问大致路径为:外部请求,→负载均衡,→服务网关(网关)→微服务,→数据服务/消息服务。服务网关和微服务都会用到服务注册和发现来调用依赖的其他服务,各服务集群都能通过配置中心服务来获得配置信息。

,,,,<强>服务网关(网关)

<强>,,,,强网关是外界系统(如:客户端浏览器,移动设备等)和企业内部系统之间的一道门,所有的客户端请求通过网关访问后台服务。为了应对高并发访问,服务网关以集群形式部署,这就意味着需要做负载均衡,我们采用了亚马逊EC2作为虚拟云服务器,采用ELB(弹性负载平衡)做负载均衡.EC2具有自动配置容量功能,当用户流量达到尖峰,EC2可以自动增加更多的容量以维持虚拟主机的性能.ELB弹性负载均衡,在多个实例间自动分配应用的传入流量。为了保证安全性,客户端请求需要使用https加密保护,这就需要我们进行SSL卸载,使用Nginx对加密请求进行卸载处理。外部请求经过ELB负载均衡后路由到网关集群中的某个网关服务,由网关服务转发到微服务。服务网关作为内部系统的边界,它有以下基本能力:

,,,,1,动态路由:动态的将请求路由到所需要的后端服务集群。虽然内部是复杂的分布式微服务网状结构,但是外部系统从网关看就像是一个整体服务,网关屏蔽了后端服务的复杂性。

,,,,2,限流和容错:为每种类型的请求分配容量,当请求数量超过阀值时抛掉外部请求,限制流量,保护后台服务不被大流量冲垮;党内部服务出现故障时直接在边界创建一些响应,集中做容错处理,而不是将请求转发到内部集群,保证用户良好的体验。

,,,,3,身份认证和安全性控制:对每个外部请求进行用户认证,拒绝没有通过认证的请求,还能通过访问模式分析,实现反爬虫功能。

,,,,4,监控:网关可以收集有意义的数据和统计,为后台服务优化提供数据支持。

,,,,5日访问日志:网关可以收集访问日志信息,比如访问的是哪个服务?处理过程(出现什么异常)和结果?花费多少时间?通过分析日志内容,对后台系统做进一步优化。

,,,春天,我们采用云Netflix框架的开源组件Zuul来实现网关服务.Zuul使用一系列不同类型的过滤器(过滤),通过重写过滤器,使我们能够灵活的实现网关(网关)的各种功能。

,,,,<强>服务注册与发现

<强>,,,,由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就引入了服务注册与发现的问题,服务的提供方要注册报告服务地址,服务调用放要能发现目标服务。我们的微服务架构中使用了尤里卡组件来实现服务的注册与发现,所有的微服务(通过配置尤里卡服务信息)到尤里卡服务器中进行注册,并定时发送心跳进行健康检查,尤里卡默认配置是30秒发送一次心,跳表明服务仍然处于存活状态,发送心跳的时间间隔可以通过尤里卡的配置参数自行配置,尤里卡服务器在接收到服务实例的最后一次心跳后,需要等待90秒(默认配置90秒,可以通过配置参数进行修改)后,才认定服务已经死亡(即连续3次没有接收到心跳),在尤里卡自我保护模式关闭的情况下会清除该服务的注册信息。所谓的自我保护模式是指,出现网络分区,尤里卡在短时间内丢失过多的服务时,会进入自我保护模式,即一个服务长时间没有发送心跳,尤里卡也不会将其删除。自我保护模式默认为开启,可以通过配置参数将其设置为关闭状态。

基于微服务和码头工人容器技术是什么