gventino/gopher-mq

By gventino

Updated about 2 months ago

High-performance AMQP 0-9-1 message broker in Go, built on Erlang/OTP-style actors (Ergo Framework)

Image
Networking
Integration & delivery
Message queues
0

6.0K

gventino/gopher-mq repository overview

GopherMQ

A high-performance AMQP 0-9-1 message broker written in Go, using the Ergo Framework (Erlang/OTP actor model). RabbitMQ-compatible, built around isolated actors instead of shared-memory coordination.

Features

  • Full AMQP 0-9-1 protocol support
  • Exchange types: direct, fanout, topic, headers, consistent-hash, delayed
  • Queue types: classic, priority, quorum (Raft), stream
  • Publisher confirms & transactions
  • Dead letter exchanges, TTL, consumer priority
  • TLS (AMQPS), multi-vhost, clustering
  • Federation, shovel, tracing (firehose)
  • Management REST API
  • Plugin system

Quick Start

docker run -p 5672:5672 -p 15672:15672 gventino/gopher-mq

Ports

┌───────┬────────────────┐
│ Port  │ Service        │
├───────┼────────────────┤
│ 5672  │ AMQP           │
├───────┼────────────────┤
│ 5671  │ AMQPS (TLS)    │
├───────┼────────────────┤
│ 15672 │ Management API │
└───────┴────────────────┘

Default credentials

- User: guest
- Password: guest
- Vhost: /

Configuration

Configure via environment variables:

┌──────────────────────────────────┬──────────────────────┬─────────────────────────────┐
│ Variable                         │ Default              │ Description                 │
├──────────────────────────────────┼──────────────────────┼─────────────────────────────┤
│ GOPHERMQ_NODE_NAME               │ gophermq@localhost   │ Broker node name            │
├──────────────────────────────────┼──────────────────────┼─────────────────────────────┤
│ GOPHERMQ_LOG_LEVEL               │ info                 │ Log verbosity               │
├──────────────────────────────────┼──────────────────────┼─────────────────────────────┤
│ GOPHERMQ_MAX_CONNECTIONS         │ 0 (unlimited)        │ Max concurrent connections  │
├──────────────────────────────────┼──────────────────────┼─────────────────────────────┤
│ GOPHERMQ_MAX_CHANNELS_PER_CONN   │ 2048                 │ Max channels per connection │
├──────────────────────────────────┼──────────────────────┼─────────────────────────────┤
│ GOPHERMQ_TLS_CERT                │ —                    │ TLS certificate path        │
├──────────────────────────────────┼──────────────────────┼─────────────────────────────┤
│ GOPHERMQ_TLS_KEY                 │ —                    │ TLS private key path        │
├──────────────────────────────────┼──────────────────────┼─────────────────────────────┤
│ GOPHERMQ_CLUSTER_ENABLED         │ false                │ Enable clustering           │
├──────────────────────────────────┼──────────────────────┼─────────────────────────────┤
│ GOPHERMQ_CLUSTER_COOKIE          │ —                    │ Shared cluster cookie       │
├──────────────────────────────────┼──────────────────────┼─────────────────────────────┤
│ GOPHERMQ_SEED_NODES              │ —                    │ Comma-separated seed nodes  │
└──────────────────────────────────┴──────────────────────┴─────────────────────────────┘

Source & License

- GitHub: github.com/gventino/gopher-mq (https://github.com/gventino/gopher-mq)
- License: MPL 2.0

Tag summary

Content type

Image

Digest

sha256:c6c587af5

Size

4.7 MB

Last updated

about 2 months ago

docker pull gventino/gopher-mq