我想为我的以下项目设计最好的架构:我有一个可以在任何设备上运行的应用程序(台式机、移动设备……)用户可以在其中发布或接收通知,以便与其他用户共享数据。
基本上,用户可以与其他用户共享他在应用程序上所做的操作,并实时通知其他用户所做的更改,反之亦然。并且用户只能接收其他用户允许的通知。
例如,当用户在屏幕上移动小部件时,应用程序必须存储新的小部件位置,并且还实时通知其他用户该新位置以在他们的屏幕上执行改变。为了满足这种需求,我会看到一个事件驱动的体系结构,其中包含一个发布-订阅模式。但是,例如,当应用程序需要检索用户列表以共享小部件时,我猜我还需要处理同步请求-响应模式。
我快速浏览了一下描述流数据架构的Streaming Data book by Manning,但我不知道这种架构是否适合我的需求。例如,在实现部分中的一个区别是,在我的应用程序中,事件源生产者也可以是事件消费者(在本书中,事件源生产者是一个单独的公共流API,而真正的应用程序是唯一的消费者)。
我的想法是: WebSocket用于数据摄取和数据访问,一个类似代理的Kafka作为消息存储库,以及一个使用Kafka主题并将数据持久化到DB中的独立分析服务。一个问题是,我是否只能使用一个WebSocket同时用于数据摄取和数据访问。
您会使用哪些详细的架构和工具来满足这些需求?
对于实现,我将考虑将javascript用于客户端部分,将Java用于服务器部分。
https://stackoverflow.com/questions/47739415
复制相似问题