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