《大话云原生》系列文章希望用最通俗最通俗的语言来讲解云原生生态中的组成和应用关系。欢迎收看本专栏的前两篇《【大话云原生】煮饺子与docker、kubernetes之间的关系》《【大话云原生】负载均衡篇-小饭馆的流量变大了》!1.服务接待中心和微服务网关最近老婆快要死了,我答应她去旅游住五星级酒店。我查看了目的地五星级酒店的价格,决定只住一天。第一次入住,入住体验特色服务项目:擦鞋、熨衣、机场绿色通道、私家车接送等,几乎所有能让你偷懒创造奇迹的项目都在房内提供酒店的范围。没兴趣的时候,不用等我,插房卡,一键拨通前台,要求熨衣服服务,过一会儿服务人员会把衣服拿走,20分钟送回来之后。太方便了!五星级酒店的所有服务只有一个入口:服务接待中心。微服务软件架构中的服务接待中心和网关功能其实是一样的。提供服务请求的唯一入口也是唯一提供服务给用户对请求信息进行安全验证的入口,因为我在入住的时候已经拿到了房卡,这个房卡在应用开发中就像是一个token(JWT、OAuth等登录认证方式都会颁发token)。有了这张房卡(token),我们就可以通过服务接待中心索取服务项目了。同样,微服务网关也会在权限验证后提供API请求服务。2、酒店内部通讯录和服务登记中心其实大家仔细想想。服务接待中心(微服务网关)提供面向用户的服务入口。那么,酒店内部部门是不是只对外提供服务,不对内提供服务呢?很明显不是。举几个例子:各个部门几乎都依赖采购部采购的物品,所以肯定会向采购部申请服务物资。服务部在给顾客送餐时,要与餐饮部进行沟通。同样,有的微服务直接为用户提供服务,有的微服务为系统内部服务提供服务。所以正确的架构如下。当服务之间存在调用关系时,就会出现一个问题:各个部门(各个服务)如何联系,联系方式是什么?其实需要建立一个酒店内部通讯录,只在酒店内部使用。对于微服务架构,也需要这样的通讯录。创建服务时,在“通讯录”中写上你的联系方式(ip、端口、服务名)。服务之间的“通讯录”在“通讯录”上划掉,称为微服务架构的服务注册中心。常见的微服务注册中心有nacos、eureka、zookeeper等。3、微服务的高可用我们再考虑一个问题。这么大的酒店难道只有一个服务部和一个采购部吗?当然不是,哪怕只有一个部门,也会分成多个组。比如:服务部A组负责1-3层,服务部B组负责4-6层,以此类推(这其实是一种负载均衡算法)。因此,进一步改进的结构应该如下。一个部门分为多个组。一旦A组忙不过来,B组就可以来帮忙。但在大多数情况下,每个人都根据负载算法各司其职。英雄有三棒,有事大家一起扛。这是分布式服务架构中高可用性的体现。一个团体的罢工不会使整个服务瘫痪。这在服务架构中体现为容错和副本备份机制。每个部门虽然分为多个组,但也会有统一的部门管理制度和服务标准。本系统和服务标准统一制定,统一配置管理。对于微服务架构,也会有一个地方保存某一类微服务的统一配置信息,这就是服务配置管理中心。我们常用的服务配置管理中心有nacos、SpringCloudConfig等(nacos既可以作为服务注册中心,也可以作为配置管理中心)欢迎关注我的博客,更多优质知识收藏本文转载要注明出处(一定要有链接,不能只是文字):字母哥博客-zimug.com如果觉得对你有帮助,请点赞分享!您的支持是我创作不竭的动力!.另外,作者近期输出了以下优质内容,期待大家的关注。《kafka修炼之道》《手摸手教你学Spring Boot2.0》《Spring Security-JWT-OAuth2一本通》《实战前后端分离RBAC权限管理系统》《实战SpringCloud微服务从青铜到王者》
