[发明专利]JMS规范的Pub/Sub消息模型的消息生产消费方法有效
申请号: | 201410138891.7 | 申请日: | 2014-04-09 |
公开(公告)号: | CN103870344B | 公开(公告)日: | 2017-04-05 |
发明(设计)人: | 郝建钧 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京德琦知识产权代理有限公司11018 | 代理人: | 牛峥,王丽琴 |
地址: | 100080 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | jms 规范 pub sub 消息 模型 生产 消费 方法 | ||
技术领域
本发明涉及计算机领域,特别涉及一种JMS规范的Pub/Sub消息模型的消息生产消费方法。
背景技术
JMS,即Java Message Service,Java消息服务,它是一个Java平台中关于面向消息中间件(MOM)的API(Application Programming Interface,应用程序编程接口)。JMS用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
JMS提供了创建、发送、接收、读取消息的服务,JMS规范下有两种基本消息模型,即PTP(点对点)和Pub/Sub(发布/订阅)。其中,Pub/Sub模型可以定义多个消费者消费消息,它在企业级开发中广泛采用,方便了系统间消息的传递,省去了大量开发时间以及节省了存储消息的资源空间。
图1为JMS标准的Pub/Sub消息模型的消息生产消费流程示意图。该过程中,首先,消息生产者创建一条消息,并将该条消息发送到一个消息主题(topic);订阅此消息主题的消费者监听该消息主题;当该条消息出现在该消息主题中时,便被订阅此消息主题的消费者监听到,之后该消息自动被订阅此消息主题的消费者接收并消费;当该消息被所有订阅此消息主题的消费者消费后,该消息才在该消息主题中进行释放,同时订阅此消息主题的消费者开始消费该消息主题中的下一条消息。
而对于一个消息主题来说,其同时能够保存的消息具有一定容量,当该消息主题中的消息已满,并且当前该消息主题中所存储的消息尚未被所有订阅此消息主题的消费者消费完时,该消息主题中的消息无法进行释放,进而将导致新的消息无法进入该消息主题而只能进行等待或者丢弃,造成消息阻塞。
在某些实时性系统中,对于消息的时效性和可靠性要求较高。在理想情况下,发布到消息主题的消息是能够被及时且快速地消费的,进而消息主题中不会出现阻塞。但在实际中,会出现这样一种情况:实时性系统中的生产者发送消息过多,而消费者的消费能力较差,这时就会造成上述中的消息阻塞,导致新的消息无法进入消息主题进行消费,无法保证时效性,而若设置消息过期时间而解决上述消息阻塞问题,则会盲目地将所有过期消息清除,虽然能够保证一定程度的时效性,但是会产生丢失重要消息的风险。
发明内容
有鉴于此,本发明提供一种JMS规范的Pub/Sub消息模型的消息生产消费方法,以避免消息阻塞,保证消息的实效性,避免重要消息丢失的风险。
本申请的技术方案是这样实现的:
一种JMS规范的Pub/Sub消息模型的消息生产消费方法,包括:
接收消息生产者所创建的当前消息;
获取所述当前消息的权效向量,并计算所述当前消息的权效值;
当所述消息主题中的消息未满时:
将所述当前消息的权效向量加入到权效向量空间,并将所述当前消息放入所述消息主题,以使订阅此消息主题的消费者接收并消费;
当所述消息主题中的消息已满时:
获取当前权效向量空间中所有消息的权效值,并计算当前权效向量空间的权效阈值;
在所述权效向量空间中,将权效值低于所述权效阈值的消息进行标记;
比较所述当前消息的权效值与所述权效阈值的大小,若所述当前消息的权效值大于所述权效阈值,则从所述消息主题中删除一条已标记消息,并同时从权效向量空间中删除该条已标记消息的权效向量;
将所述当前消息的权效向量加入到权效向量空间,并将所述当前消息放入所述消息主题,以使订阅此消息主题的消费者接收并消费。
进一步,比较所述当前消息的权效值与所述权效阈值的大小后,若所述当前消息的权效值小于或等于所述权效阈值,则丢弃所述当前消息。
进一步:
所述权效向量空间为四维向量组成的向量空间;
其中,所述四维向量包括消息ID、重要度、时效度和置换标识。
进一步:
所述重要度根据如下公式获得:
F1(x)=Ax×Wx
其中,x为任意一条消息,Ax为消息x的优先级,Wx为消息x的发送源权重,F1(x)为消息x的重要度;
所述时效度根据如下公式获得:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410138891.7/2.html,转载请声明来源钻瓜专利网。
- 一种Nd<sub>2</sub>O<sub>3</sub>-Yb<sub>2</sub>O<sub>3</sub>改性的La<sub>2</sub>Zr<sub>2</sub>O<sub>7</sub>-(Zr<sub>0.92</sub>Y<sub>0.08</sub>)O<sub>1.96</sub>复相热障涂层材料
- 无铅[(Na<sub>0.57</sub>K<sub>0.43</sub>)<sub>0.94</sub>Li<sub>0.06</sub>][(Nb<sub>0.94</sub>Sb<sub>0.06</sub>)<sub>0.95</sub>Ta<sub>0.05</sub>]O<sub>3</sub>纳米管及其制备方法
- 磁性材料HN(C<sub>2</sub>H<sub>5</sub>)<sub>3</sub>·[Co<sub>4</sub>Na<sub>3</sub>(heb)<sub>6</sub>(N<sub>3</sub>)<sub>6</sub>]及合成方法
- 磁性材料[Co<sub>2</sub>Na<sub>2</sub>(hmb)<sub>4</sub>(N<sub>3</sub>)<sub>2</sub>(CH<sub>3</sub>CN)<sub>2</sub>]·(CH<sub>3</sub>CN)<sub>2</sub> 及合成方法
- 一种Bi<sub>0.90</sub>Er<sub>0.10</sub>Fe<sub>0.96</sub>Co<sub>0.02</sub>Mn<sub>0.02</sub>O<sub>3</sub>/Mn<sub>1-x</sub>Co<sub>x</sub>Fe<sub>2</sub>O<sub>4</sub> 复合膜及其制备方法
- Bi<sub>2</sub>O<sub>3</sub>-TeO<sub>2</sub>-SiO<sub>2</sub>-WO<sub>3</sub>系玻璃
- 荧光材料[Cu<sub>2</sub>Na<sub>2</sub>(mtyp)<sub>2</sub>(CH<sub>3</sub>COO)<sub>2</sub>(H<sub>2</sub>O)<sub>3</sub>]<sub>n</sub>及合成方法
- 一种(Y<sub>1</sub>-<sub>x</sub>Ln<sub>x</sub>)<sub>2</sub>(MoO<sub>4</sub>)<sub>3</sub>薄膜的直接制备方法
- 荧光材料(CH<sub>2</sub>NH<sub>3</sub>)<sub>2</sub>ZnI<sub>4</sub>
- Li<sub>1.2</sub>Ni<sub>0.13</sub>Co<sub>0.13</sub>Mn<sub>0.54</sub>O<sub>2</sub>/Al<sub>2</sub>O<sub>3</sub>复合材料的制备方法