《大话云原生》系列文章期望用最通俗、简单的语言说明云原生生态系统内的组成及应用关系。此专栏的前两篇文章

  • 《【大话云原生】煮饺子与docker、kubernetes之间的关系》

  • 《【大话云原生】负载均衡篇-小饭馆的流量变大了》

欢迎品鉴!

文章目录

  • 一、服务接待中心与微服务网关
  • 二、酒店内部通信录与服务注册中心
  • 三、微服务的高可用

一、服务接待中心与微服务网关

老婆最近快过生日了,我答应她去旅游住一次五星级酒店。我查看了目的地的五星级酒店的价格,决定只住一天。第一次住所以查看了一下特色服务项目:擦鞋、熨烫衣物、机场绿色通道、专车接送等等,几乎在酒店场所范围内一切可以让你懒出奇迹的项目都可以提供。没出息的时不我待,插入房卡,一键拨通前台电话要求提供衣物熨烫服务,不一会服务人员就将衣物取走了,20分钟后送了回来。真是太方便了!

五星级酒店所有的服务只有一个入口:服务接待中心。这个服务接待中心和微服务软件架构中的网关功能真的是异曲同工啊

  • 提供服务请求的唯一入口,也是面向用户提供服务唯一入口
  • 对请求信息进行安全验证,因为我在入住时已经获得了房卡,这个房卡就像是在应用开发中的token(JWT、OAuth等登录认证方式都会发布令牌)
  • 有了这个房卡(令牌),我们才能通过服务接待中心请求服务项目。同样微服务网关也会进行权限验证后,才会提供API请求服务。

二、酒店内部通信录与服务注册中心

其实我们仔细想一想,服务接待中心(微服务网关)提供面向用户的服务入口。那么酒店内部部门之间是不是只对外提供服务,不对内提供服务?显然不是的。举几个例子:

  • 各种部们几乎都依赖采购部采购的物品,所以一定会和采购部申请服务用品
  • 服务部给客户送餐的时候,一定需要和餐饮部进行通信

对于微服务架构来说也是一样的,有的微服务直接面向用户提供服务,有的微服务是为系统内部服务提供服务。所以正确的架构方式是下面这样的。

当服务之间存在调用关系,就存在一个问题:各个部门(各个服务)之间如何联系,联系方式是什么?其实就是需要建立一个酒店内部的通信录,这个通信录只在酒店内部使用。对于微服务架构而言同样需要这样一个通信录

  • 在服务创建的时候,把自己的联系方式(ip、端口、服务名称)写在“通信录”上
  • 在服务下线的时候,自己的联系方式从“通信录”上被划掉

这个服务之间的“通信录”,对于微服务架构而言就被叫做:服务注册中心。常见的微服务注册中心有nacos、eureka、zookeeper等等。

三、微服务的高可用

我们再考虑一个问题,这么大的酒店是不是只有一个服务部,只有一个采购部?当然不会,即使只有一个部门,也会分成多个小组。比如:服务部A小组负责1-3楼、服务部小组B负责4-6楼,依次类推(这其实就是一个负载均衡算法)。所以进一步完善的架构应该是下面这样的。

  • 一个部门分成多个组,一旦A组忙不过来,B组完全可以过来帮忙。但在大多数情况下按照负载算法各司其职。
  • 一个好汉三个棒,有事大家一起扛。这在分布式服务架构中就是一种高可用的体现。
  • 不会因为一个小组的罢工导致整个服务部门瘫痪。这在服务架构中体现的是容错性和副本备份机制。

每个部门虽然分成了多个小组,但也会有该部门的统一的管理制度、服务标准。这个制度及服务标准统一制定,统一配置管理。对于微服务架构来说,也会有一个地方保存某一类微服务的统一配置信息,它就是服务配置管理中心。我们常见的服务配置管理中心有nacos、Spring Cloud Config等。(nacos既可以充当服务注册中心,也可以充当配置管理中心)

