175.8. 例子


175.8.1. 将消息(接收)消息发送到 JGroups 集群(来自)

若要向 JGroups 集群使用制作者端点发送消息,如以下代码片段中所示:

from("direct:start").to("jgroups:myCluster");
...
producerTemplate.sendBody("direct:start", "msg")

要接收来自上述代码片段(在相同或其它物理计算机上)的消息,请侦听来自给定集群的消息,就像以下代码片段中演示一样。

mockEndpoint.setExpectedMessageCount(1);
mockEndpoint.message(0).body().isEqualTo("msg");
...
from("jgroups:myCluster").to("mock:messagesFromTheCluster");
...
mockEndpoint.assertIsSatisfied();

175.8.2. 接收集群视图更改通知

以下片段演示了如何创建侦听集群成员资格更改通知的消费者端点。默认情况下,端点仅消耗常规消息。

mockEndpoint.setExpectedMessageCount(1);
mockEndpoint.message(0).body().isInstanceOf(org.jgroups.View.class);
...
from("jgroups:clusterName?enableViewMessages=true").to(mockEndpoint);
...
mockEndpoint.assertIsSatisfied();

175.8.3. 在集群中保留单例路由

以下片段演示了如何将单例消费者路由保留在 Camel 上下文的集群中。一旦主节点结束,其中一个从节点将被选为一个新的 master 并启动。在这个特定示例中,我们希望保持单例 jetty 实例侦听地址的 http://localhost:8080/orders` 上的请求。

JGroupsLockClusterService service = new JGroupsLockClusterService();
service.setId("uniqueNodeId");
...
context.addService(service);

from("master:mycluster:jetty:http://localhost:8080/orders").to("jms:orders");
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.