国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看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ì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

一、首先說下什么是消息隊(duì)列?

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

二、為什么要用到消息隊(duì)列?

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

三、消息隊(duì)列都分為哪幾種?

1. activemq/apollomq

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

缺點(diǎn):由于歷史悠久,歷史包袱較多,版本更新很緩慢。集群模式需要依賴zookeeper實(shí)現(xiàn)。最新架構(gòu)的產(chǎn)品被命名為apollo,號(hào)稱下一代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)實(shí)現(xiàn),支持多種場景。淘寶的mysql集群內(nèi)部有使用它進(jìn)行通訊,openstack開源云平臺(tái)的通信組件,最先在金融行業(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.下載對(duì)應(yīng)的版本

Springboot整合activemq的方法步驟

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

Springboot整合activemq的方法步驟

Springboot整合activemq的方法步驟

Springboot整合activemq的方法步驟

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

Springboot整合activemq的方法步驟

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

Springboot整合activemq的方法步驟

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

Springboot整合activemq的方法步驟

那么現(xiàn)在我將它整合在springboot里,也十分簡單 首先看下項(xiàng)目結(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

這里注意了配置的端口號(hào)和啟動(dòng)端口號(hào)不是一直的,默認(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到底引用的那個(gè)包

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

?
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的針對(duì)消息的監(jiān)聽器,當(dāng)mq里有數(shù)據(jù)后第一時(shí)間把消息監(jiān)聽到,我們跑一把試試

Springboot整合activemq的方法步驟

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

Springboot整合activemq的方法步驟

那這個(gè)時(shí)候我們?cè)賮砜聪耡ctivemq的服務(wù)中是否有消息

Springboot整合activemq的方法步驟

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

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

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

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩激情一区二区 | 中文字幕在线免费播放 | 亚洲九九 | 九九热这里 | 国产在线精品一区二区三区 | 一级在线观看视频 | 国产女爽爽视频精品免费 | 国产激情一区二区三区 | 国产欧美日韩专区 | 日韩一级精品视频在线观看 | 激情小网站 | 色婷婷综合久久久中字幕精品久久 | 亚洲视频免费观看 | 国产精品伦一区二区三级视频 | 成人免费视频网站在线观看 | 国精品一区 | 欧美久久综合 | 黄色国产 | 亚洲高清免费视频 | 日韩精品一区二区三区精品av | 国产精品正在播放 | 国产目拍亚洲精品99久久精品 | 91久久综合亚洲鲁鲁五月天 | 伊人伊人 | 欧美日韩中文在线观看 | 草久在线视频 | 国产日韩视频在线观看 | 日韩精品在线视频观看 | 一区中文字幕 | 波多野结衣先锋影音 | 一性一交一色生活片 | 九九导航 | 国产欧美日本 | 精品影院 | 久久在线视频 | 北条麻妃一区二区三区在线观看 | 国产精品久久久久一区二区三区 | 能看的av网站 | 综合色爱| 中文字幕在线影院 | 中文字幕一区二区三区不卡 |