Git Product home page Git Product logo

incubator-tubemq's Introduction

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.

incubator-tubemq's People

Contributors

gosonzhang avatar technoboy- avatar dockerzhang avatar aloyszhang avatar charlely avatar guangxucheng avatar viviel avatar tisonkun avatar duli559 avatar yuanboliu avatar hystericalhell avatar cku328 avatar junpingdu avatar lamberliu avatar leno1001 avatar chenjunjiedada avatar kaynewu avatar chaohuang avatar fireapp avatar lizhiboo avatar yu280265067 avatar zhenjunma avatar pingyu avatar yiheng avatar zehuaiwang avatar carylu avatar dependabot[bot] avatar shannonding avatar imarch1 avatar slievrly avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.