zeromq服务和数据访问

时间:2011-03-26 12:00:18

标签: architecture zeromq soa

我目前正在尝试使用zeromq并构建面向分布式服务的架构。每个服务都需要处理来自公共数据库的数据。

最好的方法是什么:

  • 在定义模型的所有服务中使用共享库。每个服务都连接到数据库
  • 使用抽象数据库的数据服务。所有其他服务都通过这个访问数据。可以使用协议缓冲区传输数据。

第二种选择对我来说似乎比较清晰,但我害怕对性能的影响,因为每次请求数据都会有一次网络通信。

将来可能会有数据库以外的数据源。这就是我考虑第二种选择的原因,但我害怕过度设计它。

1 个答案:

答案 0 :(得分:3)

由于你正在“正确行事”的长度,建立一个分布式服务导向系统,使用zeromq启动,我会说你应该全力以赴,并在数据库前放置一个服务。 / p>

关于表现,请记住Knuth的建议,即过早优化是万恶之源。最好选择更干净的选项,然后根据需要进行优化,除非您事先知道您将遇到性能问题。 此外,抽象数据库应该允许您在将来需要时更容易扩展(例如通过分发,缓存等)。

话虽如此,如果您正在考虑的另一个选项是共享库,并假设它也是实现的更快的选项,那么您可以始终以这种方式启动并稍后更改它 - 只需将共享库更改为工作使用服务而不是直接使用数据库,所有服务都应该没问题。