首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络编程抽象、分解

网络编程抽象、分解
EN

Stack Overflow用户
提问于 2009-10-01 18:45:27
回答 3查看 292关注 0票数 0

我有以下问题:

服务器进程1

  • 不断向数据存储发送发生的更新。

服务器进程2

  • 客户端与服务器联系,服务器查询数据存储,并返回结果。

问题是,process 1和process 2返回客户端的结果是完全不同的,不相关的。

一个人怎么分解这个?您是否只有一个进程不断地发送数据,并将协议定义为有一个与返回类型是1或2相对应的位?

你有两个过程吗?那么,他们如何共享数据存储(它只是一个结构,而不是一个数据库)?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-01 23:28:36

听起来,您想要将您的一系列in“放到某个地方”,并将它们收集到一个数据存储中。在我的系统中,我将传感器读数传输到数据库中,并允许它们直接访问web客户端,为他们提供实时的电力读数。我写了一篇关于为什么是数据库不适用于实时数据。的博客文章--尽管它是保存数据以供以后分析的完美方法。

我希望第一个服务器进程是一个使用txamp将ints流到RabbitMQ的扭曲服务器。任何想要实时数据的客户端都可以订阅RabbitMQ中的流,也可以使用Txamp。Web浏览器客户端可以使用绕轨道 下面是一个有用的示例

在设计服务器中,1保存到数据库。相反,您可以让server3从RabbitMQ收集数据并将其流到数据库中。我计划有一个服务器来收集大量数据并呈现图形,以便存储到中央文件共享中。

不要创建自己的消息传递系统,RabbitMQ是经过良好测试、可伸缩的,如果出现问题,可以持久化您的“消息”(原始数据)。

票数 1
EN

Stack Overflow用户

发布于 2009-10-01 20:41:30

如果您可以限制自己使用Twisted,我建议您使用透视经纪人。它本质上是一个RPC系统,不太关心“客户端”和“服务器”的概念--无论是TCP连接的发起者还是响应者都可以在PB中启动RPC调用。

因此,服务器1将接受带有回调对象的注册调用,并在有新数据可用时调用回调。服务器2根据客户端的需要提供各种RPC操作。如果它们对相同的数据进行操作,我将把这两台服务器放在一个进程中。

票数 1
EN

Stack Overflow用户

发布于 2009-10-01 20:16:28

为什么不使用数据库而不是“只是一个结构”呢?关系型和非关系型DB都提供了许多实际优势(单独使用它们的进程,负责复制[和/或快照、备份、.],如果您需要用于“查询”的丰富功能,等等)。

最糟糕的情况是,“只是一个结构”可以由第三个完全专用于它的进程来处理(基本上模仿任何DB引擎会提供什么--尽管引擎可能会更好、更快;-),允许您至少保持良好的分解(两个服务器进程都与“数据存储进程”交互)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1505744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档