首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Message的windows服务体系结构(兔子MQ)

基于Message的windows服务体系结构(兔子MQ)
EN

Software Engineering用户
提问于 2017-12-18 07:20:16
回答 1查看 1.3K关注 0票数 1

我已经使用Message (RabbitMQ)开发了一个windows服务。

该服务的目的是通过TCP/UDP连接接收数据。解析HEX格式的传入数据,并将其转换为对象,并将对象保存到数据库中。此外,该服务还执行一些计算和检查,以发送警报/通知。

设备的数量约为3000至3500台。

服务是在C#、Rabbit、实体框架和SuperSocket.NET中开发的。

另外,我还实现了从数据库读取数据的缓存。

这是对体系结构的概述。

Part A -

代码语言:javascript
复制
1 - Our service receives the data over TCP/UDP.

2 - Parse the HEX string to objects and saves them to the database.

3 - Push the object to the Message Queue for further processing.

B部分-

代码语言:javascript
复制
1 - Receives the object from Message Queue

2 - Performs a heavy calculation and saves to database

3 - Calculate events and send out email and sms alerts/notifications (dependent on Part B --> step 2)

现在的问题是,由于A部分处理数据的速度如此之快,队列在2小时内就会被20万条记录填满。

我尝试在B部分中创建多个队列来处理记录,但是消息的传入率仍然比传出的要高得多。

我需要一些关于该做什么的指导,因为我已经没有关于如何改进服务的想法了,因为这是我第二次重新完成整个服务。

EN

回答 1

Software Engineering用户

发布于 2017-12-18 08:08:31

在多个服务中拆分B部分。

B服务做大量的计算。

一旦完成繁重的计算,将其推入另一个队列,并有两个服务将计算的数据写入DB (C)并发送警报(D)。

这样,您就可以运行大量计算服务的多个实例。您甚至可以根据消息队列大小动态地缩放大量计算实例的数量。

例如A、B、C、D。

如果这还太慢,你甚至可以用更多的能量在专用服务器上运行B.

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

https://softwareengineering.stackexchange.com/questions/362612

复制
相关文章

相似问题

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