玩转TubeMQ_v0.0.1_持续更新。。。

文章目录

      • 原创内容,转载请注明出处^_^
      • 准备工作
        • 简介
        • 下载
        • 源码结构
      • 试用
        • 牛刀小试
          • 编译
          • Protocol Buffer
            • 编译
            • 安装protoc
        • 启动
          • Server

文件名称 版本号 联系人 qq 备注
玩转TubeMQ v0.0.1 飞豺 8416837 开源消息队列

原创内容,转载请注明出处_

准备工作

简介

TubeMQ是一款开源的分布式消息中间件,采用Protocol Buffer构建消息对象模型。于2019年9月12日开源,即中秋前一天。

下载

安装git等工具

  • 简单粗暴git直接拉取
git clone https://github.com/Tencent/TubeMQ

源码结构

  • 整体结构
    玩转TubeMQ_v0.0.1_持续更新。。。_第1张图片
  • 结构释义
    玩转TubeMQ_v0.0.1_持续更新。。。_第2张图片
    可见暂时支持Linux启动、打包可配置化 、丰富的Demo。

试用

牛刀小试

编译

点击生产者Demo运行,报错:

Error:(26, 54) java: 程序包com.tencent.tubemq.corebase.protobuf.generated不存在

发现这个包应该是核心包里的,于是全局搜索这个类,很遗憾没有。全局搜索,在RPC.proto里找到了下面这段:

option java_package = "com.tencent.tubemq.corebase.protobuf.generated";
option java_outer_classname = "RPCProtos";
option java_generate_equals_and_hash = true;
option optimize_for = SPEED;

嗯,是gRPC的语法。
查到中央仓库暂无tubemq(2019中秋),于是自己编译它.
开始编译,无意外,日常报错:

[ERROR] Failed to execute goal com.github.igor-petruk.protobuf:protobuf-maven-plugin:0.6.3:run (default) on project tubemq-core: Cannot execute 'protoc': Cannot run program "protoc": CreateProcess error=2, 系统找不到指定的文件。 -> [Help 1]

于是找到这个插件:

			<plugin>
                <groupId>com.github.igor-petruk.protobufgroupId>
                <artifactId>protobuf-maven-pluginartifactId>
                <version>0.6.3version>
                <executions>
                    <execution>
                        <phase>generate-sourcesphase>
                        <goals>
                            <goal>rungoal>
                        goals>
                    execution>
                executions>
            plugin>

插件执行时,找不到protoc程序,当然,我没有装这个。于是安装protoc Windows版。

Protocol Buffer
  • Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API.
  • 可见TubeMQ也采用了这种格式.
  • 考虑到Windows安装protobuf的复杂性,所以到Linux环境编译TubeMQ试试.
  • 先确认Maven存在与否,输入mvn -version,如果不存在请安装Maven
    玩转TubeMQ_v0.0.1_持续更新。。。_第3张图片
  • 接着按上文地址下载TubeMQ源码
    玩转TubeMQ_v0.0.1_持续更新。。。_第4张图片
编译
mvn clean compile

同样的错误,没有安装protoc,意料之中_
玩转TubeMQ_v0.0.1_持续更新。。。_第5张图片
但是Linux装工具简单多了,相比Windows.

安装protoc

下载地址
2.5.0 http://pan.baidu.com/s/1pJlZubT - 下载2.5.0,因为TubeMQ暂时用的是2.5.0的jar包。
2.6.1 https://pan.baidu.com/share/init?surl=qYAVIuo 密码:paju
在这里插入图片描述
下载完毕,执行编译等.

sh configure --prefix=/usr/local/protobuf-2.6.1
make && make check && make install

执行命令,——漫长的等待后。
常规的,检查有无安装成功↓
在这里插入图片描述
配置环境变量
在这里插入图片描述
玩转TubeMQ_v0.0.1_持续更新。。。_第6张图片
安装完毕.

  • 再次编译mvn clean compile,报错了,但是方向是对的了,因为这次报错说安装的protoc版本不匹配:
    *
    查看下项目中的protobuf-java包的版本号是2.5.0,在中央仓库看了下,这个版本竟然是2013年的↓
    在这里插入图片描述
    可能需要安装2.5.0版本的环境.这时刘欢的歌声响起:“看成败人生豪迈,只不过是从头再来”。_那就重新来,下载2.5.0的tar包,执行命令,编译,“漫长的等待”(。-ω-)zzz↓
    玩转TubeMQ_v0.0.1_持续更新。。。_第7张图片
    如果找不到je包,增加版本号↓
		<dependency>
            <groupId>com.sleepycatgroupId>
            <artifactId>jeartifactId>
            <version>5.0.73version> 
        dependency>

Bingo!编译成功。
玩转TubeMQ_v0.0.1_持续更新。。。_第8张图片

mvn clean package # 打包

启动

Server
  • 打包项目后的效果↓
    玩转TubeMQ_v0.0.1_持续更新。。。_第9张图片
    玩转TubeMQ_v0.0.1_持续更新。。。_第10张图片
  • install
mvn clean install

玩转TubeMQ_v0.0.1_持续更新。。。_第11张图片
玩转TubeMQ_v0.0.1_持续更新。。。_第12张图片

  • 运行↓
cd ../tubemq-server/target/tubemq-server-3.8.0-bin/tubemq-server-3.8.0/conf # 进入这根目录,修改配置文件
cd ../tubemq-server
sh bin/master.sh start # 启动
sh bin/broker.sh start # 启动

启动未见错误日志,待续

你可能感兴趣的:(新知)