全链路灰度之RocketMQ灰度.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
全链路灰度之RocketMQ灰度 简介:本⽂将以上次介绍过的《如何⽤ 20 分钟就能获得同款企业级全链路灰度能⼒?》中的场景为基础,来进⼀步介 绍消息场景的全链路灰度。 作者:亦盏 之前的系列⽂章中,我们已经通过全链路⾦丝雀发布这个功能来介绍了 MSE 对于全链路流量控制的场景,我们已经了 解了 Spring Cloud 和 Dubbo 这⼀类 RPC 调⽤的全链路灰度应该如何实现,但是没有涉及到消息这类异步场景下的流 量控制,今天我们将以上次介绍过的《如何⽤ 20 分钟就能获得同款企业级全链路灰度能⼒?》中的场景为基础,来进 ⼀步介绍消息场景的全链路灰度。 虽然绝⼤多数业务场景下对于消息的灰度的要求并不像 RPC 的要求得这么严格,但是在以下两个场景下,还是会对消 息的全链路有⼀定的诉求的。 1、第⼀种场景是在消息消费时,可能会产⽣新的 RPC 调⽤,如果没有在消息这⼀环去遵循之前设定好的全链路流量控 制的规则,会导致通过消息产⽣的这部分流量“逃逸”,从⽽导致全链路灰度的规则遭到破坏,导致出现不符合预期的情 况。 为了防⽌出现这个情况,我们需要在消费时候将消息⾥原来的流量标复原,并在 RPC 调⽤的时候遵循原来的规则。我 们通过架构图来详细描述⼀下,满⾜这个逻辑之后,调⽤链路是怎样的,从下图中我们可以看到,灰度和基线环境⽣产 出来的消息,虽然在消息推送的时候是随机的,但是在消费过程中,产⽣的新的 RPC 调⽤,还是能够回到流量原来所 属的环境。 2、第⼆种场景需要更加严格的消息灰度隔离。⽐如当消息的消费逻辑进⾏了修改时,这时候希望通过⼩流量的⽅式来 验证新的消息消费逻辑的正确性,要严格地要求灰度的消息只能被推送给灰度的消息消费者。 今天我们就来实操⼀下第⼆种场景消息的全链路灰度,⽬前 MSE 仅⽀持 RocketMQ 消息的灰度。若您使⽤的是开源版 RocketMQ,那么版本需要在 4.5.0 及以上,若您使⽤的是阿⾥云商业版 RocketMQ,那么需要使⽤铂⾦版,且 Ons Client 版本在 1.8.0.Final 及以上。如果只是想使⽤第⼀种场景,只需要给 B 应⽤开启全链路灰度的功能即可,不需要做 额外的消息灰度相关的配置 在这次最佳实践的操作中,我们是将应⽤部署在阿⾥云容器服务 Kubernetes 版本,即 ACK 集群来演⽰,但是事实上, 消息灰度对于应⽤的部署模式是没有限制性要求的,您可以参考 MSE 帮助⽂档,找到⾃⼰所使⽤的部署模式对应的接 ⼊⽅式,也能使⽤消息全链路灰度 前提条件 1. 开通 MSE 专业版,请参见开通 MSE 微服务治理专业版[1] 2. 创建 ACK 集群,请参见创建 Kubernetes 集群[2] 操作步骤 步骤⼀:接⼊ MSE 微服务治理 1、安装 mse-ack-pilot 1. 登录容器服务控制台[3] 2. 在左侧导航栏单击市场 应⽤⽬录 3. 在应⽤⽬录页⾯点击阿⾥云应⽤,选择微服务,并单击 ack-mse-pilot 4. 在 ack-mse-pilot 页⾯右侧集群列表中选择集群,然后单击创建 安装 MSE 微服务治理组件⼤约需要 2 分钟,请耐⼼等待 创建成功后,会⾃动跳转到⽬标集群的 Helm 页⾯,检查安装结果。如果出现以下页⾯,展⽰相关资源,则说明安装成 功 2、为 ACK 命名空间中的应⽤开启 MSE 微服务治理 1. 登录 MSE 治理中⼼控制台[4],如果您尚未开通 MSE 微服务治理,请根据提⽰开通。 2. 在左侧导航栏选择微服务治理中⼼ Kubernetes 集群列表。 3. 在 Kubernetes 集群列表页⾯搜索框列表中选择集群名称或集群 ID,然后输⼊相应的关键字,单击搜索图标。 4. 单击⽬标集群操作列的管理。 5. 在集群详情页⾯命名空间列表区域,单击⽬标命名空间操作列下的开启微服务治理。 6. 在开启微服务治理对话框中单击确认。 步骤⼆:还原线上场景 ⾸先,我们将分别部署 spring-cloud-zuul 、spring-cloud-a、spring-cloud-b、spring-cloud-c 这四个业务应⽤,以及注册 中⼼ Nacos Server 和消息服务 RocketMQ Server,模拟出⼀个真实的调⽤链路。 部署之前,简单介绍⼀下这个调⽤链路 spring-cloud-zuul 应⽤在收到 “/A/dubbo” 的请求时,会把请求转发给 spring-cloud-a ,然后 spring-cloud-a 通过 dubbo 协议去访问 s

文档评论(0)

文库垃圾佬 + 关注
实名认证
文档贡献者

这个人很懒

1亿VIP精品文档

相关文档