初学RocketMQ,认识一门新技术,还是哪三问:是什么?能干什么?怎么用?
消息中间件主要是实现分布式系统中解耦、异步消息、流量销锋、日志处理等场景。
Rocketmq是阿里捐赠给Apache的。3.x以下版本为阿里版本。4.x为Apache托管版本。由于目前Apache没有提供直编译的下载文件,所以一般需要maven编译。
一、是什么?
大多数网友都给出答案,不赘述了(关注基础概念、功能特点 http://jameswxx.iteye.com/blog/2091966)
Rocketmq是阿里巴巴开源的一款分布式的消息中间件,源于jms规范但是不遵守jms规范。
二、能干什么?
分布式消息中间件,阿里大佬开发,多次经历双十一考验;
- 能够保证严格的消息顺序(需要集群的支持)
- 提供丰富的消息拉取模式(可以任意定义你的拉取方式)
- 高效的订阅者水平扩展能力(通过一个consumerGroup的方式做到consumer的方便扩容)
- 实时的消息订阅机制(消息的实时推送)
- 亿级消息堆积能力(轻松完成系统销锋)
三、怎么用?
Linux环境搭建开始。。。。
环境要求:
JDK1.6(建议1.8)+MAVEN3.2.x+RocketMQ4.2.0
Source: rocketmq-all-4.2.0-source-release.zip
2.上传至Linux
# unzip rocketmq-all-4.2.0-source-release.zip # cd rocketmq-all-4.2.0 # mvn -Prelease-all -DskipTests clean install -U ……显示编译success,恭喜你,一次通过 编译完成后发现在/ulic/rocketmq-all-4.2.0/distribution/target目录下apache-rocketmq文件,所有启动的项目命令都在这个项目里面里。 |
小哥哥,我在这被干了,搁置了好久,又一次深深的挫败感,还好我自我调节还行,路总是要往下走了,坚持不能放弃,各种找资料,逛博客,看文档,查度娘……
终于……
到现在还是没有解决,把错列出来,警醒一下世人包括我寄几。。。
报错一: 说是pom.xml里的 parent.relativePath不对,不写默认为../pom.xml(有的说是改成../../pom.xml),经测试无效
说是要把项目中pom.xml并且把其中的
<parent>
<groupId>com.taobao</groupId>
<artifactId>parent</artifactId>
<version>1.0.2</version>
</parent>
给注释掉,不然弄死不能编译的,我信了,直接注释掉…………
满怀期待,继续mvn编译。。
错误二、报错如下:
ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project org.apache.rocketmq:rocketmq-remoting:4.2.0 (/ulic/rocketmq-all-4.2.0/remoting/pom.xml) has 1 error
[ERROR] Unresolveable build extension: Plugin kr.motd.maven:os-maven-plugin:1.4.0.Final or one of its dependencies could not be resolved: Failed to read artifact descriptor for kr.motd.maven:os-maven-plugin:jar:1.4.0.Final: Could not transfer artifact kr.motd.maven:os-maven-plugin:pom:1.4.0.Final from/to jboss-public-repository-group (http://repository.jboss.org/nexus/content/groups/public): Connect to repository.jboss.org:80 [repository.jboss.org/209.132.182.97] failed: Connection timed out -> [Help 2]
这个标红插件又有问题,猜测是公司内网不能访问仓库,因此下不了jar..还没找到更好的解决办法。
在maven里setting.xml配置<mirror>,阿里云的、公司自己的,好像都找不到