【发布时间】:2014-04-23 23:05:29
【问题描述】:
我是 TIBCO 的 JMS 队列的新手,想了解以下内容。
考虑一个有多个部门的公司
- A部门
- B部
- 部门C
从外部来源收到的消息需要由不同部门使用。每个部门的客户是否应该在主题上有一个tibco 静态桥接队列 或一个静态持久?
一个比另一个有什么优点/缺点?
【问题讨论】:
我是 TIBCO 的 JMS 队列的新手,想了解以下内容。
考虑一个有多个部门的公司
从外部来源收到的消息需要由不同部门使用。每个部门的客户是否应该在主题上有一个tibco 静态桥接队列 或一个静态持久?
一个比另一个有什么优点/缺点?
【问题讨论】:
我假设你已经知道 JMS Queue 和 JMS Topic 之间的区别,(jms queue != FIFO) 否则请参阅 [http://en.wikipedia.org/wiki/Java_Message_Service][1] 然后有这里没有解决整个安全问题。
所以让我们假设安全性正在得到解决,主要问题是,如果客户端将有一个进程坐在那里并从队列中提取消息,那么队列就可以了,但是如果他们将创建一个进程订阅一个特定的频道然后你想要一个队列。
我看到所有部门都将消息放入同一个队列的情况,然后他们的客户从队列中取出仅为他们标记的消息,这可以通过 jms 属性集和选择器来完成。
此解决方案更像是一种实现类型的解决方案,它将改变客户端从“占位符”队列/主题读取消息的方式,随着性能的提高,两者在 TIBCO EMS 上的表现都非常好。我已经看到超过 100 万条消息/秒的吞吐量。消息移动的速度还取决于“服务做什么/需要多长时间”以及读取它们的客户端。
如果同时考虑客户和服务级别的性能,EMS 系统将表现良好。
【讨论】:
如果我理解你的问题,你想比较一下:
选项 1 - 一个“输入”主题桥接(如 EMS 目标桥接)到许多部门队列
对
选项 2 - 所有部门对同一输入主题的静态持久订阅
以下是我预先看到的差异: 队列和静态持久订阅者必须在不同的配置文件中进行配置,并且队列设置具有更大的灵活性:您可以选择存储(fs 位置)、持久性选项、到期选项等。 队列可以在多个实例上路由(一跳限制),主题也可以路由,但静态持久订阅必须在目标服务器上本地设置。
简而言之,它们几乎相同,但队列提供了比静态持久订阅更多的配置选项。
可能的实验说明:静态持久订阅会从目标队列“借用”一些属性吗?例如:使用与主题相同的商店?
最后一点:非静态持久订阅(由客户端持久触发,没有配置)可能是一个更值得注意的功能恕我直言......但不是你要找的。静态持久性与队列非常相似,因此可能不值得您花时间。
【讨论】: