真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

構(gòu)建基于SpringCloudStream的消息驅(qū)動微服務(wù)用于處理第三方開發(fā)者接受微信大量推送消息的解決方法

構(gòu)建基于SpringCloudStream的消息驅(qū)動微服務(wù)用于處理第三方開發(fā)者接受微信大量推送消息的解決方法,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比敘永網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式敘永網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋敘永地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。

事情的起因源于在使用微信公眾號服務(wù)的時候,作為一個第三方的服務(wù)商,騰訊會將各種業(yè)務(wù)消息推送到第三方開發(fā)者的服務(wù)器上,而之前的方案是消息直接進(jìn)到服務(wù)上,當(dāng)使用到一些業(yè)務(wù),比如發(fā)券等操作時,騰訊服務(wù)器會向開發(fā)者發(fā)送大量的消息,由于消息服務(wù)的處理能力有限,尤其是高峰的時候,消息請求會直接壓到服務(wù)上,導(dǎo)致服務(wù)線程繁忙,這時候會報大量服務(wù)超時,觸發(fā)微信的服務(wù)報警,服務(wù)不可用,或者服務(wù)超時,這時公眾號內(nèi)的消息服務(wù)將無法繼續(xù)為用戶提供服務(wù)。鑒于此問題,我們重新梳理并構(gòu)建了基于Spring Cloud Stream的消息驅(qū)動的微服務(wù)

我們采用 Spring Cloud Finchley.SR2,Spring Boot 2.0.6.RELEASE 版本來開發(fā),系統(tǒng)的初步設(shè)計思路,是利用

消息隊列rabbitmq來解耦服務(wù),來減緩消息直接到服務(wù)上的壓力,我們沒有直接對接mq來使用,而是采用了Spring Cloud Stream, 簡單的來說,Spring Cloud Stream是構(gòu)建消息驅(qū)動的微服務(wù)應(yīng)用程序的框架,將消息整合的處理操作進(jìn)行了進(jìn)一步的抽象操作, 實現(xiàn)了更加簡化的消息處理, 可以使用不同的代理中間件,它抽象了事件驅(qū)動的一些概念,對于消息中間件的進(jìn)一步封裝,可以做到代碼層面對中間件的無感知,甚至于動態(tài)的切換中間件,切換topic。使得微服務(wù)開發(fā)的高度解耦,服務(wù)可以關(guān)注更多自己的業(yè)務(wù)流程。

Spring Cloud Stream的一些基本概念可以自行搜索,這里不做過多描述,下面只是講述一下具體方案和配置方法及遇到的問題。

基本結(jié)構(gòu)是一個非常簡單的消息訂閱發(fā)布模式構(gòu)建基于SpringCloudStream的消息驅(qū)動微服務(wù)用于處理第三方開發(fā)者接受微信大量推送消息的解決方法

構(gòu)建基于SpringCloudStream的消息驅(qū)動微服務(wù)用于處理第三方開發(fā)者接受微信大量推送消息的解決方法

至此整個消息處理的基本結(jié)構(gòu)就描述完成了,當(dāng)然實際的開發(fā)過程中,還要考慮消息的異步處理,多線程去處理等,這里就不詳盡描述了,需要根據(jù)自己的業(yè)務(wù)需要來實現(xiàn)相應(yīng)的開發(fā),

有幾點注意的情況:

@StreamListener(ReceiveInputChannel.MSG_RECEIVER) 這個方法只能放到Application 服務(wù)啟動的類中,放到別的地方會報錯:Disp org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers,可能和類的加載順序有關(guān)系。這樣在啟動類中接受消息,然后可以再通過業(yè)務(wù)拆分,將消息轉(zhuǎn)到其他的類中實現(xiàn)各自業(yè)務(wù)邏輯開發(fā)。

        
        
            org.springframework.cloud
            spring-cloud-starter-stream-rabbit
        

        
        

根據(jù)不同的消息中間件,選擇不同的依賴。

當(dāng)接收消息過多的時候,可以增加消息生產(chǎn)者實例來加大消息的接受能力,當(dāng)消費者處理大量阻塞消息時,處理能力下降,可以通過增加負(fù)載的消費者服務(wù)實例數(shù)量來加大消費能力,這個需要通過實際情況找到平衡點,消息隊列作為緩存,降低了由于消息直接壓到服務(wù)器上而導(dǎo)致的服務(wù)崩潰問題的風(fēng)險。

看完上述內(nèi)容,你們掌握構(gòu)建基于SpringCloudStream的消息驅(qū)動微服務(wù)用于處理第三方開發(fā)者接受微信大量推送消息的解決方法的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


當(dāng)前題目:構(gòu)建基于SpringCloudStream的消息驅(qū)動微服務(wù)用于處理第三方開發(fā)者接受微信大量推送消息的解決方法
分享鏈接:http://weahome.cn/article/godjei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部