我正在使用Hazelcast Queue存储,其中需要进行一些计算,在计算之后我想将数据放入Hazelcast Map中。 我使用Spring作为IOC容器。
问题是QueueStore不知道HazelCast实例并且访问Map我需要hazelCast实例。我尝试做一个setter注入,但它给了我一个循环依赖错误。
<hz:queue name="ProductQueue">
<hz:queue-store enabled="true" store-implementation="productQueueStore"></hz:queue-store>
</hz:queue>
<bean id="productQueueStore"
class="com.csg.ib.fid.crd.etrading.prpl.hazelcast.queuestores.ProductQueueStore"
scope="prototype">
<property name="inst" ref="hazelcastClusterInstance">
</property>
</bean>
我也尝试创建一个Factory类,并尝试通过factory-bean,factory-method方法注入属性,但它仍然给我一个循环依赖错误。
我可以通过任何方式让我的QueueStore了解Hazelcast实例吗? 要么 我可以在QueueStore中注入HazelCastClusterInstance吗? 要么 我可以通过任何方式将IMap引用到我的QueueStore中。(即hazelcastClusterInstance.getMap(&#34; Abc&#34;)?
答案 0 :(得分:1)
这可能非常危险,因为您可以对队列存储线程执行的操作进行限制。如果您正在使用IMap并随机命中分区,则可能会检测到这种情况,并且您会得到例外情况。
所以我认为你需要重新考虑当前的设计。