中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ActiveMQ中的主從怎么利用zookeeper搭建

發布時間:2020-11-30 17:16:25 來源:億速云 閱讀:302 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關ActiveMQ中的主從怎么利用zookeeper搭建,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1、環境準備

IP
192.168.3.10    server1
192.168.3.11    server2
192.168.3.12 server3

安裝軟件信息:

apache-activemq-5.13.0-bin.tar.gz

zookeeper-3.5.2-alpha.tar.gz

ZooInspector.zip

2、搭建Zookeeper集群

(1)將zookeeper-3.5.2-alpha.tar.gz文件解壓到/home/wzh/zk目錄;

(2)將zoo_sample.cfg復制一份為 zoo.cfg,并修改其配置信息

wzh@hd-master:~/zk/zookeeper-3.5.2-alpha/conf$ cp zoo_sample.cfg zoo.cfg

wzh@hd-master:~/zk/zookeeper-3.5.2-alpha/conf$vim zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181

 

server.1=192.168.3.10:2888:3888
server.2=192.168.3.11:2888:3888
server.3=192.168.3.11:2888:3888

(3)創建/tmp/zookeeper目錄

在該目錄下創建名為myid的文件,內容為1(這個值隨server而改變)

(4)將server1上的/home/wzh/zk/zookeeper-3.5.2-alpha文件夾復制到server2,server3,然后創建/tmp/zookeeper目錄

在該目錄下創建名為myid的文件,內容為2

(5)啟動zookeeper

[192.168.3.10]

wzh@hd-master:~/zk/zookeeper-3.5.2-alpha/bin$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/wzh/zk/zookeeper-3.5.2-alpha/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

[192.168.3.11]

wzh@hd-slave1:~/zk/zookeeper-3.5.2-alpha/bin$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/wzh/zk/zookeeper-3.5.2-alpha/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

[192.168.3.12]

wzh@hd-slave2:~/zk/zookeeper-3.5.2-alpha/bin$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/wzh/zk/zookeeper-3.5.2-alpha/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

3、搭建ActiveMQ集群

(1)將apache-activemq-5.13.0-bin.tar.gz解壓到/home/wzh/amq

(2)修改activemq.xml配置文件

【1】將broker節點的brokerName設置為wzhamq

復制代碼 代碼如下:

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="wzhamq" dataDirectory="${activemq.data}">

【2】將persistenceAdapter的持久化方式選用replicatedLevelDB,將kahaDB方式注釋掉

 <persistenceAdapter>
     <!--
      <kahaDB directory="${activemq.data}/kahadb"/>
     -->
    <replicatedLevelDB 
        directory="${activemq.data}/leveldb" 
        replicas="3" 
        bind="tcp://0.0.0.0:0"    
        zkAddress="192.168.3.10:2181,192.168.3.11:2181"   
        hostname="192.168.3.10"     
        sync="local_disk"     
        zkPath="/activemq/leveldb-stores"/>
    </persistenceAdapter>

將apache-activemq-5.13.復制到11,12機器

wzh@hd-master:~/amq$ scp -r apache-activemq-5.13.0/ wzh@192.168.3.11:/tmp

修改配置文件中的hostname="192.168.3.11"  

修改配置文件中的hostname="192.168.3.12"  

(3)啟動ActiveMQ

wzh@hd-master:~/amq$ ./apache-activemq-5.13.0/bin/activemq status
INFO: Loading '/home/wzh/amq/apache-activemq-5.13.0//bin/env'
INFO: Using java '/opt/java/jdk1.8.0_91/bin/java'
ActiveMQ is running (pid '2031')
wzh@hd-master:~/amq$

依次啟動192.168.3.11,192.168.3.12機器

4:集群管理

(1)通過使用ZooInspector工具查看zookeeper集群情況

ActiveMQ中的主從怎么利用zookeeper搭建

(2)http://192.168.3.10:8161/admin/ 默認用戶名與口令為admin登錄ActiveMQ管理端

5、通過Spring-boot操作ActiveMQ JMS

(1)通過gradle構建Spring-boot應用,在 gradle文件中增加

dependencies {
  compile('org.springframework.boot:spring-boot-starter-activemq')
  compile('org.springframework.boot:spring-boot-starter-web')
  testCompile('org.springframework.boot:spring-boot-starter-test')
}

(2)application中增加以下配置

spring.activemq.broker-url=failover:(tcp://192.168.3.10:61616,tcp://192.168.3.11:61616,tcp://192.168.3.12:61616)
spring.activemq.in-memory=true
spring.activemq.pool.enabled=false
spring.activemq.user=admin
spring.activemq.password=admin

(3)JMS消息發送

@Service
public class Producer {

  @Autowired
  private JmsMessagingTemplate jmsTemplate;

  public void sendMessage(Destination destination, final String message){
    jmsTemplate.convertAndSend(destination, message);
  }
}

(4)JMS消息接收

@Component
public class Consumer {
  @JmsListener(destination = "test.queue")
  public void receiveQueue(String text){

    System.out.println("Consumer收到的報文為:"+text);
  }
}

(5)測試

@RestController
@RequestMapping(
    value = "/test",
    headers = "Accept=application/json",
    produces = "application/json;charset=utf-8"
)
public class TestCtrl {
  @Autowired
  Producer producer;

  Destination destination = new ActiveMQQueue("test.queue");

  @RequestMapping(
      value = "/say/{msg}/to/{name}",
      method = RequestMethod.GET
  )
  public Map<String, Object> say(@PathVariable String msg, @PathVariable String name){
    Map<String, Object> map = new HashMap<>();
    map.put("msg", msg);
    map.put("name", name);

    producer.sendMessage(destination, msg);

    return map;
  }
}

(6)進入ActiveMQ管理控制臺創建一個消息隊列

test.queue

ActiveMQ中的主從怎么利用zookeeper搭建

(7)通過POSTMAN進行測試

ActiveMQ中的主從怎么利用zookeeper搭建

2017-08-03 08:10:44.928 INFO 12820 --- [ActiveMQ Task-3] o.a.a.t.failover.FailoverTransport : Successfully reconnected to tcp://192.168.3.10:61616
2017-08-03 08:11:08.854 INFO 12820 --- [ActiveMQ Task-1] o.a.a.t.failover.FailoverTransport : Successfully connected to tcp://192.168.3.10:61616
Consumer收到的報文為:hello
2017-08-03 08:43:39.464 INFO 12820 --- [ActiveMQ Task-1] o.a.a.t.failover.FailoverTransport : Successfully connected to tcp://192.168.3.10:61616
Consumer收到的報文為:hello

(8)目前系統連接的是10,如果此時將10集群Down掉,系統會理解選擇一臺slave作為master提供服務,從而啟動案例主備的效果。

看完上述內容,你們對ActiveMQ中的主從怎么利用zookeeper搭建有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江都市| 临桂县| 商丘市| 云霄县| 岑溪市| 新干县| 河南省| 衡山县| 绥芬河市| 博湖县| 淮阳县| 镇江市| 谢通门县| 龙泉市| 双桥区| 平乡县| 丰顺县| 屏边| 莱阳市| 云浮市| 乌什县| 贞丰县| 黑山县| 奉化市| 怀化市| 长沙县| 治县。| 义乌市| 蚌埠市| 辽宁省| 乳源| 兰州市| 育儿| 花莲市| 华容县| 信宜市| 方正县| 吴忠市| 湛江市| 宝坻区| 佛山市|