ドッカーバージョンrocketmq展開rocketmq展開スタートガイド-Dockerバージョン

rocketmq展開スタートガイド-Dockerバージョン

 

最近rocketmqを使用することを学んで、rocketmqサーバーを構築する必要があり、我々は大手レコードrocketmqピットプロセスの数を設定し、このプロセスが踏まれています。

準備の

建設前に、我々はサービスを構築ドッキングウィンドウを使用する必要があるいくつかの準備作業を、行う必要があり、事前にドッキングウィンドウをインストールする必要があります。また、アカウントに多くのトラブルの別の展開を取って、ブローカーrocketmqとネームサーバを配備する必要性のために、ここでドッカ - コンを使用します。

次のようにrocketmqアーキテクチャは次のとおりです。

rocketmq

さらに、本明細書中で使用されるように、サービスMQの状態、およびメッセージの消費量を監視することができ、ウェブ視覚化コンソールを構築する必要性は、rocketmq・コンソールは、プログラムが同じマウントドッキングウィンドウを使用します。

展開プロセスの

まず、我々は自分自身、直接引っ張って生産するために選択することができますドッキングウィンドウミラー、rocketmqする必要が  [email protected]を:Apacheの/ rocketmq-docker.gitを  した後、ミラー。また、公式のドッキングウィンドウハブミラーの生産名前で直接使用することができます  rocketmqinc/rocketmq

そして、MQの構成ファイルを作成し  broker.conf、ファイルが配置され  /opt/rocketmq/conf 、以下のように、構成されました:

コピー
brokerClusterName = DefaultCluster  
brokerName = broker-a  
brokerId = 0  
deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH # 如果是本地程序调用云主机 mq,这个需要设置成 云主机 IP brokerIP1=10.10.101.80 

以下のフォルダを作成します/opt/rocketmq/logs/opt/rocketmq/storeそして最終的には

コピー
version: '2'
services:
  namesrv:
 image: rocketmqinc/rocketmq  container_name: rmqnamesrv  ports:  - 9876:9876  volumes:  - /opt/rocketmq/logs:/home/rocketmq/logs  - /opt/rocketmq/store:/home/rocketmq/store  command: sh mqnamesrv  broker:  image: rocketmqinc/rocketmq  container_name: rmqbroker  ports:  - 10909:10909  - 10911:10911  - 10912:10912  volumes:  - /opt/rocketmq/logs:/home/rocketmq/logs  - /opt/rocketmq/store:/home/rocketmq/store  - /opt/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf #command: sh mqbroker -n namesrv:9876  command: sh mqbroker -n namesrv:9876 -c ../conf/broker.conf  depends_on:  - namesrv  environment:  - JAVA_HOME=/usr/lib/jvm/jre  console:  image: styletang/rocketmq-console-ng  container_name: rocketmq-console-ng  ports:  - 8087:8080  depends_on:  - namesrv  environment:  - JAVA_OPTS= -Dlogging.level.root=info -Drocketmq.namesrv.addr=rmqnamesrv:9876  - Dcom.rocketmq.sendMessageWithVIPChannel=false

注意点

rocketmqブローカーとrokcetmq-コンソールを使用すると、ネームサーバのIPアドレスを知っている必要があり、rokcetmqネームサーバに接続する必要が注目されるべきです。ドッカー-COMPOSEを使用した後、3つのドッカー容器と上記配置は、コンテナの名前が、本明細書ネームサーバrmqnamesrv、コンテナ船IP名の代わりに直接使用されます。

設定が完了したら、実行して、3個のコンテナを起動するようにドッキングウィンドウ-構成打ち上げ成功後、IPを訪問:8087、外部MQコンソールビューを、あなたは、以下の情報を見ることができれば、rocketmqサービスが正常に開始されました。

MQコンソール

rocketmq初めての経験

すぐにここspringboot使用されますMQを使い始める、使用する  rocketmq-spring-boot-starter 次のように構成されたモジュール、ポンポンを:

コピー
<!--在pom.xml中添加依赖-->
<dependency>
    <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency>

次のように構成された消費者向けサービスの送信者:

コピー
## application.properties
rocketmq.name-server=ip:9876
rocketmq.producer.group=my-group

次のように消費者サービスの送信者プログラムは次のとおりです。

