激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Springboot整合activemq的方法步驟

Springboot整合activemq的方法步驟

2021-07-10 10:32小毛毛--專注后端 Java教程

這篇文章主要介紹了Springboot整合activemq的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

今天呢心血來潮,也有很多以前的學(xué)弟問到我關(guān)于消息隊列的一些問題,有個剛?cè)腴T,有的有問題都來問我,那么今天來說說如何快速入門mq。

一、首先說下什么是消息隊列?

1.消息隊列是在消息的傳輸過程中保存消息的容器。

二、為什么要用到消息隊列?

主要原因是由于在高并發(fā)環(huán)境下,由于來不及同步處理,請求往往會發(fā)生堵塞,比如說,大量的insert,update之類的請求同時到達(dá) mysql ,直接導(dǎo)致無數(shù)的行鎖表鎖,甚至最后請求會堆積過多,從而觸發(fā)too many connections錯誤。通過使用消息隊列,我們可以異步處理請求,從而緩解系統(tǒng)的壓力。

三、消息隊列都分為哪幾種?

1. activemq/apollomq

優(yōu)點(diǎn):老牌的消息隊列,使用java語言編寫。對jms支持最好,采用多線程并發(fā),資源消耗比較大。如果你的主語言是java,可以重點(diǎn)考慮。

缺點(diǎn):由于歷史悠久,歷史包袱較多,版本更新很緩慢。集群模式需要依賴zookeeper實現(xiàn)。最新架構(gòu)的產(chǎn)品被命名為apollo,號稱下一代activemq,目前案例較少。

2. rocketmq/kafka

優(yōu)點(diǎn):專為海量消息傳遞打造,主張使用拉模式,天然的集群、ha、負(fù)載均衡支持。話說還是那句話,適合不適合看你有沒有那么大的量。

缺點(diǎn):所謂魚和熊掌不可兼得,放棄了一些消息中間件的靈活性,使用的場景較窄,需關(guān)注你的業(yè)務(wù)模式是否契合,否則山寨變相使用很別扭。除此之外,rocketmq沒有.net下的客戶端可用。rocketmq身出名門,但使用者不多,生態(tài)較小,畢竟消息量能達(dá)到這種體量的公司不多,你也可以直接去購買阿里云的消息服務(wù)。kafka生態(tài)完善,其代碼是用scala語言寫成,可靠性比rocketmq低一些。

3. rabbitmq

優(yōu)點(diǎn):生態(tài)豐富,使用者眾,有很多人在前面踩坑。amqp協(xié)議的領(lǐng)導(dǎo)實現(xiàn),支持多種場景。淘寶的mysql集群內(nèi)部有使用它進(jìn)行通訊,openstack開源云平臺的通信組件,最先在金融行業(yè)得到運(yùn)用。

缺點(diǎn):erlang代碼你hold得住不? 雖然erlang是天然集群化的,但rabbitmq在高可用方面做起來還不是特別得心應(yīng)手,別相信廣告。

四、我們今天重要說下如何快速上手activemq,也是在mq中最容易上手的一種

1.首先我們先下載activemq  鏈接 http://activemq.apache.org/download.html

2. Springboot整合activemq的方法步驟

3.下載對應(yīng)的版本

Springboot整合activemq的方法步驟

4.啟動activemq(我這里是mac環(huán)境,windows可雙擊運(yùn)行)

Springboot整合activemq的方法步驟

Springboot整合activemq的方法步驟

Springboot整合activemq的方法步驟

出現(xiàn)這個說明mq已經(jīng)啟動我可可以通過active默認(rèn)的端口號運(yùn)行https://http://localhost:8161/

Springboot整合activemq的方法步驟

這里看到他會alert一個登陸窗口 默認(rèn)賬號密碼都為admin

Springboot整合activemq的方法步驟

點(diǎn)擊queues查看隊列是的消息,這樣我們activemq就算運(yùn)行了

Springboot整合activemq的方法步驟

那么現(xiàn)在我將它整合在springboot里,也十分簡單 首先看下項目結(jié)構(gòu)

