RabbitMQ代替WebHooks
我们有一个项目,为我们批准的许多客户提供API(我们与他们签署纸质合同)。我们的客户希望从我们那里获得有关其资源的更新(所有客户都是独立的)。目前,我们考虑WebHookes和RabBMQ来流事件。RabbitMQ听起来很奇怪,因为它将被外部客户机使用(是的,我们批准它们,但我们不控制它们)。如果我们使用Webhook,我们需要重新实现许多从RabbitMQ免费获得的特性 我们在Webhook中需要实现的功能:RabbitMQ代替WebHooks,rabbitmq,webhooks,Rabbitmq,Webhooks,我们有一个项目,为我们批准的许多客户提供API(我们与他们签署纸质合同)。我们的客户希望从我们那里获得有关其资源的更新(所有客户都是独立的)。目前,我们考虑WebHookes和RabBMQ来流事件。RabbitMQ听起来很奇怪,因为它将被外部客户机使用(是的,我们批准它们,但我们不控制它们)。如果我们使用Webhook,我们需要重新实现许多从RabbitMQ免费获得的特性 我们在Webhook中需要实现的功能: 身份验证和订阅(一些客户端有一些独立的应用程序,因此他们需要一种方法告诉我们他们的
- 身份验证和订阅(一些客户端有一些独立的应用程序,因此他们需要一种方法告诉我们他们的应用程序在哪里)
- 签名请求(他们需要确保请求来自我们)
- 重试机制(如果选择RabbitMQ,则不必处理)
- 一种保证事件顺序的机制(考虑到重试机制更有趣。如果选择RabbitMQ,我们也不需要这种机制)
- 这类话题,所以他们只得到他们需要的
您听说过使用RabbitMQ代替Webhook的经验吗?听起来太疯狂了吗?如果您想通过direclty RabbitMQ发送事件,您将面临以下挑战:
客户1.发票.已付
,客户2.发票.已付
为客户提供可靠的非兔子/非AMQP接口。在内部使用RabbitMQ,这样的消息队列设计才有意义(RabbitMQ在许多情况下很好,但在某些域中有更好的队列替代方案)。也就是说,RabbitMQ是一个与SQL Server类似的实现细节。。通常不允许客户机直接连接到他们的SQL实例:}是的,我有支持我上述“规则”的经验:即使是“内部,在一个组织内”,由于使用RabbitMQ而不是建立更好的边界,很容易会有太多的域/实现出血和缺乏定义和控制。允许外部客户端访问RabbitMQ只会加剧此问题,并使访问安全性更加困难(即,如何“打孔”网络、管理客户端访问/权限、提供审核?)(“Webhook”可能提供与客户端的接口并在内部利用RabbitMQ?耸耸肩)