API观察者,通过REST API通知订阅者

时间:2019-03-11 09:39:13

标签: rest api observer-pattern

我正计划构建一个Web应用程序,用户可以在其中更新一些数据。 其他开发人员应该能够通过API订阅我的应用程序,并且必须在数据更改时得到通知。有了此通知,必须将已更改的数据发送给订户。然后,订阅者应用会自动处理接收到的数据。

User changes data-> My webapps' datastore is being updated-> Notify all subscribers via REST or something like that over the internet-> Subscribers process changed data

我目前正处于计划阶段,我的问题是要使用哪种技术来构建此通知系统。

我不知道订阅应用程序的代码,因此我的应用程序与订阅应用程序之间的接口必须类似于REST API。

我曾考虑过使用Apache KafkaRabbitMQ发送这些消息,但是不知道这是否是实现此类功能的正确方法。我自己从未在API之间做过这种Observer模式。

您对此主题有什么建议吗?

编辑:Apache KafkaRabbitMQ只是样本。我正在征求您的建议,哪种技术最适合这种情况。完全没有这些类型的消息传递服务,这可能是一个解决方案。

1 个答案:

答案 0 :(得分:0)

Apache Kafka基于推和拉机制,生产者在某个主题上推送数据,消费者从该主题中提取数据。我们可以为消费者定义轮询间隔。

它不是基于观察者设计模式的。但是,其余服务可用于数据摄取和数据消耗,这称为kafka rest proxy

就像用户数据更改一样,我们使用Producer Rest Service [Kafka Rest Proxy]将这些更改写在UserTopic等主题上。我们已经在UserTopic主题上注册了五个使用者,他们将使用Consumer Rest Service [Kafka Rest使用数据代理]。