Tag: publish subscribe

发布/订阅和基于内容的订阅

我正处于设计将成为事件驱动架构(基本发布/订阅)的系统的开始阶段。 实际的工具和框架还没有被选中,所以这个问题比技术特定更具概念性(尽管它将在.Net中完成)。 对于这种情况几乎完美的类比是金融交易系统。 想象一下,服务器不断接收市场数据(实时或间隔 – 无所谓)。 服务器将发布特定证券的定价更新。 出于这个问题的目的,让我们说服务器正在“观察”和发布有1000种证券。 有100个客户端应用程序是此服务的订户。 每个客户只对正在发布的一小部分证券感兴趣。 如果客户端收到所有1000个证券的消息,那么它必须解析它们,这显然会在客户端上产生更多的网络流量和更多的负载。 另一方面,必须解析服务器端的消息内容似乎会在发布/路由时增加负载。 在这种类型的架构中,这通常如何处理?

Rx如何从pub / sub模式创建序列

我正在尝试使用Rx来评估从发布/子模式创建序列(即经典观察者模式,其中下一个元素由生产者发布)。 这基本上与.net事件相同,除了我们需要概括它以使得事件不是必需的,所以我无法利用Observable.FromEvent。 我玩过Observable.Create和Observable.Generate,发现自己最终不得不编写代码来处理pub / sub(即我必须编写生产者/消费者代码来存储已发布的项目,然后通过用它来调用IObserver.OnNext()),所以看起来我并没有真正利用Rx …… 我向下看正确的路径还是适合Rx? 谢谢

没有网络依赖的进程间pubsub

假设我的计算机上没有安装网卡,我希望function类似于以下内容: 进程1将消息发布到某个URI,例如“Uri1” var publisher = new Publisher(“Uri1”); publisher.publish(new Message(“Somedata”); 进程2将监听“Uri1”上的消息并将消息发布到“Uri2” var subscriber = new Subscriber(“Uri1”) subscriber.MessageReceived += data => Console.Writeline(data.ToString()); var publisher = new Publisher(“Uri2”) publisher.Publish(new Message(“SomeMoreData”)) 进程3将侦听来自两个URI的消息 var subscriber = new Subscriber(“Uri1”) subscriber.MessageReceived += data => Console.Writeline(data.ToString()); var anotherSubscriber = new Subscriber(“Uri2”) anotherSubscriber.MessageReceived += data => Console.Writeline(data.ToString()); 所有进程都在同一台计算机上运行。 经过一些研究后,我相信MSMQ是可行的方法(使用队列名称作为URI),但实施问题仍然存在。 我遇到了几种可能性: 直接使用MSMQ 我用这种方法遇到的问题是我必须管理我自己的队列,例如创造,人口,清除…也从我读到的内容中我可能会遇到许多陷阱和MSMQ的局限性因为我没有经验 使用NServiceBus , […]

使用StackExchange.Redis的Redis键空间通知

我环顾四周,我无法找到如何使用StackExchange.Redis库在Redis上执行键空间通知订阅。 检查可用的测试我发现使用频道的pubsub,但这更像是服务总线/排队,而不是订阅特定的Redis键事件。 是否可以使用StackExchange.Redis利用此Redisfunction?