Création et exécution du code source TubeMQ

Prenez l'habitude d'écrire ensemble ! C'est le 7ème jour de ma participation au "Nuggets Daily New Plan · April Update Challenge", cliquez pour voir les détails de l'événement .

Prêt à travailler

introduction

TubeMQ est un middleware de messagerie distribué open source qui utilise Protocol Buffer pour créer un modèle d'objet de message. Open-sourced le 12 septembre 2019, la veille de la Fête de la Mi-Automne.

Télécharger

gitoutils d'installation

  • Git pull simple et brut directement
git clone https://github.com/Tencent/TubeM
复制代码

structure du code source

  • tout le cadre

image.png

  • Interprétation structurelle

image.png

On peut voir qu'il prend temporairement en charge le démarrage, l'empaquetage, la démo configurable et riche de Linux.

expérimenter

Un petit essai

compiler

Cliquez sur la démo du producteur pour l'exécuter, et une erreur est signalée :

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

Il a été constaté que ce package devrait être dans le package de base, j'ai donc recherché cette classe dans le monde, mais malheureusement pas. Recherche globale RPC.proto, trouvé le paragraphe suivant dans :

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;
复制代码

Eh bien, oui gRPCla syntaxe. J'ai constaté qu'il n'y avait pas d'entrepôt central tubemq(Festival de la mi-automne 2019), alors je l'ai compilé moi-même.Commencez à compiler, pas d'accident, erreur quotidienne :

[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]
复制代码

J'ai donc trouvé ce plugin :

<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>
复制代码

Lorsque le plugin est exécuté, le protocprogramme , bien sûr, je ne l'ai pas installé. Installez donc protocla version Windows.

Tampon de protocole

  • Protocol Buffers est un format de stockage de données structurées léger et efficace qui peut être utilisé pour la sérialisation ou la sérialisation de données structurées. Il est très approprié pour le stockage de données ou le format d'échange de données RPC. Format de données structurées sérialisées indépendant du langage, indépendant de la plate-forme et extensible qui peut être utilisé dans les protocoles de communication, le stockage de données et d'autres domaines. Actuellement, des API en C++, Java et Python sont fournies.
  • On peut voir que TubeMQ adopte également ce format.
  • Compte tenu de la complexité de l'installation de protobuf sous Windows, essayez de compiler TubeMQ dans un environnement Linux.
  • Confirmez d'abord si Maven existe ou non, entrez mvn -version, sinon, installez Maven

image.png

  • Téléchargez ensuite le code source de TubeMQ à l'adresse ci-dessus

image.png

compiler

mvn clean compile
复制代码

La même erreur, le protocole n'est pas installé, comme prévu ^_^

image.pngMais les outils d'installation Linux sont beaucoup plus simples que Windows.

protocole d'installation

Adresse de téléchargement 2.5.0 pan.baidu.com/s/1pJlZubT

Téléchargez la version 2.5.0, car TubeMQ utilise temporairement le package jar 2.5.0. 2.6.1 pan.baidu.com/share/init?…mot de passe : paju

image.pngAprès le téléchargement, exécutez la compilation, etc.

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

Exécutez la commande, après une longue attente. Vérifiez régulièrement si l'installation a réussi

image.png

Configurer les variables d'environnement

image.png

image.png

Installée.

  • Compilez à nouveau mvn clean compile et une erreur est signalée, mais la direction est correcte, car cette fois l'erreur indique que la version de protocole installée ne correspond pas :

image.png

  • Vérifiez que le numéro de version du package protobuf-java dans le projet est 2.5.0. Après avoir regardé l'entrepôt central, cette version s'est avérée être de 2013↓

image.png

Il peut être nécessaire d'installer la version 2.5.0 de l'environnement. À ce moment-là, le chant de Liu Huan a retenti: "En regardant le succès ou l'échec, la vie est héroïque, mais elle ne fait que commencer à zéro." ^_^ Puis recommencez, téléchargez le package tar 2.5.0, exécutez la commande, compilez, "long wait" (.-ω-)zzz↓

image.png

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

Bingo ! Compilation réussie.

image.png

mvn clean package
复制代码

Commencez

Serveur

  • projet de package, effet

image.png

image.png

  • installer
mvn clean install
复制代码

image.png

image.png

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

Démarrage sans journal d'erreurs, à suivre

Guess you like

Origin juejin.im/post/7083805246794760228