Springboot整合activemq的方法步驟

5.加入依賴 本次用的gradle

?
1
compile('org.springframework.boot:spring-boot-starter-activemq:2.1.1.release')

6.yml配置

?
1
2
3
4
5
spring:
 activemq:
  broker-url: tcp://localhost:61616
  user: admin
  password: admin

這里注意了配置的端口號和啟動端口號不是一直的,默認(rèn)為61616,在conf的jetty.xml下課進(jìn)行查看也可以修改

咱們直接上代碼

7.controller

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.gd.acticemqtest.controller;
 
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.jms.core.jmstemplate;
import org.springframework.jms.core.messagecreator;
import org.springframework.scheduling.annotation.scheduled;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.restcontroller;
 
import javax.jms.jmsexception;
import javax.jms.message;
import javax.jms.session;
import javax.jms.textmessage;
 
/**
 * @data 2019-01-09 22:42
 * @author 張國偉 wechat:17630376104
 * @description todo
 */
@restcontroller
public class controllerdemo {
 
  @autowired
  private jmstemplate jmstemplate;
 
  @requestmapping("/sendmsg")
  public void sendmsg(string msg) {
    jmstemplate.send("q2", new messagecreator() {
      @override
      public message createmessage(session session) throws jmsexception {
 
        textmessage textmessage = session.createtextmessage();
        textmessage.settext(msg);
        return textmessage;
      }
    });
  }

這里一定要注意的是jmstemplate到底引用的那個包

jmstemplate.send是向隊列里發(fā)送消息,并且為隊列起一個名字

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.gd.acticemqtest.serive;
 
import org.springframework.jms.annotation.jmslistener;
import org.springframework.stereotype.service;
 
/**
 * @data 2019-01-09 22:54
 * @author 張國偉 wechat:17630376104
 * @description todo
 */
@service
public class activemsglistener {
 
  @jmslistener(destination = "q2")
  public void rctivemsg(string message){
  system.out.println("------監(jiān)聽到activemq的數(shù)據(jù)"+message);
  }
 
}

jmslistener是spring的針對消息的監(jiān)聽器,當(dāng)mq里有數(shù)據(jù)后第一時間把消息監(jiān)聽到,我們跑一把試試

Springboot整合activemq的方法步驟

當(dāng)敲下enter那一刻,控制臺已經(jīng)把剛剛存進(jìn)去的消息給打印了出來

Springboot整合activemq的方法步驟

那這個時候我們再來看下activemq的服務(wù)中是否有消息

Springboot整合activemq的方法步驟

可以看到這時候隊列里已經(jīng)有了q2這個消息。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://www.cnblogs.com/zgwjava/p/10283908.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产在线观看91精品 | 国产一区二区三区欧美 | 成人黄色在线视频 | av电影在线免费 | 妇女毛片| 永久免费不卡在线观看黄网站 | 欧美成人性色 | 欧美精品久久久久久久久久 | 亚洲一区二区三区日本久久九 | 国产精品欧美久久久久一区二区 | 亚洲精品午夜在线 | 国产在线精品一区二区三区不卡 | 久色免费视频 | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 | 成人在线视频在线观看 | 成人午夜亚洲 | 欧美另类综合 | 国产高潮失禁喷水爽到抽搐视频 | 在线成人www免费观看视频 | 免费国产自久久久久三四区久久 | 日本一区二区三区四区高清视频 | 久久艹综合 | 美女啪网站 | 精品亚洲一区二区 | 看免费毛片 | 欧美日韩激情 | 日本欧美一区二区三区视频麻豆 | 久久国产精品电影 | 欧美www| 日本中文字幕久久 | 深夜福利视频绿巨人视频在线观看 | 成年人免费视频播放 | 一级α片 | 91福利国产在线观一区二区 | 一级网站| 国产资源在线免费观看 | 久久老司机 | 亚洲日本乱码在线观看 | 91久久国产综合久久91精品网站 | 日韩一级毛毛片 | 日产精品一区二区三区在线观看 |