All Projects → apache → Rocketmq Docker

apache / Rocketmq Docker

Licence: apache-2.0
Apache RocketMQ Docker

Programming Languages

shell
77523 projects

Labels

Projects that are alternatives of or similar to Rocketmq Docker

incubator-rocketmq
带中文代码注释 Mirror of Apache RocketMQ 源码解析:http://www.iocoder.cn/categories/RocketMQ/?github
Stars: ✭ 343 (+25.18%)
Mutual labels:  rocketmq
SpringBootIntegration
SpringBoot集成学习项目 SpringBoot Integration
Stars: ✭ 20 (-92.7%)
Mutual labels:  rocketmq
weweibuy-framework
基于Springboot 封装的基础组件, 包括: Http请求响应日志,日志脱敏,APM, 加解密,签名(AES,BCrypt,RSA,JWT),数据库脱敏,报文脱敏,下滑线风格URL传参,统一异常处理,feign mock,feign日志,feign报文风格转换,跨应用异常上抛,自动补偿组件,幂等组件,RocketMq客户端
Stars: ✭ 24 (-91.24%)
Mutual labels:  rocketmq
JavaYouth
主要是Java技术栈的文章,涉及到了源码、原理,面试等知识。如AQS,JVM,rpc,计网,os等等,后续可能会写mysql,redis,zk这些
Stars: ✭ 616 (+124.82%)
Mutual labels:  rocketmq
rocketmq
RocketMQ client for go supportting producer and consumer.
Stars: ✭ 29 (-89.42%)
Mutual labels:  rocketmq
OpenLogReplicator
Open Source Oracle database CDC written purely in C++. Reads transactions directly from database redo log files and streams in JSON or Protobuf format to: Kafka, RocketMQ, flat file, network stream (plain TCP/IP or ZeroMQ)
Stars: ✭ 112 (-59.12%)
Mutual labels:  rocketmq
distmq
Distributed Message Queue based on Raft
Stars: ✭ 32 (-88.32%)
Mutual labels:  rocketmq
RocketMQDedupListener
RocketMQ消息幂等去重消费者,支持使用MySQL或者Redis做幂等表,开箱即用
Stars: ✭ 132 (-51.82%)
Mutual labels:  rocketmq
spring-boot-starter-rocketmq
Starter for messaging using Apache RocketMQ
Stars: ✭ 98 (-64.23%)
Mutual labels:  rocketmq
jungle
微服务集成开发框架,支持一键生成微服务工程,集成Dubbo,RocketMQ,状态机,Spring开发框架
Stars: ✭ 24 (-91.24%)
Mutual labels:  rocketmq
taotao-cloud-project
微服务开发脚手架,包括大数据模块、微服务模块、前端模块。基于Spring Cloud Alibaba的微服务架构。提供技术框架的基础能力的封装,减少开发工作,只关注业务,包含了工作以来的工作总结和技术沉淀
Stars: ✭ 76 (-72.26%)
Mutual labels:  rocketmq
short
URL shortening service. 高性能短链接服务。
Stars: ✭ 14 (-94.89%)
Mutual labels:  rocketmq
compose-pay
🔱 HA distributed payment gateway. 高可用分布式支付网关/支付前置/支付系统/微信/支付宝
Stars: ✭ 21 (-92.34%)
Mutual labels:  rocketmq
pan
Pan is a high performance mq proxy,support kafka,rabbit-mq,rocketmq,nsq and other mq
Stars: ✭ 27 (-90.15%)
Mutual labels:  rocketmq
dgiot-dashboard
DG-IoT平台行业应用扩展插件 DG-IoT for application plugin
Stars: ✭ 229 (-16.42%)
Mutual labels:  rocketmq
docker-case
这个项目主要是为了快速拉起docker服务
Stars: ✭ 31 (-88.69%)
Mutual labels:  rocketmq
alibaba-middleware-race-preliminary
2016年阿里中间件性能挑战赛初赛题,RocketMQ+JStorm+Tair实时统计双11交易金额
Stars: ✭ 42 (-84.67%)
Mutual labels:  rocketmq
hanzo-cloud
SpringCloud(Hoxton.SR5) + SpringBoot(2.3.0.RELEASE)的 SaaS型微服务后端脚手架。授权中心开发完毕。文档地址:https://www.kancloud.cn/hanzo/hanzo
Stars: ✭ 15 (-94.53%)
Mutual labels:  rocketmq
order-charge-notify
模拟电商下单->订单处理->订单结果通知的完整流程,基于RocketMQ进行实现
Stars: ✭ 46 (-83.21%)
Mutual labels:  rocketmq
triton
Triton is a high-performance mq consumer, support kafka,rabbit-mq,rocketmq,nsq and other mq
Stars: ✭ 19 (-93.07%)
Mutual labels:  rocketmq

RocketMQ-Docker

License Average time to resolve an issue Percentage of issues still open Twitter Follow

This is the Git repo of the Docker Image for Apache RocketMQ. You could run it through the following ways:

  1. Generate a RocketMQ Docker image
  2. Run the docker image with the below modes:
    1. Single Node.
    2. Cluster with docker-compose.
    3. Cluster on Kubernetes.

Prerequisites

The Docker images in this repository should support Docker version 1.12+, and Kubernetes version 1.9+.

Quick start

A. Generate a RocketMQ docker image

Note: This is an experimented code to allow users to build docker image locally according to a given RocketMQ version. Actually the formal images have been generated by RocketMQ official maintainer and stored in docker hub. Suggest common users to use these remote images directly.

cd image-build
sh build-image.sh RMQ-VERSION BASE-IMAGE

Tip: The supported RMQ-VERSIONs can be obtained from here. The supported BASE-IMAGEs are [centos, alpine]. For example: sh build-image.sh 4.5.0 alpine

