如果不是因为政治原因,就rocketmq的社区活跃度、版本、特性和文档完善度,我是无论如何也不会使用rocketmq的。

rocketmq严格意义上并不支持高可靠性,因为其持久化只支持异步,有另外一个线程flush,不支持配置同步刷新到磁盘。只能说多个节点宕机的概率很低很低,外加现在的服务器一般都是UPS。

rocketmq官方提供了一份与activemq,kafka的特性对比(但没有包括与rabbitmq的比较,可参考http://www.cnblogs.com/zhjh256/p/6985889.html)。引用如下:

Messaging Product Client SDK Protocol and Specification Order Message Message Filter Server Triggered Redelivery Persistent Message Retroactive Consumers Message Priority High Availability and Failover Message Track Configuration Management and Operation Tools
ActiveMQ Java, .NET, C++ etc. Push model, support OpenWire, STOMP, AMQP, MQTT, JMS Exclusive Consumer or Exclusive Queues can ensure ordering Supported Not Supported Supports very fast persistence using JDBC along with a high performance journal,such as levelDB, kahaDB Supported Supported Supported, depending on storage,if using kahadb it requires a ZooKeeper server Not Supported The default configuration is low level, user need to optimize the configuration parameters Supported
Kafka Java, Scala etc. Pull model, support TCP Ensure ordering of messages within a partition Supported, you can use Kafka Streams to filter messages Not Supported High performance file storage Supported offset indicate Not Supported Supported, requires a ZooKeeper server Not Supported Kafka uses key-value pairs format for configuration. These values can be supplied either from a file or programmatically. Supported, use terminal command to expose core metrics
RocketMQ Java, .NET, C++ Pull model, support TCP, JMS Ensure strict ordering of messages, have no hot spot problem,and can scale out gracefully Supported, you can even upload yourself custom-built filter code snippets Supported High performance and low latency file storage Supported timestamp and offset 2 indicates Not Supported Supported, Master-Slave model, without another kit Supported Work out of box,user only need to pay attention to a few configurations Supported, rich web and terminal command to expose core metrics

rocketmq的整体架构如下:

集群本身没有什么特殊之处,唯一的差别就是阿里啥都喜欢搞分布式,加了注册中心的概念(说白了就是抄袭zookeeper理念)。所以,要使用rocketmq,至少需要启动两个进程,nameserver、broker,前者是各种topic注册中心,后者是真正的broker。

从apache rocketmq官方http://rocketmq.apache.org/release_notes/release-notes-4.0.0-incubating/现在最新版本二进制,当前是4.0.0孵化版。

下载解压后得到apache-rocketmq-all。

在启动前,如果测试服务器配置较低,则应该修改启动命令runserver.sh(mqnamesrv里面调用)和runbroker.sh(mqbroker里面调用),将Xmx和Xms、Xmn值注释或者降低,否则可能会在启动时报内存分配失败。

首先启动nameserver。

nohup sh bin/mqnamesrv &
The Name Server boot success...
默认情况下,nameserver监听的是9876端口。

其次启动broker。

nohup sh bin/mqbroker -n localhost:9876 &
The broker[%s, 172.30.30.233:10911] boot success...
默认情况下,监听的是10911端口。

安装rocket web console。

默认情况下,rocketmq没有提供二进制监控控制台,需要自己build,可从github下载maven源码builder。为方便,笔者打包了一份,https://pan.baidu.com/s/1jIp6Age。放到tomcat下启动后,如下:

下载后,只要更改WEB-INF\classes\config.properties中的rocketmq.namesrv.addr为nameserver地址即可。

停止的时候,顺序相反,要先停止broker,其次停止nameserver。

sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK
sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK 同其他应用服务器应用一样,rocketmq也提供了一些命令行工具用于不需要通过编程API可以管理mq服务器本身,主命令是mqadmin,支持的子命令包括:
The most commonly used mqadmin commands are:
updateTopic Update or create topic
deleteTopic Delete topic from broker and NameServer.
updateSubGroup Update or create subscription group
deleteSubGroup Delete subscription group from broker.
updateBrokerConfig Update broker's config
updateTopicPerm Update topic perm
topicRoute Examine topic route info
topicStatus Examine topic Status info
topicClusterList get cluster info for topic
brokerStatus Fetch broker runtime status data
queryMsgById Query Message by Id
queryMsgByKey Query Message by Key
queryMsgByUniqueKey Query Message by Unique key
queryMsgByOffset Query Message by offset
queryMsgByUniqueKey Query Message by Unique key
printMsg Print Message Detail
sendMsgStatus send msg to broker.
brokerConsumeStats Fetch broker consume stats data
producerConnection Query producer's socket connection and client version
consumerConnection Query consumer's socket connection, client version and subscription
consumerProgress Query consumers's progress, speed
consumerStatus Query consumer's internal data structure
cloneGroupOffset clone offset from other group.
clusterList List all of clusters
topicList Fetch all topic list from name server
updateKvConfig Create or update KV config.
deleteKvConfig Delete KV config.
wipeWritePerm Wipe write perm of broker in all name server
resetOffsetByTime Reset consumer offset by timestamp(without client restart).
updateOrderConf Create or update or delete order conf
cleanExpiredCQ Clean expired ConsumeQueue on broker.
cleanUnusedTopic Clean unused topic on broker.
startMonitoring Start Monitoring
statsAll Topic and Consumer tps stats
syncDocs Synchronize wiki and issue to github.com
allocateMQ Allocate MQ
checkMsgSendRT check message send response time
clusterRT List All clusters Message Send RT See 'mqadmin help <command>' for more information on a specific command.

 更多文档可参考:http://rocketmq.apache.org/docs/quick-start/

rocketmq集群安装可参考https://my.oschina.net/tantexian/blog/698109。
生产者、消费者最佳实践参考http://blog.csdn.net/zhu_tianwei/article/details/40948447。
各种简单、有序、批量、广播、过滤、轮训拉取实例可参考http://rocketmq.apache.org/docs/simple-example/。

rocketmq安装与基本操作的更多相关文章

  1. RocketMQ安装与部署说明

    一.安装说明1.下载安装包,下载地址:https://github.com/alibaba/RocketMQ/releases/download/v3.1.7/alibaba-rocketmq-3.1 ...

  2. Linux系统下MongoDB的简单安装与基本操作

    这篇文章主要介绍了Linux系统下MongoDB的简单安装与基本操作,需要的朋友可以参考下   Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式,备 ...

  3. elk系列1之入门安装与基本操作【转】

    preface 我们每天都要查看服务器的日志,一方面是为了开发的同事翻找日志,另一方面是巡检服务器查看日志,而随着服务器数量以及越来越多的业务上线,日志越来越多,人肉运维相当痛苦了,此时,参考现在非常 ...

  4. RocketMQ 安装

    RocketMQ 安装 1.进入目录 cd /usr 2.下载 wget http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.3.0/rocke ...

  5. RocketMQ 安装详细说明

    原文:RocketMQ 安装详细说明 目录 本文导读 环境说明 RocketMQ 下载 从 Apache 下载 从 GitHub 下载 RocketMQ 安装 文件上传 项目解压 编译部署 Rocke ...

  6. (转)阿里 RocketMQ 安装与简介

    原文:阿里 RocketMQ 安装与简介 一.简介 官方简介: l  RocketMQ是一款分布式.队列模型的消息中间件,具有以下特点: l  能够保证严格的消息顺序 l  提供丰富的消息拉取模式 l ...

  7. RocketMQ安装及入门

    本文是作者原创,版权归作者所有.若要转载,请注明出处. 本文RocketMQ版本为rocketmq-all-4.7.0,系统为win10.请各位去官网下载,也可以留言,我发安装包 RocketMQ安装 ...

  8. rocketMq安装及集群配置

    网上关于rocketMq安装.集群配置的文章有很多,作为一个初学者,跟着网上的各种教程安装遇到了各种坑,可谓是一路坎坷.本文记录下rocketMq安装的完整过程.希望对你有一点帮助 安装rocketM ...

  9. 阿里 RocketMQ 安装与简介

    一.简介 官方简介: l  RocketMQ是一款分布式.队列模型的消息中间件,具有以下特点: l  能够保证严格的消息顺序 l  提供丰富的消息拉取模式 l  高效的订阅者水平扩展能力 l  实时的 ...

随机推荐

  1. python-selenium无法调用浏览器的问题

    一直有这个问题 问题:selenim不能调用浏览器 File "/Users/ligaijiang/PycharmProjects/Runoob/venv/lib/python3.7/sit ...

  2. 《全栈性能Jmeter》-1性能方向职业发展

  3. node操作 windows的appdata本地缓存文件

    const os = require('os'); const path = require("path"); const fs = require("fs") ...

  4. js 图片区域可点击,适配移动端,图片大小随意改变

    实现图片区域可点击,实际上使用map是可以的,但是适配效果并不好,图片只能是固定大小的值,而且点都被写死了. 在这里,我使用的js基于canvas写的一个小工具.可以圈出你需要点击的部分,然后生成一串 ...

  5. AI案列 三条路

    在生成点生成带有颜色的小球,小球走对应颜色的路 先做好三个小球,做成预制体 对应颜色的小球,除了自身颜色,其他颜色不要选 新建脚本: using System.Collections; using S ...

  6. [6]Windows内核情景分析 --APC

    APC:异步过程调用.这是一种常见的技术.前面进程启动的初始过程就是:主线程在内核构造好运行环境后,从KiThreadStartup开始运行,然后调用PspUserThreadStartup,在该线程 ...

  7. Pycharm学习python路

    import 模块之后是灰色的表明没有被引用过 lxml找不到的话用anaconda prompt :pip uninstall lxml 重新安装 用request时,写的reg无法正确解析网页,先 ...

  8. javascript_函数式_链式编程

  9. samba共享目录无法访问的一般解决方案,非用户登录和读写权限问题

    配smb,被第四点坑了很久,特此转载. 由于这5点都是比较普通的情况,不涉及用户登录和读写权限问题 1)关闭防火墙: #sevice iptables stop 2)修改 /etc/samba/smb ...

  10. laravel中使用的PDF扩展包——laravel-dompdf和laravel-snappy

    这两天项目中需要将HTML页面转换为PDF文件方便打印,我在网上搜了很多资料.先后尝试了laravel-dompdf和laravel-snappy两种扩展包,个人感觉laravel-snappy比较好 ...