如何强制仅在 Red Hat MRG/Apache QPID 中浏览队列,以便客户端只能浏览队列。即使某些客户端尝试从队列中消费消息,他也不应该这样做。
问问题
356 次
1 回答
3
我认为没有这样的选项来配置代理,但您的客户端可以以仅浏览模式连接到队列。
direct://amq.direct//myqueue?browse=true
- 编辑 -
让客户端使用 browse_only 队列的另一种方法。
package foo.bar;
import java.util.Hashtable;
import java.util.Map;
import org.apache.qpid.client.AMQDestination;
import org.apache.qpid.jndi.PropertiesFileInitialContextFactory;
import org.apache.qpid.jndi.ReadOnlyContext;
public class CustomPropertiesFileInitialContextFactory extends PropertiesFileInitialContextFactory {
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
protected ReadOnlyContext createContext(Map data, Hashtable environment) {
makeDestinationsReadOnly(data);
return super.createContext(data, environment);
}
protected void makeDestinationsReadOnly(Map<String, AMQDestination> dests) {
for(AMQDestination dest : dests.values()) {
dest.setBrowseOnly(true);
}
}
}
于 2011-11-25T08:28:17.437 回答