`
liyixing1
  • 浏览: 961518 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

过滤器与消息选择器

    博客分类:
  • jms
 
阅读更多
过滤器

String filter = "(currentRate - newRate) >= 1.0";
TopicSubscriber subscriber =
session.createSubscriber(topic, filter, true);

如上,设置了过滤器。比较简单,核心的地方是选择器上。支持加过滤器是在通过session创建TopicSubscriber.,QueueReceiver,QueueBrowser的时候设置。

选择器
不支持对消息内容的过滤。只支持对属性和头的选择条件。,选择器的代码结构与SQL-92的语法基本类似。

标示符

Symbol = 'ABC' AND Side = 'BUY' AND Shares <= 1000.0 AND JMSPriority > 4

msg.setStringProperty("Symbol", tradeOrder.getSymbol());
msg.setStringProperty("Side", tradeOrder.getSide());
msg.setDoubleProperty("Shares", tradeOrder.getShares());

如上,需要注意的是,头名或者属性名是区分大小写的。

常用的头名有
• JMSDeliveryMode
• JMSPriority
• JMSMessageID
• JMSTimestamp
• JMSCorrelationID
• JMSType

JMSDestination and JMSReplyTo 这两个头是不能作为条件的,因为他们对应的值是目标,其值是无法确定的。
JMSRedelivered 也是不允许的,因为他可能会被改变。
JMSExpiration也不允许,因为不同的JMS实现,对该值的设置也有区别。


比较操作符
多个逻辑运算通过AND 和 OR进行组合。
支持
• 6个代数比较符号( = , > , >= , < ,<= , and <>)
• LIKE
• BETWEEN
• IN
• NOT
• IS NULL

运算符
如+ - * /


对于发布订阅模式,public MessageConsumer createConsumer(Destination dest,
String messageSelector,
boolean noLocal),多了一个参数,该参数是只是否包含了自己发布的消息。

另外在选择器和使用多个队列或者主题,已达到选择器的功能上,更亲睐于使用多个队列,而不是使用选择器,因为选择器会增加依赖关系(应用A需要知道应用B的消息的部分属性或者头的内容)。
更好的方式是先做一个分析,推算出需要的主题或者队列数,做一个合理划分,在做小量的选择器,以求达到解耦和JMS中间件压力的均衡。
分享到:
评论

相关推荐

    过滤器图形符号(标准图形)

    - 在实际应用中,应根据具体工况选择合适的过滤器类型。 - 设计时需考虑过滤器的尺寸、材质以及耐压等级等因素。 - 对于带有特殊功能的过滤器(如磁性过滤器),还需注意其特定的应用条件和限制。 综上所述,...

    jQuery选择器-过滤器总结

    ### jQuery选择器与过滤器深度解析 在前端开发领域,jQuery因其简洁的语法和强大的功能,长期以来备受开发者青睐。其中,选择器与过滤器作为jQuery的核心功能之一,为DOM操作提供了极大的灵活性和便利性。本文将对...

    JQ 内容过滤选择器

    本文将深入探讨"JQ内容过滤选择器"这一关键知识点,它是jQuery选择器体系中的一个重要组成部分,用于从DOM树中筛选出符合特定条件的元素。 一、JQ内容过滤选择器概述 内容过滤选择器允许我们根据元素内部的文本或...

    多介质过滤器设计规范

    多介质过滤器设计规范主要涉及了工业水处理领域中一种重要的设备——多介质过滤器,其主要用于去除水中的悬浮物、胶体、微生物、有机物和油等杂质,以提升水质,确保供水满足使用需求。以下是对规范书中关键知识点的...

    拦截器和过滤器的区别

    ### 拦截器与过滤器的区别 #### 一、概念简介 在现代软件开发过程中,特别是Web应用程序中,为了实现灵活高效的业务逻辑处理及控制流管理,常常会使用到两种设计模式:拦截器(Interceptor)与过滤器(Filter)。...

    过滤器与过滤器

    在Java Web开发中,过滤器(Filter)和拦截器(Interceptor)是两种常见的处理请求和响应的机制。它们主要用于在请求被实际处理之前或之后执行某些预定义的任务,如认证、授权、数据转换、日志记录等。在这个基于...

    JQ 可见性过滤选择器

    首先,`:visible`和`:hidden`这两个选择器是jQuery提供的基本可见性过滤器。`:visible`选择器用于选取当前在页面上可见的所有元素,而`:hidden`选择器则选取所有被隐藏的元素。这里的“可见”和“隐藏”不仅仅是指...

    过滤器(Filter)

    如果过滤器选择允许请求通过,它会调用下一个过滤器,直到请求到达目标资源(如Servlet)。完成后,响应会通过过滤器链返回给客户端,过程中同样可以进行相应的后处理。 创建一个过滤器需要继承`javax.servlet....

    jquery基本过滤选择器

    jquery基本过滤选择器举例、代码、html、可直接运行、学习jquery入门篇

    基于servlet的过滤器

    这个文件可能包含了过滤器的实现,包括计数逻辑以及与Servlet交互的部分。 总的来说,这个项目展示了如何利用Servlet过滤器进行基本的网站流量统计。通过学习和实践这样的小型项目,开发者可以更好地理解和掌握...

    国内外过滤器

    1. **技术要求**:涉及过滤器的基本参数(过滤精度、额定流量等)、材料选择、性能要求(如低压密封性、高压密封性等)及设计制造等方面。 2. **试验要求**:包括了过滤精度试验、纳垢容量试验等12项具体试验,用以...

    java一些 常用 的过滤 器

    认证过滤器通常与Servlet容器或Spring Security等框架集成,提供了一种灵活且安全的方式来管理应用程序的安全性。 ### 2. 日志记录和审计过滤器(Logging and Auditing Filters) 日志记录和审计过滤器用于记录...

    java 常用过滤器

    在Java Web开发中,过滤器(Filter)是一个非常重要的组件,它允许开发者在请求被处理之前或之后执行一些额外的操作。...在实际开发中,开发者可以根据需求选择合适的过滤器组合,以满足各种功能需求。

    jquery可见性过滤选择器使用示例

    今天我们将深入探讨一个特定的jQuery功能——可见性过滤选择器。这些选择器允许我们根据元素的可见状态来选取DOM中的节点,从而实现更加精细化的操作。 首先,jQuery提供了两种主要的可见性过滤选择器:`:visible` ...

    Bloom过滤器学习笔记

    #### 一、Bloom过滤器简介与原理 **Bloom过滤器**是一种空间效率极高的概率型数据结构,用于检验一个元素是否在一个集合中。它最大的特点是快速且节省空间,但是有一定的误判率,并且不能删除元素。 ##### 基本...

    CAD VBA 选择集的过滤

    FilterType 参数指定了过滤器的类型,例如 DXF 组码,而 FilterData 参数指定了过滤器的值。 DXF 组码是一种特殊的编码方式,用于指定过滤条件。在 CAD VBA 中,DXF 组码可以用于指定图元类型、图层名称、颜色编号...

    过滤器操作数据库验证合法用户

    在Java Web开发中,过滤器(Filter)是一个非常重要的组件,它主要用于在请求被实际处理之前或之后执行一些预处理或后处理任务。过滤器在Servlet规范中定义,是实现Servlet API的一部分,允许开发者对HTTP请求和响应...

    java实现的布隆过滤器算法

    5. **误判率**:布隆过滤器的误判率与位数组的大小、哈希函数的数量以及插入的元素数量有关。误判率可以通过数学公式进行计算,但实际应用中通常需要通过实验调整参数以达到理想的平衡。 6. **空间效率**:相比于...

Global site tag (gtag.js) - Google Analytics