- 高性能。在 macbook pro 15 上测试,每个队列的处理能力可以轻松达到 3000 message/second 以上,多个队列也可以做到线性的增加性能,整体应用达到几万每秒很轻松。同时,得益于 golang 的协程设计,如果下游出现了慢调用,那么也不会影响并发。
- 优雅关闭。通过对信号的监听,整个程序可以在不丢消息的情况下优雅关闭,利于配置更改和程序重启。这个在生产环境非常重要。
- 自动重连。当 RabbitMQ 服务无法连接的时候,应用可以自动重连。
Build
go build -o watchman
Usage
Usage of ./watchman:
-c string
config file path (default "config/queues.example.yml")
-log string
logging file, default STDOUT
-pidfile string
If specified, write pid to file.
优雅关闭:
# kill -QUIT $PID
config 配置
ENV 文件
使用前需要先加载 env,样例见 config/env.example.yml,主要是 RabbitMQ 的配置。
队列配置文件
样例见 config/queues.example.yml, 主要是注明消息队列的配置以及回调地址和参数。
Author 作者大鱼(fishtrip.cn) 是国内领先的全球民宿平台,给用户提供全球特色的民宿、客栈、别墅等非标准住宿。目前公司的技术栈以 ruby 和 Java 为主,部分中间件采用 golang 编写。
Licence 许可MIT Licence