All Projects → kubemq-io → Kubemq

kubemq-io / Kubemq

Licence: mit
KubeMQ is Enterprise-grade message broker native for Docker and Kubernetes

Programming Languages

golang
3204 projects

Projects that are alternatives of or similar to Kubemq

Liftbridge
Lightweight, fault-tolerant message streams.
Stars: ✭ 2,175 (+3650%)
Mutual labels:  grpc, pubsub, message-queue
Message Bus
Go simple async message bus
Stars: ✭ 166 (+186.21%)
Mutual labels:  queue, pubsub, message-queue
Siberite
Siberite is a simple, lightweight, leveldb backed message queue written in Go.
Stars: ✭ 583 (+905.17%)
Mutual labels:  queue, message-queue
Rpcx
Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱!
Stars: ✭ 6,516 (+11134.48%)
Mutual labels:  grpc, rpc
Hemera
🔬 Writing reliable & fault-tolerant microservices in Node.js https://hemerajs.github.io/hemera/
Stars: ✭ 773 (+1232.76%)
Mutual labels:  rpc, pubsub
Alibaba Rsocket Broker
Alibaba RSocket Broker: Mesh, Streaming & IoT
Stars: ✭ 485 (+736.21%)
Mutual labels:  grpc, rpc
Taskq
Golang asynchronous task/job queue with Redis, SQS, IronMQ, and in-memory backends
Stars: ✭ 555 (+856.9%)
Mutual labels:  queue, message-queue
Servicetalk
A networking framework that evolves with your application
Stars: ✭ 656 (+1031.03%)
Mutual labels:  grpc, rpc
Airframe
Essential Building Blocks for Scala
Stars: ✭ 442 (+662.07%)
Mutual labels:  grpc, rpc
Lnd Grpc Client
A python grpc client/async client for LND ⚡⚡⚡
Stars: ✭ 26 (-55.17%)
Mutual labels:  grpc, rpc
Libra Sdk Go
Go SDK for the Libra cryptocurrency
Stars: ✭ 23 (-60.34%)
Mutual labels:  grpc, rpc
Grpc
An Elixir implementation of gRPC
Stars: ✭ 858 (+1379.31%)
Mutual labels:  grpc, rpc
Nsq
A realtime distributed messaging platform (forked from https://github.com/nsqio/nsq)
Stars: ✭ 476 (+720.69%)
Mutual labels:  queue, message-queue
Nats Operator
NATS Operator
Stars: ✭ 471 (+712.07%)
Mutual labels:  pubsub, message-queue
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Set up once and forever.
Stars: ✭ 5,649 (+9639.66%)
Mutual labels:  grpc, pubsub
Rpc Benchmark
java rpc benchmark, 灵感源自 https://www.techempower.com/benchmarks/
Stars: ✭ 463 (+698.28%)
Mutual labels:  grpc, rpc
Brpc Java
Java implementation for Baidu RPC, multi-protocol & high performance RPC.
Stars: ✭ 647 (+1015.52%)
Mutual labels:  grpc, rpc
Storage Based Queue
Javascript queue library with persistent storage based queue mechanism for the browsers environments. Specially designed for offline.
Stars: ✭ 33 (-43.1%)
Mutual labels:  queue, message-queue
Udash Core
Scala framework for building beautiful and maintainable web applications.
Stars: ✭ 405 (+598.28%)
Mutual labels:  rest-api, rpc
Javaspringbootsamples
SpringBoot、Dubbo、SpringCloud的各种集成例子:Atomikos、gRPC、Thrift、Seata、ShardingSphere、Dubbo、Hmily、Nacos、Consul、Ribbon、Jedis、Lettuce、Redisson等框架
Stars: ✭ 399 (+587.93%)
Mutual labels:  grpc, rpc

Introduction

What is KubeMQ?

Enterprise-grade message broker native for Docker and Kubernetes. Delivered in a production-ready cluster, and designed for any type of workload. KubeMQ is provided as a small, lightweight Docker container, designed for any workload and architecture running in Kubernetes or any other container orchestration system which support Docker.

Main Features

  • All-batteries included Messaging Broker for Kubernetes environment
  • Blazing fast (written in Go), small and lightweight Docker container
  • Asynchronous and Synchronous messaging with support for Exactly One Delivery, At Most Once Delivery and At Least Once Delivery models
  • Supports durable FIFO based Queue, Publish-Subscribe Events, Publish-Subscribe with Persistence (Events Store), RPC Command and Query messaging patterns
  • Supports gRPC, Rest and WebSocket Transport protocols with TLS support (both RPC and Stream modes)
  • Runs in Single and cluster modes
  • No Message broker configuration needed (i.e., queues, exchanges)
  • Built-in Caching, Metrics, and Tracing
  • .Net, Java, Python, Go SDKs
  • Monitoring Dashboard

Kubernetes and Docker Ready

  • Kubernetes - KubeMQ can be deployed on any Kubernetes cluster as stateful set.
  • Docker - KubeMQ can run as a single docker container or as high availability cluster.

Messaging Patterns

Queues

KubeMQ supports distributed durable FIFO based queues with the following core features:

  • Exactly One Delivery - Only one message guarantee will deliver to the subscriber
  • Single and Batch Messages Send and Receive - Single and multiple messages in one call
  • RPC and Stream Flows - RPC flow allows an insert and pull messages in one call. Stream flow allows single message consuming in transactional way
  • Message Policy - Each message can be configured with expiration and delay timers. In addition, each message can specify a dead-letter queue for un-processed messages attempts
  • Long Polling - Consumers can wait until a message available in the queue to consume
  • Peak Messages - Consumers can peak into a queue without removing them from the queue
  • Ack All Queue Messages - Any client can mark all the messages in a queue as discarded and will not be available anymore to consume
  • Visibility timers - Consumers can pull a message from the queue and set a timer which will cause the message not be visible to other consumers. This timer can be extended as needed.
  • Resend Messages - Consumers can send back a message they pulled to a new queue or send a modified message to the same queue for further processing.

Pub/Sub

KubeMQ supports Publish-Subscribe (a.k.a Pub/Sub) messages patterns with the following core features:

  • Event - An asynchronous real-time Pub/Sub pattern.
  • Event Store -An asynchronous Pub/Sub pattern with persistence.
  • Grouping - Load balancing of events between subscribers

RPC

KubeMQ supports CQRS based RPC flows with the following core features:

  • Commands - A synchronous two ways Command pattern for CQRS types of system architecture.
  • Query - A synchronous two ways Query pattern for CQRS types of system architecture.
  • Response - An answer for a Query type RPC call
  • Timeout - Timeout interval is set for each RPC call. Once no response is received within the Timeout interval, RPC call return an error
  • Grouping - Load balancing of RPC calls between receivers
  • Caching - RPC response can be cached for future requests without the need to process again by a receiver

Interfaces

  • gRPC - High performance RPC and streaming framework that can run in any environment, Open source and Cloud Native.
  • Rest - Restful Api with WebSocket support for bi-directional streaming.

SDK

  • C# - C# SDK based on gRPC
  • Java - Java SDK based on gRPC
  • Go - Go SDK based on gRPC
  • Python - Python SDK based on gRPC
  • cURL - cURL SDK based on Rest
  • Node - Node SDK based on Rest
  • PHP - PHP SDK based on Rest
  • Ruby - Ruby SDK based on Rest
  • jQuery jQuery SDK based Rest

Observability

Installation

Every installation method requires a KubeMQ token. Please register to obtain your KubeMQ token.

Docker

Pull and run KubeMQ Docker container:

docker run -d -p 8080:8080 -p 50000:50000 -p 9090:9090 \
-v $PWD:/store -e KUBEMQ_TOKEN=<YOUR_KUBEMQ_TOKEN> kubemq/kubemq

Kubernetes

Run :

kubectl apply -f https://get.kubemq.io/deploy?token=<YOUR_KUBEMQ_TOKEN>

Please refer to our docs for more options.

Get Started

No matter what kind of App or Service you want to build, our three-step checklists will get you set up and ready.

Pick one of the desired message patterns:

Documatation

Visit our Extensive KubeMQ Documentation.

Support

You can reach us at:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].