175.8. 例子


175.8.1. 向 JGroups 集群发送(接收)消息

为了发送消息到 JGroups 集群,可使用 producer 端点,如以下代码片段中所示。

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 上下文的集群中。一旦主控节点结束,其中一个从设备将被选为新的主设备并启动。在这个特定示例中,我们希望将 singleton 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.