コピー
@SpringBootApplication
public class ProducerApplication implements CommandLineRunner { @Resource private RocketMQTemplate rocketMQTemplate; public static void main(String[] args){ SpringApplication.run(ProducerApplication.class, args); } public void run(String... args) throws Exception { rocketMQTemplate.convertAndSend("test-topic-1", "Hello, World!"); rocketMQTemplate.send("test-topic-1", MessageBuilder.withPayload("Hello, World! I'm from spring message").build()); } }

メッセージコンシューマの設定は次のとおりです。

コピー
## application.properties
rocketmq.name-server=ip:9876

次のようにプログラムを実行するためのニュース消費者:

コピー
@SpringBootApplication
public class ConsumerApplication{ public static void main(String[] args){ SpringApplication.run(ConsumerApplication.class, args); } @Slf4j @Service @RocketMQMessageListener(topic = "test-topic-1", consumerGroup = "my-consumer_test-topic-1") public static class MyConsumer1 implements RocketMQListener<String> { public void onMessage(String message) { log.info("received message: {}", message); } } }

関連質問

  1. 図例外に示すように、メッセージ送信者は、例外メッセージを送信しますCaused by: org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout

この異常はなく、鉛正しく設定brokerip MQサービスコンソールのログを記録する予定です、あなたはブローカーの設定情報を表示することができます。

image.png

上記は、  192.168.128.3:10911 容器ドッカー内部ホストIPであるIP、です。必要である、IPクラウドホストIPに設定する必要があり  broker.conf 、変更する  brokerIP1 パラメータを。

  1. MQのMQコンソールが正しくサービス情報を表示することはできません。

主な問題は、エラーを設定するネームサーバのIPです。ビューMQコンソール操作およびメンテナンスページ、あなたが接続し、この時点でのネームサーバのアドレス情報を見ることができます。

image.png

ここでは、のために設定されたアドレスを確認することができます127.0.0.1:9876ドッキングウィンドウコンテナを使用して、ここで、MQコンソールので、コンテナの直接のアクセスは  127.0.0.1:9876 、むしろ適切な手順内のホストよりも、独自の内部にアクセスします。

ここでは、環境変数のドッキングウィンドウを設定する必要があり、次のように、構成は次のとおりです。

コピー
- JAVA_OPTS= -Dlogging.level.root=info   -Drocketmq.namesrv.addr=rmqnamesrv:9876 

ヘルプドキュメントの

ドッカー-rocketmq
RocketMqドッカー基本的な概念と構造
RocketMQ、春

最近rocketmqを使用することを学んで、rocketmqサーバーを構築する必要があり、我々は大手レコードrocketmqピットプロセスの数を設定し、このプロセスが踏まれています。

準備の

建設前に、我々はサービスを構築ドッキングウィンドウを使用する必要があるいくつかの準備作業を、行う必要があり、事前にドッキングウィンドウをインストールする必要があります。また、アカウントに多くのトラブルの別の展開を取って、ブローカーrocketmqとネームサーバを配備する必要性のために、ここでドッカ - コンを使用します。

次のようにrocketmqアーキテクチャは次のとおりです。

rocketmq

さらに、本明細書中で使用されるように、サービスMQの状態、およびメッセージの消費量を監視することができ、ウェブ視覚化コンソールを構築する必要性は、rocketmq・コンソールは、プログラムが同じマウントドッキングウィンドウを使用します。

展開プロセスの

まず、我々は自分自身、直接引っ張って生産するために選択することができますドッキングウィンドウミラー、rocketmqする必要が  [email protected]を:Apacheの/ rocketmq-docker.gitを  した後、ミラー。また、公式のドッキングウィンドウハブミラーの生産名前で直接使用することができます  rocketmqinc/rocketmq

そして、MQの構成ファイルを作成し  broker.conf、ファイルが配置され  /opt/rocketmq/conf 、以下のように、構成されました:

コピー
brokerClusterName = DefaultCluster  
brokerName = broker-a  
brokerId = 0  
deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH # 如果是本地程序调用云主机 mq,这个需要设置成 云主机 IP brokerIP1=10.10.101.80 

以下のフォルダを作成します/opt/rocketmq/logs/opt/rocketmq/storeそして最終的には

