0
看最新的Hazelcast文档,hazelcast交易通知
假设有一个Hazelcast地图和集合,并且我们执行一个更新它们两个的交易。现在,考虑一个监听器需要根据映射和集合的一致视图执行某些操作的问题,但只需要在事务发生时执行一次操作。
有没有一种好的方法来实现这种回调机制的榛树交易?有没有固有的支持,或者这是需要在客户端完成的事情?
看最新的Hazelcast文档,hazelcast交易通知
假设有一个Hazelcast地图和集合,并且我们执行一个更新它们两个的交易。现在,考虑一个监听器需要根据映射和集合的一致视图执行某些操作的问题,但只需要在事务发生时执行一次操作。
有没有一种好的方法来实现这种回调机制的榛树交易?有没有固有的支持,或者这是需要在客户端完成的事情?
我不知道是否有事务侦听器。但是,我认为对于您的transaction
示例topics
是您想要的机制。
设置话题听众
// setup on client 2
// define...
// class Topic1Event ...
// class Topic1Listener implements MessageListener<Topic1Event> ...
HazelcastInstance hc2;
hc2.getTopic("topic1").addMessageListener(new Topic1Listener)
然后交易
// client 1
HazelcastInstance hc1;
TransactionContext tc1= hc1.newTransactionContext
tc1.beginTransaction
tc1.getMap("map1").set("key1", "value1")
tc1.getSet("set1").add("value2")
tc1.commitTransaction
// TransactionContext doesn't have getTopic
hc1.getTopic("topic1").publish(new Topic1Event)
!上面的伪代码 - 不会编译!
因此,您可以通过map
或set
上的听众来完成,但这可能会掩盖您的意图。例如,稍后您的代码可能会演变为拥有更多集合并删除您附加侦听器的集合。那么你有一个错误。
如果您有一个主题,现在您甚至可以使用您的Topic1Event来传递事务序列号或其他元信息。
EDITED:TransactionContext
没有getTopic