可扩展服务的设计和实现

时间:2014-01-07 10:49:10

标签: architecture activemq scalability distributed bigdata

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

问题我正在寻找答案

  1. 客户端/服务器通信:代理可以发布数据。发送数据的状态并不重要。但是如果服务器端系统根据发送的数据生成事件,则会有一个远程通知代理。

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

    • 处理数据结束是MySql看起来可扩展的聚合记录。但是数据量是指数级的。考虑将HBase作为一种选择。
  3. 查看上述两种情况是否有其他选择并获得专家意见。

1 个答案:

答案 0 :(得分:0)

  1. 异步是个不错的选择。开发2个模块:前端 - 用于快速发布数据(包括缓存)和后端 - 使用事件生成器并存储到数据库
  2. 使用DB关闭操作系统(最小开销,我认为不需要事务)和非阻塞(乐观锁定)缓存,异步缓存。例如:DB Berkeley或将数据写入小文件并进行第二次异步处理,这将是读取数据并存储到DB。