当前位置: 首页 > news >正文

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

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

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

提供服务请求的唯一入口,也是面向用户提供服务唯一入口
对请求信息进行安全验证,因为我在入住时已经获得了房卡,这个房卡就像是在应用开发中的token(JWT、OAuth等登录认证方式都会发布令牌)
有了这个房卡(令牌),我们才能通过服务接待中心请求服务项目。同样微服务网关也会进行权限验证后,才会提供API请求服务。
二、酒店内部通信录与服务注册中心
其实我们仔细想一想,服务接待中心(微服务网关)提供面向用户的服务入口。那么酒店内部部门之间是不是只对外提供服务,不对内提供服务?显然不是的。举几个例子:

各种部们几乎都依赖采购部采购的物品,所以一定会和采购部申请服务用品
服务部给客户送餐的时候,一定需要和餐饮部进行通信
对于微服务架构来说也是一样的,有的微服务直接面向用户提供服务,有的微服务是为系统内部服务提供服务。所以正确的架构方式是下面这样的。

file

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

在服务创建的时候,把自己的联系方式(ip、端口、服务名称)写在“通信录”上
在服务下线的时候,自己的联系方式从“通信录”上被划掉
这个服务之间的“通信录”,对于微服务架构而言就被叫做:服务注册中心。常见的微服务注册中心有nacos、eureka、zookeeper等等。

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

file

一个部门分成多个组,一旦A组忙不过来,B组完全可以过来帮忙。但在大多数情况下按照负载算法各司其职。
一个好汉三个棒,有事大家一起扛。这在分布式服务架构中就是一种高可用的体现。
不会因为一个小组的罢工导致整个服务部门瘫痪。这在服务架构中体现的是容错性和副本备份机制。
每个部门虽然分成了多个小组,但也会有该部门的统一的管理制度、服务标准。这个制度及服务标准统一制定,统一配置管理。对于微服务架构来说,也会有一个地方保存某一类微服务的统一配置信息,它就是服务配置管理中心。我们常见的服务配置管理中心有nacos、Spring Cloud Config等。(nacos既可以充当服务注册中心,也可以充当配置管理中心)

欢迎关注我的博客,更多精品知识合集
本文转载注明出处(必须带连接,不能只转文字):字母哥博客 - zimug.com

http://www.jsqmd.com/news/1247029/

相关文章:

  • 多模态医学图像融合技术在精准医疗中的应用与实现
  • 数字时代的字符编码与字体显示问题解析
  • Oracle RAC中RMAN通道配置错误解析与优化实践
  • TM4C1294 GPIO寄存器级编程:从原理到实战的嵌入式开发指南
  • C++ String类实现:从零构建理解内存管理与STL核心机制
  • AI辅助编程实战:PyCharm与Cursor高效开发指南
  • OC角色动画制作:水仙走路Meme风格全流程解析
  • Windows C++原生截图实现:基于GDI+与CImage的指定区域捕获技术
  • TPS25751A PD控制器I2C接口与电源策略配置实战指南
  • DEA Performance 全局方向距离函数(Global DDF)模型手算验证报告
  • 广告✕搜索快链模式习近平对基础教育工作作出重要指示人民网新华网央视网中国网国际在线中国日报中经网光明网央广网07月23日 周四昆明7日天气QQ邮箱最近在看
  • 武汉江夏中职学校推荐|武汉榕霖职业技术学校免学费保就业 中考落榜生择校指南 - 湖北找学校
  • C/C++数组与指针核心区别及内存访问机制详解
  • 【AI】自驱动智能体
  • WAIC 中国AI产业趋势介绍
  • C++实现红外大气衰减模型:从比尔-朗伯定律到工程实践
  • C++17 std::atomic::is_always_lock_free 详解:无锁编程的性能保障与跨平台陷阱
  • 基于U-Net的岩石智能识别系统设计与实现
  • Tiva™ μDMA控制器深度解析:从核心原理到UART/内存传输实战
  • 星城财富时刻:2026香奈儿长沙回收价维解密与权威机构TOP榜 - 沉迷学习23
  • LTP与虚拟化技术:系统稳定性测试的黄金标准
  • 长沙油烟净化器如何选择?搞清楚净化效率、资质认证和售后保障 - 中国品牌企业观察网
  • C++多线程编程:从有锁到无锁队列的实现原理与性能对比
  • 2026杨庄镇礼品盒厂家哪家好,礼品彩盒厂家推荐:源头工厂选购指南与实用攻略 - geo88
  • 基于Transformer的电力负荷预测:Chronos-2模型实战与基准测试分析
  • 结点电压法5个最常见的问题
  • OpenAI Codex API限制重置机制解析与应对策略
  • AI Agent会话管理优化与清华团队重构方案解析
  • Unity游戏开发:从零构建事件驱动的金钱系统与HUD
  • git常见指令