有這樣的一種場景,公司項目原本是經過 http 接口來調用第三方接口,可是這樣帶來了不少問題;我在實際項目中有碰到這樣一種狀況,因爲對方服務不穩定,接口雖然調過去了,對方操做成功,可是因爲網絡緣由或其它緣由,未能返回成功的反饋,致使我方業務出錯,這在量少的時候還能夠經過人工處理解決,當量上來的時候,就是一場災難。html
kafka 來講的話是高吞吐量,kafka 在每秒百萬級別(通常用在設備上點等高頻數據操做),徹底分佈式; 而 rabbitmq 比較簡單,遵循 amqp 協議,通常應用可使用;不適合物聯網數據上報java
注意事項spring
這裏我是學的這個視頻 ,正好又找到對應的代碼博客 視頻地址數據庫
解讀:springboot
代碼: 簡單隊列網絡
解讀:ssh
代碼(輪詢分發): 輪詢分發
代碼(公平分發): 也叫能者多勞 公平分發異步
解讀:分佈式
代碼: 訂閱模式ide
解讀:
代碼: 路由模式
解讀:
這個相比較於路由模式來講是把全名稱匹配換成了模式匹配,有了通配符
代碼: 主題模式
生產端有兩種方式來確保消息到達隊列
代碼:事務機制
消費者端有 ack 確認來確保可靠
//將自動 ack 確認設置爲 false ,而後手動來確認已經收到消息並正確處理業務 boolean autoAck=false; channel.basicConsume("test",autoAck,defaultConsumer); //迴應 rabbitmq 已經收到消息並處理 channel.basicAck(envelope.getDeliveryTag(),false);
上面的代碼雖然能解決消息丟失的問題,但有一個弊端,就是當業務處理時間特別長的時候,rabbitmq 得不到迴應,形成消息堆積。解決辦法以下。
rabbitmq 自己能夠作持久化來保證可靠性
// 設置方法在聲明隊列的第二個參數,是否持久化,設置爲 true 便可 boolean durable = true; channel.queueDeclare(QUEUE_NAME,durable,false,false,null);
什麼是死信隊列
使用場景
Excel 通用導入導出,支持 Excel 公式
https://blog.csdn.net/sanri1993/article/details/100601578
使用模板代碼 ,從數據庫生成代碼 ,及一些項目中常常能夠用到的小工具
https://blog.csdn.net/sanri1993/article/details/98664034
原做者的文章恰好能和視頻對上,太感謝了,我只是幫原做者作了個文章排序而已;
引用你的文章但願不介意
https://blog.csdn.net/qq78442761/article/category/9040352
https://www.cnblogs.com/ssh-html/p/10542841.html