131.3. 将 hazelcast 实例作为 OSGI 服务发布
如果在 OSGI 容器中运行,并且您希望在同一容器中的所有捆绑包间使用一个 hazelcast 实例。您可以使用缓存要求将实例发布为 OSGI 服务和捆绑包,以引用 hazelcast 端点中的服务。
131.3.1. 捆绑包 A 创建实例并将其发布为 OSGI 服务 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
<bean id="config" class="com.hazelcast.config.FileSystemXmlConfig">
<argument type="java.lang.String" value="${hazelcast.config}"/>
</bean>
<bean id="hazelcastInstance" class="com.hazelcast.core.Hazelcast" factory-method="newHazelcastInstance">
<argument type="com.hazelcast.config.Config" ref="config"/>
</bean>
<!-- publishing the hazelcastInstance as a service -->
<service ref="hazelcastInstance" interface="com.hazelcast.core.HazelcastInstance" />
131.3.2. 捆绑包 B 使用实例 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
<!-- referencing the hazelcastInstance as a service -->
<reference ref="hazelcastInstance" interface="com.hazelcast.core.HazelcastInstance" />
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route id="testHazelcastInstanceBeanRefPut">
<from uri="direct:testHazelcastInstanceBeanRefPut"/>
<setHeader headerName="CamelHazelcastOperationType">
<constant>put</constant>
</setHeader>
<to uri="hazelcast-map:testmap?hazelcastInstance=#hazelcastInstance"/>
</route>
<route id="testHazelcastInstanceBeanRefGet">
<from uri="direct:testHazelcastInstanceBeanRefGet" />
<setHeader headerName="CamelHazelcastOperationType">
<constant>get</constant>
</setHeader>
<to uri="hazelcast-map:testmap?hazelcastInstance=#hazelcastInstance"/>
<to uri="seda:out" />
</route>
</camelContext>