【大话云原生】微服务篇-五星级酒店的服务方式相关推荐

  1. 计算机叫醒服务英语,关于酒店叫醒服务的英文口语

    关于酒店叫醒服务的英文口语 发布时间:2020-03-08 春困秋乏夏打盹,睡不醒的冬三月--起床困难户小学妹今天要和大家聊聊使用酒店叫醒服务时会用到的实用口语.叫醒服务通常会用Morning cal ...

  2. RHEL 5服务篇—部署DNS域名解析服务(一)BIND软件

    DNS 系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析和反向解析. 正向解析:根据域名查询IP地址,即将 ...

  3. 【云原生微服务>SCG网关篇十二】Spring Cloud Gateway集成Sentinel API实现多种限流方式

    文章目录 一.前言 二.Gateway集成Sentinel API 0.集成Sentinel的核心概念 1)GatewayFlowRule 和 ApiDefinition 2)GatewayFlowR ...

  4. 【大话云原生】kubernetes灰度发布篇-从步行到坐缆车的自动化服务升级

    看过很多关于云原生的文章,要么云山雾罩,要么曲高和寡. 所以笔者就有了写<大话云原生>系列文章的想法,期望用最通俗.简单的语言.方便记忆的场景来说明:云原生生态系统内的组成及应用关系. 文 ...

  5. 如何更高效的管理原生微服务应用

    2019独角兽企业重金招聘Python工程师标准>>> 阿里云分布式应用服务EDAS 最近发布了支持原生Dubbo和Spring Cloud应用功能的新版本,此功能是以非侵入方式支持 ...

  6. Java微服务篇5——Docker

    Java微服务篇5--Docker 1.虚拟化技术 虚拟化技术是一种计算机资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储 等,予以抽象.转换后呈现出来.虚拟化技术打破了计算机实体结 ...

  7. Java微服务篇2——SpringCloud

    Java微服务篇2--SpringCloud 1.微服务架构 1.1.单体应用架构 的⽤户量.数据量规模都⽐较⼩,项目所有的功能模块都放在一个工程中编码. 编译.打包并且部署在一个Tomcat容器中的 ...

  8. 学习笔记:SpringCloud 微服务技术栈_高级篇⑤_可靠消息服务

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

  9. Dubbo 和 HSF 在阿里的实践:携手走向下一代云原生微服务

    欢迎关注方志朋的博客,回复"666"获面试宝典 作者 |郭浩 审校 |钰莹 Dubbo 和 HSF 都是阿里巴巴目前在使用的微服务 RPC 框架.HSF 在阿里巴巴使用更多,承接了 ...

  10. 云原生微服务技术趋势解读

    随着开源和云计算的推进,云原生微服务作为核心的技术保持着 20%左右的高速增长:随着微服务技术的成熟,门槛大幅降低,开始渗透到各行各业:一方面人力成本不断上涨,采用微服务提高研发效率势在必行:另一方面 ...

最新文章

  1. 微信小程序用户未授权bug解决方法,微信小程序获取用户信息失败解决方法
  2. 【CVPR2020 Oral】只需一行代码就可提升迁移性能
  3. putty利用密钥ssh服务登录ubuntu server 10.4
  4. AI 人工智能 探索 (八)
  5. Java启动参数与内存调优一些学习笔记
  6. 【Spring】Spring 依赖注入之手动注入
  7. python求平面坐标最接近的点_从Python中的集合中有效地找到最接近的坐标对
  8. 在Windows上使用beginthreadex替换CreateThread的原因
  9. python库--Numpy and pandas
  10. 为什么说 5G 绝对不是伪命题? | 人物志
  11. 剑指offer-序列化二叉树
  12. STL—内存的配置与释放
  13. 网页设计如何排成一列_学习DIV+CSS网页布局之一列布局
  14. html中一条横线代码怎么写_Vue VS React 在开发同一记账项目中二者的对比
  15. es 创建索引 指定id_ES的基本用法
  16. JAVA语言isPrime关键词_Java Guava IntMath isPrime()用法及代码示例
  17. QQ for linux不用udp8000端口?
  18. 计算机进入vga模式,VGA模式是什么,怎么进入VGA模式
  19. 安卓CameraX基于虹软人脸识别程序开发
  20. 【修改电脑版微信提示音】

热门文章

  1. vue脚手架安装步骤详情
  2. python存根文件_打包存根文件
  3. coco2d-x学习第一章 codo2d-x 2.2.3+vs2010环境搭建和新建项目
  4. 学计算机的话美国社区大学对应课程,美国加州社区大学转UC伯克利计算机专业有什么课程上的要求?...
  5. 趣味计算机专业比赛,你hua我猜 以梦为马——计算机科学系第三届你画我猜趣味比赛...
  6. 深入理解:面向服务与微服务架构
  7. 如何将windows桌面变成类似mac样式
  8. 索尼手机android怎么连,索尼WI-SP500耳机连接安卓手机蓝牙的方法讲解
  9. rsync --exclude或者--exclude-from的路径问题
  10. u盘文件看得见却打不开_u盘文件夹打不开怎么办【图解】