B. Stage a specific version

Users can generate a runtime (stage) directory based on a specific version and docker style operate the RocketMQ cluster/server/nameserver beneath the directory.

sh stage.sh RMQ-VERSION

Note: RMQ-VERSION is the tag of the RocketMQ image. After executing the above shell script, (e.g. sh stage.sh 4.5.0), it will generate a stage directory (./stages/4.5.0). User can do the following works under the directory, assuming the RMQ-version is defined with 4.5.0.

1. Single Node

Run:

cd stages/4.5.0 

./play-docker.sh alpine

NOTE: Some Linux Systems (e.g. Ubuntu) may generate path stages/4.5.0/template, please adjust the command accordingly.

2. Cluster with docker-compose

Run:

cd stages/4.5.0 

./play-docker-compose.sh

3. Cluster on Kubernetes

Run:

cd stages/4.5.0 

./play-kubernetes.sh

4. Cluster of Dledger storage

Run: (Note: This feature needs RMQ version is 4.4.0 or above)

cd stages/4.5.0 

./play-docker-dledger.sh

5. TLS support

Run: (It will startup nameserver and broker with SSL enabled style. The client will not invoke nameserver or broker until related SSL client is configurated. )

You can see detailed TLS config instruction from here

cd stages/4.5.0 

./play-docker-tls.sh

# Once nameserver and broker startup correctly, you still can use the following script to test produce/consume in SSL mode, why, due to they still use the SSL setting which exists in JAVA-OPT of the docker rmqbroker container. 
./play-producer.sh
./play-consumer.sh

How to update RocketMQ image repository using update.sh

Run:

cd image-build
./update.sh 

This script will get the latest release version of RocketMQ and build the docker images based on alpine and centos respectively, then push the new images to the current official repository apacherocketmq/rocketmq.

How to verify RocketMQ works well

Verify with Docker and docker-compose

  1. Use docker ps|grep rmqbroker to find your RocketMQ broker container id.

  2. Use docker exec -it {container_id} ./mqadmin clusterList -n {nameserver_ip}:9876 to verify if RocketMQ broker works, for example:

root$ docker exec -it 63950574b491 ./mqadmin clusterList -n 192.168.43.56:9876
OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
DefaultCluster    63950574b491            0     172.17.0.3:10911       V4_3_0                   0.00(0,0ms)         0.00(0,0ms)          0 429398.92 -1.0000

Verify with Kubernetes

  1. Use kubectl get pods|grep rocketmq to find your RocketMQ broker Pod id, for example:
[[email protected] rocketmq]# kubectl get pods |grep rocketmq
rocketmq-7697d9d574-b5z7g             2/2       Running       0          2d
  1. Use kubectl -n {namespace} exec -it {pod_id} -c broker bash to login the broker pod, for example:
[[email protected] rocketmq]# kubectl -n default exec -it  rocketmq-7697d9d574-b5z7g -c broker bash
[[email protected] bin]# 
  1. Use mqadmin clusterList -n {nameserver_ip}:9876 to verify if RocketMQ broker works, for example:
[[email protected] bin]# ./mqadmin clusterList -n localhost:9876
OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
DefaultCluster    rocketmq-7697d9d574-b5z7g  0     192.168.196.14:10911   V4_3_0                   0.00(0,0ms)         0.00(0,0ms)          0 429399.44 -1.0000

So you will find it works, enjoy !

C. Product level configuration

The project also provides a usage reference for product level cluster docker configuration and startup. Please see the README.md details in /product directory.

FAQ

1. If I want the broker container to load my customized configuration file (which means broker.conf) when it starts, how can I achieve this?

First, create the customized broker.conf, like below:

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
#set `brokerIP1` if you want to set physical IP as broker IP.
brokerIP1=10.10.101.80 #change you own physical IP Address

And put the customized broker.conf file at a specific path, like "pwd/data/broker/conf/broker.conf".

Then we can modify the play-docker.sh and volume this file to the broker container when it starts. For example:

docker run -d -p 10911:10911 -p 10909:10909 -v `pwd`/data/broker/logs:/root/logs -v `pwd`/data/broker/store:/root/store -v `pwd`/data/broker/conf/broker.conf:/home/rocketmq/rocketmq-4.5.0/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" apacherocketmq/rocketmq:4.5.0 sh mqbroker -c /opt/rocketmq-4.5.0/conf/broker.conf

Finally we can find the customized broker.conf has been used in the broker container. For example:

MacBook-Pro:4.5.0 huan$ docker ps |grep mqbroker
a32c67aed6dd        apacherocketmq/rocketmq:4.5.0   "sh mqbroker"       20 minutes ago      Up 20 minutes       0.0.0.0:10909->10909/tcp, 9876/tcp, 0.0.0.0:10911->10911/tcp   rmqbroker
MacBook-Pro:4.5.0 $ docker exec -it a32c67aed6dd cat /home/rocketmq/rocketmq-4.5.0/conf/broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
#set `brokerIP1` if you want to set physical IP as broker IP.
brokerIP1=10.10.101.80 #change you own physical IP Address

In the case of docker-compose, change the docker-compose.yml like following:

version: '2'
services:
  namesrv:
    image: apacherocketmq/rocketmq:4.5.0
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - ./data/namesrv/logs:/home/rocketmq/logs
    command: sh mqnamesrv
  broker:
    image: apacherocketmq/rocketmq:4.5.0
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - ./data/broker/logs:/home/rocketmq/logs
      - ./data/broker/store:/home/rocketmq/store
      - ./data/broker/conf/broker.conf:/home/rocketmq/rocketmq-4.5.0/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c ../conf/broker.conf
    depends_on:
      - namesrv

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].