コピー
version: '2'
services:
  namesrv:
 image: rocketmqinc/rocketmq  container_name: rmqnamesrv  ports:  - 9876:9876  volumes:  - /opt/rocketmq/logs:/home/rocketmq/logs  - /opt/rocketmq/store:/home/rocketmq/store  command: sh mqnamesrv  broker:  image: rocketmqinc/rocketmq  container_name: rmqbroker  ports:  - 10909:10909  - 10911:10911  - 10912:10912  volumes:  - /opt/rocketmq/logs:/home/rocketmq/logs  - /opt/rocketmq/store:/home/rocketmq/store  - /opt/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf #command: sh mqbroker -n namesrv:9876  command: sh mqbroker -n namesrv:9876 -c ../conf/broker.conf  depends_on:  - namesrv  environment:  - JAVA_HOME=/usr/lib/jvm/jre  console:  image: styletang/rocketmq-console-ng  container_name: rocketmq-console-ng  ports:  - 8087:8080  depends_on:  - namesrv  environment:  - JAVA_OPTS= -Dlogging.level.root=info -Drocketmq.namesrv.addr=rmqnamesrv:9876  - Dcom.rocketmq.sendMessageWithVIPChannel=false

注意点

rocketmqブローカーとrokcetmq-コンソールを使用すると、ネームサーバのIPアドレスを知っている必要があり、rokcetmqネームサーバに接続する必要が注目されるべきです。ドッカー-COMPOSEを使用した後、3つのドッカー容器と上記配置は、コンテナの名前が、本明細書ネームサーバrmqnamesrv、コンテナ船IP名の代わりに直接使用されます。

設定が完了したら、実行して、3個のコンテナを起動するようにドッキングウィンドウ-構成打ち上げ成功後、IPを訪問:8087、外部MQコンソールビューを、あなたは、以下の情報を見ることができれば、rocketmqサービスが正常に開始されました。

MQコンソール

rocketmq初めての経験

すぐにここspringboot使用されますMQを使い始める、使用する  rocketmq-spring-boot-starter 次のように構成されたモジュール、ポンポンを:

コピー
<!--在pom.xml中添加依赖-->
<dependency>
    <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency>

次のように構成された消費者向けサービスの送信者:

コピー
## application.properties
rocketmq.name-server=ip:9876
rocketmq.producer.group=my-group

次のように消費者サービスの送信者プログラムは次のとおりです。

コピー
@SpringBootApplication
public class ProducerApplication implements CommandLineRunner { @Resource private RocketMQTemplate rocketMQTemplate; public static void main(String[] args){ SpringApplication.run(ProducerApplication.class, args); } public void run(String... args) throws Exception { rocketMQTemplate.convertAndSend("test-topic-1", "Hello, World!"); rocketMQTemplate.send("test-topic-1", MessageBuilder.withPayload("Hello, World! I'm from spring message").build()); } }

メッセージコンシューマの設定は次のとおりです。

コピー
## application.properties
rocketmq.name-server=ip:9876

次のようにプログラムを実行するためのニュース消費者:

コピー
@SpringBootApplication
public class ConsumerApplication{ public static void main(String[] args){ SpringApplication.run(ConsumerApplication.class, args); } @Slf4j @Service @RocketMQMessageListener(topic = "test-topic-1", consumerGroup = "my-consumer_test-topic-1") public static class MyConsumer1 implements RocketMQListener<String> { public void onMessage(String message) { log.info("received message: {}", message); } } }

関連質問

  1. 図例外に示すように、メッセージ送信者は、例外メッセージを送信しますCaused by: org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout

この異常はなく、鉛正しく設定brokerip MQサービスコンソールのログを記録する予定です、あなたはブローカーの設定情報を表示することができます。

image.png

上記は、  192.168.128.3:10911 容器ドッカー内部ホストIPであるIP、です。必要である、IPクラウドホストIPに設定する必要があり  broker.conf 、変更する  brokerIP1 パラメータを。

  1. MQのMQコンソールが正しくサービス情報を表示することはできません。

主な問題は、エラーを設定するネームサーバのIPです。ビューMQコンソール操作およびメンテナンスページ、あなたが接続し、この時点でのネームサーバのアドレス情報を見ることができます。

image.png

ここでは、のために設定されたアドレスを確認することができます127.0.0.1:9876ドッキングウィンドウコンテナを使用して、ここで、MQコンソールので、コンテナの直接のアクセスは  127.0.0.1:9876 、むしろ適切な手順内のホストよりも、独自の内部にアクセスします。

ここでは、環境変数のドッキングウィンドウを設定する必要があり、次のように、構成は次のとおりです。

コピー
- JAVA_OPTS= -Dlogging.level.root=info   -Drocketmq.namesrv.addr=rmqnamesrv:9876 

ヘルプドキュメントの

ドッカー-rocketmq
RocketMqドッカー基本的な概念と構造
RocketMQ、春

おすすめ

転載: www.cnblogs.com/Leo_wl/p/11796697.html