Architecture 可扩展服务的设计与实现

Architecture 可扩展服务的设计与实现,architecture,activemq,scalability,distributed,bigdata,Architecture,Activemq,Scalability,Distributed,Bigdata,我们已经编写了跨网络部署/分布的代理。代理每15秒发送一次数据,甚至可能是5秒。在一个服务/系统上工作,所有代理都可以向该服务/系统发布具有边际负载的数据/元组。最多可接受5%的下降率。最终,数据将被隔离并存储到DBMS系统中(目前我们使用的是MSQL) 问题我正在寻找答案 客户端/服务器通信:代理可以发布数据。发送数据的状态没有那么重要。但是,如果服务器端系统根据发送的数据生成事件,则需要通知远程where代理 来自internet的许多建议建议使用消息总线(ActiveMQ)进行异步通信。

我们已经编写了跨网络部署/分布的代理。代理每15秒发送一次数据,甚至可能是5秒。在一个服务/系统上工作,所有代理都可以向该服务/系统发布具有边际负载的数据/元组。最多可接受5%的下降率。最终,数据将被隔离并存储到DBMS系统中(目前我们使用的是MSQL)

问题我正在寻找答案

  • 客户端/服务器通信:代理可以发布数据。发送数据的状态没有那么重要。但是,如果服务器端系统根据发送的数据生成事件,则需要通知远程where代理

    • 来自internet的许多建议建议使用消息总线(ActiveMQ)进行异步通信。多播和UDP是替代方案
  • 持久性:在一些评估数据存储到DBMS系统之后

    • 处理结束数据是一个聚合记录,MySql看起来是可伸缩的。但数据量是指数级的。将HBase视为一种选择
  • 查看上述两种情况是否有替代方案,并获得专家建议

  • 异步是一个很好的选择。开发两个模块:前端-用于使用某种QUEU(用于缓存)快速发布数据,后端-带有事件生成器并存储到数据库
  • 使用DB接近操作系统(开销最小,我认为不需要事务),并使用非阻塞(乐观锁定)缓存和异步缓存。例如:DB Berkeley或将数据写入小文件,并进行第二个异步进程,该进程将读取数据并存储到DB