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
git
outils d'installation
- Git pull simple et brut directement
git clone https://github.com/Tencent/TubeM
复制代码
structure du code source
- tout le cadre
- Interprétation structurelle
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 gRPC
la 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 protoc
programme , bien sûr, je ne l'ai pas installé. Installez donc protoc
la 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
- Téléchargez ensuite le code source de TubeMQ à l'adresse ci-dessus
compiler
mvn clean compile
复制代码
La même erreur, le protocole n'est pas installé, comme prévu ^_^
Mais 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
Aprè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
Configurer les variables d'environnement
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 :
- 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↓
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↓
<dependency>
<groupId>com.sleepycat</groupId>
<artifactId>je</artifactId>
<version>5.0.73</version> <!--tubemq-server.pom.xml - 增加版本号-->
</dependency>
复制代码
Bingo ! Compilation réussie.
mvn clean package
复制代码
Commencez
Serveur
- projet de package, effet
- installer
mvn clean install
复制代码
- 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