amaliujia / incubator-tubemq

Apache TubeMQ

Home Page:https://tubemq.apache.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Apache TubeMQ

Build Status CodeCov Maven Central GitHub release License

Apache TubeMQ(incubating) is a trillion-records-scale distributed messaging queue (MQ) system, focuses on data transmission and storage under massive data. Compared to many open source MQ projects, TubeMQ has unique advantages in terms of stability, performance, and low cost.

It offers a variety of features:

  • Pluggable transport protocols, such as TCP, SSL
  • Support big-data and streaming ecosystem integration
  • Message retroactivity by time or offset
  • Efficient pull and push consumption model
  • Flexible distributed scale-out deployment architecture
  • Feature-rich administrative dashboard for configuration
  • Authentication and authorization

Contact us

Contributing

We always welcome new contributions, whether for trivial cleanups, new features or other material rewards, more details see here.

Build TubeMQ

Prerequisites

  • Java 1.8
  • Maven 3.3+

Build Distribution Tarball

  • Compile and Package:
mvn clean package -DskipTests
  • (Optional) Build Using Docker:
docker run -v REPLACE_WITH_SOURCE_PATH:/tubemq  apachetubemq/tubemq-build clean package -DskipTests
  • Run Unit Tests:
mvn test
  • Build Individual Module:
mvn clean install
cd module-name (e.g. tubemq-client)
mvn test

After the build, please go to tubemq-server/target. You can find the tubemq-server-[TUBEMQ-VERSION]-bin.tar.gz file. It is the TubeMQ deployment package, which includes scripts, configuration files, dependency jars and web GUI code.

Setting Up Your IDE

If you want to build and debug source code in IDE, go to the project root, and run

mvn compile

This command will generate the Java source files from the protoc files, the generated files located in target/generated-sources.

(Optional) If you want to use local protoc executable, you can change the configuration of protobuf-maven-plugin in tubemq-core/pom.xml as below

<configuration>
    <outputDirectory>${project.build.directory}/generated-sources/java</outputDirectory>
    <protocExecutable>/usr/local/bin/protoc</protocExecutable>
</configuration>

Deploy and Start

Deploy TubeMQ Standalone

Standalone mode starts zookeeper/master/broker services in one docker container:

docker run -p 8080:8080 -p 8000:8000 -p 8123:8123 --name tubemq -d apachetubemq/tubemq-all:latest

After container is running, you can access http://127.0.0.1:8080, and reference to next Quick Start chapter for experience.

Tips: Standalone Mode is only available for development and experience, it's not designed for production environment.

Deploy TubeMQ Cluster

For the detail deployment and configuration of TubeMQ cluster nodes, please refer to the introduction of Deploy TubeMQ Cluster.

License

© Contributors Licensed under an Apache-2.0 license.

About

Apache TubeMQ

https://tubemq.apache.org/

License:Apache License 2.0


Languages

Language:Java 62.0%Language:JavaScript 24.8%Language:C++ 7.8%Language:TypeScript 2.1%Language:CSS 1.5%Language:Shell 0.6%Language:Scala 0.5%Language:Python 0.2%Language:CMake 0.2%Language:Batchfile 0.1%Language:Dockerfile 0.1%Language:Smarty 0.1%Language:HTML 0.0%Language:Less 0.0%