本篇文章1726字,讀完約4分鐘
阿里云國際站經銷商,主營阿里云,騰訊云,華為云,亞馬遜aws,谷歌云gcp,微軟云az,免費開戶,代充值優(yōu)惠大,聯系客服飛機@jkkddd
開發(fā)場景:基于消息隊列RocketMQ版實現環(huán)境隔離
本文介紹如何在Serverless應用引擎SAE(Serverless App Engine)上基于阿里云消息隊列RocketMQ版實現環(huán)境隔離,您可以在不修改任何業(yè)務代碼的情況下,實現異步場景下的流量控制。準備工作
部署SAE Demo應用
下載Demo。
部署主干鏈路應用。
部署主干鏈路應用(A、B、C)。具體操作,請參見將Spring Cloud應用托管到SAE。
部署灰度鏈路應用(A-gray、B-gray、C-gray),在啟動命令中添加啟動參數-Dalicloud.service.tag=gray用于區(qū)別主干鏈路應用。
部署RocketMQ
消息的生產者和消息的消費者,需要同時開啟RocketMQ消息灰度,消息的灰度功能才能生效。消息類型目前只支持RocketMQ,包含開源版本(Apache RocketMQ)和阿里云商業(yè)版(消息隊列RocketMQ版)。
如果您使用開源RocketMQ,則RocketMQ Server和RocketMQ Client都需要使用4.5.0及以上版本。更多信息,請參見Apache RocketMQ。
如果您使用阿里云消息隊列RocketMQ版,需要使用鉑金版,且Ons Client使用1.8.0.Final及以上版本。更多信息,請參見快速入門概述。
開啟RocketMQ消息灰度后,消息的Consumer Group會被修改。例如原來的Consumer Group為group1,環(huán)境標簽為gray,開啟RocketMQ消息灰度后,則group會被修改成group1_gray,如果您使用的是阿里云消息隊列RocketMQ版 ,請?zhí)崆皠?chuàng)建好Group。
默認使用SQL92的過濾方式,如果您使用開源RocketMQ,需要在服務端開啟SQL92過濾功能(即在broker.conf中配置enablePropertyFilter=true)。
步驟一:為應用開啟RocketMQ消息灰度
Demo中的spring-cloud-c、spring-cloud-a應用分別為消息的生產者和消費者,通過添加啟動參數-Dprofiler.micro.service.mq.gray.enable=true,在SAE上為其開啟RocketMQ消息灰度。
步驟二:引入流量并進行驗證
Demo應用的結構圖如下,應用之間的調用,既包含了Spring Cloud的調用,也包含了Dubbo的調用,覆蓋了當前市面上最常用的兩種微服務框架。其中C應用會生產出RocketMQ消息,由A應用進行消費,A應用在消費消息時,也會發(fā)起新的調用。這些應用都是基礎的Spring Cloud、Dubbo和RocketMQ的標準用法。
Demo的調用鏈路為:spring-cloud-zuul應用在收到/A/dubbo的請求時,會把請求轉發(fā)給spring-cloud-a,然后spring-cloud-a通過Dubbo協議去訪問spring-cloud-b,spring-cloud-b也通過Dubbo協議去訪問spring-cloud-c,spring-cloud-c在收到請求后,會生產一個消息,并返回自己的環(huán)境標簽和IP地址。這些生產出來的消息會由spring-cloud-a應用消費,spring-cloud-a應用在消費消息的時候,會通過spring cloud去調用spring-cloud-b,spring-cloud-b進而通過spring cloud去調用spring-cloud-c,并且將結果輸出到自己的日志中。
您可以登錄SAE控制臺,查看spring-cloud-a應用的日志并驗證配置?;€環(huán)境可以同時消費灰度(gray)和基線(base)環(huán)境生產出來的消息,而且在消費對應環(huán)境消息時產生的Spring Cloud調用分別路由到灰度(gray)和基線(base)環(huán)境中。具體操作,請參見查看實時日志。
標題:阿里云免實名賬號注冊,阿里云賬號購買
地址:http://www.pengfei-china.com/kfxw/64407.html