如何将HazelCast Map依赖注入QueueStore

时间:2015-10-27 10:10:49

标签: java spring hazelcast

我正在使用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;)?

1 个答案:

答案 0 :(得分:1)

这可能非常危险,因为您可以对队列存储线程执行的操作进行限制。如果您正在使用IMap并随机命中分区,则可能会检测到这种情况,并且您会得到例外情况。

所以我认为你需要重新考虑当前的设计。