TubeMQソースコードのビルドと実行

一緒に書く習慣を身につけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して7日目です。クリックしてイベントの詳細をご覧ください

準備オーケー

序章

TubeMQは、プロトコルバッファを使用してメッセージオブジェクトモデルを構築するオープンソースの分散メッセージミドルウェアです。中秋節の前日の2019年9月12日にオープンソース。

ダウンロード

gitインストールツール

  • シンプルで粗雑なgitプルを直接
git clone https://github.com/Tencent/TubeM
复制代码

ソースコードの構造

  • フレーム全体

image.png

  • 構造的解釈

image.png

Linuxの起動、パッケージ化、構成可能、および豊富なデモを一時的にサポートしていることがわかります。

試してみる

小さなテスト

コンパイル

プロデューサーのデモをクリックして実行すると、エラーが報告されます。

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-mavenplugin:0.6.3:run (default) on project tubemq-core: Cannot execute 'protoc': Cannot run program "protoc": CreateProcess error=2, 系统找不到指定的文件。 -> [Help 1]
复制代码

だから私はこのプラグインを見つけました:

<p1ugin>
    <groupId> com.github.igor-petruk.protobuf</groupId>
    <artifactId>protobuf-maven-plugin</artifactId>
    <version>0.6.3</version>
    <executions>
        <execution>
            <phase>generate-sources </phase>
            <goals>
                <goa1>run</goa1>
            </goals>
        </execution>
    </executions>
</plugin>
复制代码

プラグインを実行してもprotocプログラム。もちろん、これはインストールしていません。したがってprotoc、Windowsバージョンをインストールします。

Protocol Bu ff er

  • Protocol Buffersは、構造化データのシリアル化またはシリアル化に使用できる軽量で効率的な構造化データストレージ形式です。データストレージまたはRPCデータ交換フォーマットに非常に適しています。通信プロトコル、データストレージ、およびその他のフィールドで使用できる、言語に依存せず、プラットフォームに依存せず、拡張可能なシリアル化された構造化データ形式。現在、C ++、Java、およびPythonのAPIが提供されています。
  • TubeMQもこの形式を採用していることがわかります。
  • Windowsにprotobufをインストールすることの複雑さを考慮して、Linux環境でTubeMQをコンパイルしてみてください。
  • まず、Mavenが存在するかどうかを確認し、mvn -versionと入力します。存在しない場合は、Mavenをインストールします。

image.png

  • 次に、上記のアドレスでTubeMQソースコードをダウンロードします

image.png

コンパイル

mvn clean compile
复制代码

同じエラー、protocは期待どおりにインストールされていません^ _ ^

image.pngしかし、Linuxのインストールツールは、Windowsに比べてはるかに単純です。

protocをインストールします

ダウンロードアドレス2.5.0pan.baidu.com/s/1pJlZubT

TubeMQは一時的に2.5.0jarパッケージを使用するため、2.5.0をダウンロードします。2.6.1 pan.baidu.com/share/init?…password:paju _

image.pngダウンロード後、コンパイル等を行ってください。

sh configure --prefix=/usr/local/protobuf-2.6.1 
make && make check && make install
复制代码

しばらく待ってからコマンドを実行してください。定期的に、インストールが成功したかどうかを確認してください

image.png

環境変数を構成する

image.png

image.png

インストールされています。

  • mvn clean compileを再度コンパイルすると、エラーが報告されますが、方向は正しいです。今回のエラーは、インストールされているprotocバージョンが一致しないことを示しているためです。

image.png

  • プロジェクト内のprotobuf-javaパッケージのバージョン番号が2.5.0であることを確認してください。中央ウェアハウスを確認したところ、このバージョンは2013年のものであることがわかりました↓

image.png

2.5.0バージョンの環境をインストールする必要があるかもしれません。このとき、劉歓の歌は「成功か失敗かを見ると、人生は英雄的ですが、それはゼロから始まったばかりです」と聞こえました。^ _ ^次に、もう一度起動し、2.5.0 tarパッケージをダウンロードし、コマンドを実行して、コンパイルし、「長い間待ちます」(.-ω-)zzz↓

image.png

<dependency>
    <groupId>com.sleepycat</groupId>
    <artifactId>je</artifactId>
    <version>5.0.73</version> <!--tubemq-server.pom.xml - 增加版本号-->
</dependency>
复制代码

ビンゴ!コンパイルに成功しました。

image.png

mvn clean package
复制代码

起動

サーバ

  • パッケージプロジェクト、効果

image.png

image.png

  • インストール
mvn clean install
复制代码

image.png

image.png

  • 走る
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 # 启动
复制代码

起動エラーログなし、続行する

おすすめ

転載: juejin.im/post/7083805246794760228