- Notifications
You must be signed in to change notification settings - Fork42
AMQP message broker implemented with golang
License
valinurovam/garagemq
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
GarageMQ is a message broker that implement the Advanced Message Queuing Protocol (AMQP). Compatible with any AMQP or RabbitMQ clients (tested streadway/amqp and php-amqp lib)
- Have fun and learn a lot
- Implement AMQP message broker in Go
- Make protocol compatible with RabbitMQ and standard AMQP 0-9-1.
Simple demo server on Digital Ocean,2 GB Memory / 25 GB Disk / FRA1 - Ubuntu Docker 17.12.0~ce on 16.04
Server | Port | Admin port | Login | Password | Virtual Host |
---|---|---|---|---|---|
46.101.117.78 | 5672 | 15672 | guest | guest | / |
- AdminServer - http://46.101.117.78:15672/
- Connect uri -
amqp://guest:guest@46.101.117.78:5672
The quick way to start with GarageMQ is by usingdocker
. You can build it by your own or pull from docker-hub
docker pull amplitudo/garagemqdocker run --name garagemq -p 5672:5672 -p 15672:15672 amplitudo/garagemq
or
go get -u github.com/valinurovam/garagemq/...cd$GOPATH/src/github.com/valinurovam/garagemqdocker build -t garagemq.docker run --name garagemq -p 5672:5672 -p 15672:15672 garagemq
You can also usego get:go get -u github.com/valinurovam/garagemq/...
go get -u github.com/valinurovam/garagemq/...cd$GOPATH/src/github.com/valinurovam/garagemqmake build.all&& make run
Flag | Default | Description | ENV |
---|---|---|---|
--config | default config | Config path | GMQ_CONFIG |
--log-file | stdout | Log file path orstdout ,stderr | GMQ_LOG_FILE |
--log-level | info | Logger level | GMQ_LOG_LEVEL |
--hprof | false | Enable or disablehprof profiler | GMQ_HPROF |
--hprof-host | 0.0.0.0 | Profiler host | GMQ_HPROF_HOST |
--hprof-port | 8080 | Profiler port | GMQ_HPROF_PORT |
# Proto name to implement (amqp-rabbit or amqp-0-9-1)proto:amqp-rabbit# User listusers: -username:guestpassword:084e0343a0486ff05530df6c705c8bb4# guest md5# Server TCP settingstcp:ip:0.0.0.0port:5672nodelay:falsereadBufSize:196608writeBufSize:196608# Admin-server settingsadmin:ip:0.0.0.0port:15672queue:shardSize:8192maxMessagesInRam:131072# DB settingsdb:# default pathdefaultPath:db# backend engine (badger or buntdb)engine:badger# Default virtual host pathvhost:defaultPath:/# Security check rule (md5 or bcrypt)security:passwordCheck:md5connection:channelsMax:4096frameMaxSize:65536
Performance tests with load testing toolhttps://github.com/rabbitmq/rabbitmq-perf-test on test-machine:
MacBook Pro (15-inch, 2016)Processor 2,6 GHz Intel Core i7Memory 16 GB 2133 MHz LPDDR3
./bin/runjava com.rabbitmq.perf.PerfTest --exchangetest -uri amqp://guest:guest@localhost:5672 --queuetest --consumers 10 --producers 5 --qos 100 -flag persistent......id: test-235131-686, sending rate avg: 53577 msg/sid: test-235131-686, receiving rate avg: 51941 msg/s
./bin/runjava com.rabbitmq.perf.PerfTest --exchangetest -uri amqp://guest:guest@localhost:5672 --queuetest --consumers 10 --producers 5 --qos 100......id: test-235231-085, sending rate avg: 71247 msg/sid: test-235231-085, receiving rate avg: 69009 msg/s
Database backend is changeable through configdb.engine
db: defaultPath: db engine: badger
db: defaultPath: db engine: buntdb
basic.qos
method implemented for standard AMQP and RabbitMQ mode. It means that by default qos applies for connection(global=true) or channel(global=false).RabbitMQ Qos means for channel(global=true) or each new consumer(global=false).
The administration server is available at standard:15672
port and isread only mode
at the moment. Main page above, andmore screenshots at /readme folder
- Optimize binds
- Replication and clusterization
- Own backend for durable entities and persistent messages
- Migrate to message reference counting
Contribution of any kind is always welcome and appreciated. Contribution Guidelines in WIP
About
AMQP message broker implemented with golang
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors6
Uh oh!
There was an error while loading.Please reload this page.