我正计划构建一个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 Kafka
或RabbitMQ
发送这些消息,但是不知道这是否是实现此类功能的正确方法。我自己从未在API之间做过这种Observer
模式。
您对此主题有什么建议吗?
编辑:Apache Kafka
和RabbitMQ
只是样本。我正在征求您的建议,哪种技术最适合这种情况。完全没有这些类型的消息传递服务,这可能是一个解决方案。
答案 0 :(得分:0)
Apache Kafka基于推和拉机制,生产者在某个主题上推送数据,消费者从该主题中提取数据。我们可以为消费者定义轮询间隔。
它不是基于观察者设计模式的。但是,其余服务可用于数据摄取和数据消耗,这称为kafka rest proxy。
就像用户数据更改一样,我们使用Producer Rest Service [Kafka Rest Proxy]将这些更改写在UserTopic等主题上。我们已经在UserTopic主题上注册了五个使用者,他们将使用Consumer Rest Service [Kafka Rest使用数据代理]。