javaDEMO
本网站记录了最全的各种 JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring 的, Mybatis 的等等各种,助力你从菜鸟到大牛,记得收藏哦~~
https://www.javastudy.cloud
RocketMQ 总述
RocketMQ 由阿里巴巴 2012 年开源,后捐赠给 Apache 软件基金会.主要有以下特点:
一.灵活的扩展性,RocketMQ 中的四大核心组件都天然支持集群
二.海量消息堆积能力,主要采用了零拷贝原理
三. 支持顺序消息,分为全局有序和局部有序
四.支持多种消息过滤方式
五.支持事务消息.对于分布式事务提供了一种思路
使用 docker 安装 rocketMq
参考文档:
http://rocketmq.apache.org/docs/quick-start/
这里 docker 没有官方镜像,需要我们自己基于 centos 封装镜像
这里使用的是 Dockfile
参考文档: https://docs.docker.com/v17.09/engine/reference/builder/
制作 mq-namesrv 基础镜像
Dockerfile 文件内容如下:
FROM centos:8
# 安装jdk 和 unzip
RUN yum install -y java-1.8.0-openjdk-headless.x86_64 unzip
# 下载rocketmq的包
ADD https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.5.2/rocketmq-all-4.5.2-bin-release.zip /opt/rocketmq/
# 声明工作路径
WORKDIR /opt/rocketmq/
# 解压
RUN unzip rocketmq-all-4.5.2-bin-release.zip
# 声明相关的端口
EXPOSE 9876
# 定义地址和端口号
ENV NAMESRV_ADDR=localhost:9876
# 运行namesrv
CMD rocketmq-all-4.5.2-bin-release/bin/mqnamesrv -n ${NAMESRV_ADDR}
然后 cmd 进入到 dockerfile 所在的目录,执行 docker build -t rocketmq-namesrv:0.1 .
注意最后有个点,如下图所示,等其运行完
运行完的截图如下:
然后用
docker run -d -e NAMESRV_ADDR=192.168.1.128:9876 -p 9876:9876 --name docker-rocketmq-namesrv rocketmq-namesrv:0.1
启动容器
这里要注意, 192.168.1.128 是我电脑的局域网 ip.
制作 mq-broke 基础镜像
broke 从官网下载的包里面对 jvm 设置参数过高,需要下载后调整下,将官方包下载下来之后,
官网下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.5.2/rocketmq-all-4.5.2-bin-release.zip
和 dockerfile 放在同一目录,如下图所示:
修改 bin/runbroker.sh 第 67 行
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
修改为. 此修改仅供学习和测试使用!! 切不可用于生产环境
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
同时还要修改 conf/broker.conf 文件,如下图所示,添加一行,brokerIP1 为自己局域网 ip
Dockfile 内容如下:
FROM centos:8
# 安装jdk 和 unzip
RUN yum install -y java-1.8.0-openjdk-headless.x86_64 unzip
# 下载rocketmq的包
ADD rocketmq-all-4.5.2-bin-release /opt/rocketmq/rocketmq-all-4.5.2-bin-release/
# 声明工作路径
WORKDIR /opt/rocketmq/
# 声明相关的端口
EXPOSE 10909 10911 10912
# 定义环境变量
ENV NAMESRV_ADDR=localhost:9876
# 运行broker
CMD bin/mqbroker -n ${NAMESRV_ADDR} -c conf/broker.conf autoCreateTopicEnable=true
使用 docker build -t rocketmq-broke:0.1 .
去构建镜像
如下图所示:
启动容器,注意这里的 -e 要传上面的namesrv的地址
docker run -d -e NAMESRV_ADDR=192.168.1.128:9876 -p 10909:10909 -p 10911:10911 -p 10912:10912 --name docker-rocketmq-broke rocketmq-broke:0.1
然后用 docker ps
可看到如下
至此,Docker 安装 rocketmq 就 OVER 了.
DEMO 总评
rocketmq 没有提供官网的 docker 镜像,因此在 docker 中使用 mq 需要自己自定义去制作,而且受限于 docker 的内存,建议生产环境还是直接装 rocketmq, 如真要在 docker 中使用,broker 还需要挂载持久化目录.加油吧,少年!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于