今天我们介绍一个非常小巧的异步消息通信库[message-bus](https://github.com/vardius/message-bus),它只能在一个进程中使用。 模块 A 和 模块 B 先向message-bus订阅主题(topic),即告诉message-bus对什么样的消息感兴趣。 其他模块 C 产生某个主题的消息,通知message-bus,由message-bus分发到对此感兴趣的模块。这样就实现了模块之间的解耦,模块 A、B 和 C 之间不需要知道彼此。 改动在这里:https://github.com/darjun/message-bus,message-bus有测试和性能用例,改完跑一下?。 在message-bus内部,每个主题对应一组订阅者。
简介 在上一篇文章Go 每日一库之 message-bus中,我们介绍了一款小巧、实现简单的异步通信库。作为学习,message-bus确实不错。 但是在实际使用上,message-bus的功能就有点捉襟见肘了。 例如,message-bus将消息发送到订阅者管道之后就不管了,这样如果订阅者处理压力较大,会在管道中堆积太多消息,一旦订阅者异常退出,这些消息将会全部丢失! 另外,message-bus不负责保存消息,如果订阅者后启动,之前发布的消息,这个订阅者是无法收到的。这些问题,我们将要介绍的watermill都能解决!
:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview 2)消息总线 Message-Bus :https://github.com/vardius/message-bus 3)框架 GoKit:https://github.com/go-kit/kit Micro:https://github.com
github.com/bamzi/jobrunner) 微服务 消息代理 RabbitMQ Apache Kafka ActiveMQ Azure Service Bus 构建事件驱动型服务 Watermill Message-Bus
https://github.com/go-oauth2/oauth2 值得了解一下这个样板文件中使用的包: gorouter https://github.com/vardius/gorouter message-bus https://github.com/vardius/message-bus gollback https://github.com/vardius/gollback shutdown https
JobRunner 微服务 消息代理 RabbitMQ Apache Kafka ActiveMQ Azure Service Bus 构建事件驱动型服务 Watermill Message-Bus