VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 876|回复: 3

消息队列处理慢出现消息积压现象求解

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-6 13:00:01 | 显示全部楼层 |阅读模式
最近采用消息对列来对网站每条新闻的PV进行统计,具体解决办法如下:
每当用户访问某个asp.net网页上的某条新闻时就向消息队列发送这条新闻的ID,然后利用一个后台window服务异步处理消息队列中的消息,每接收一条,就对数据库中ID等于接收到的ID的新闻的PV值累加1,服务器采用window 2003数据库是sql server 2005!发现当某个时段用户同时浏览量大的时候,会出现消息处理缓慢的现象,很多消息堆积在消息队列中等候处理!消息队列没有设置大小限制!请问有没有高手有遇到过该问题,请指教解决办法!谢谢!
回复

使用道具 举报

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-7 09:03:01 | 显示全部楼层
这个问题我觉得没有什么太好的办法能解决,只能求一些折中的办法,例如把消息进行分类,放在不同的MQ中;另外,尽量采用Recieve而不采用peek方法,保证MQ中的消息尽可能的少。

如果新闻的ID不多时,也可以为每个ID设一个MQ,当用户访问某个ID时,只是向对应的MQ中发送一条空消息,这样就不用对每条message进行读解的判断了。

以上仅为参考:)
回复

使用道具 举报

0

主题

8

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-7 14:27:01 | 显示全部楼层
消息队列处理缓慢,这首先是你的处理程序的问题,你的window服务处理效率如果够高的话,为什么会出现积压。
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-10 20:36:02 | 显示全部楼层
多谢各为高手指点,我的情况具体如下:
目前在数据库中保存了4万多条新闻,而且日后还会继续增加!因此不可能每条新闻一个队列
,另外新闻是有大小分类之分,某条新闻一定属于某个大类,以及该大类下的一个小类,我发送的消息的结构是这样的组成的 
新闻ID+“|”+新闻小类ID+“|”+新闻大类ID
当window服务接收到后,就利用一个正则表达式根据消息中的竖线来将消息中的ID分开,而后调用数据库的一个存储过程,将这3个ID作为参数,新闻ID用于更新单条新闻的PV,新闻小分类ID用于更新该小类的总PV,新闻大类ID用于更新该大类的总PV!请高手指教究竟问题的所在!谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表