Hazelcast下实现一个有初始容量的LinkedBlockingQueue

发布于 2021-11-22 20:06:45 字数 161 浏览 821 评论 9

Hazelcast下能直接利用instance.getQueue("myQueue");方法获取一个Distributed Queue,但是目前由于业务需要能获取到一个能初始化容量(capacity)的LinkedBlockingQueue用于cluster间。

希望大虾们给点指导。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

陌上芳菲 2021-11-29 05:16:44

hz:queue name="task_one*" max-size="100" hz:queue name="task_two*" max-size="200"

少女净妖师 2021-11-29 05:14:47

请参考评论,OSC的评论禁止了一些特殊字符

沦落红尘 2021-11-29 05:10:43

先设定这样的模板, IQueue queue = hazelcastInstance.getQueue("task_two_xxxx"); 这个Queue的maxSize就是200 这应该是一个“不完全”的解决方案。但应该是比较简单有效的方式。 Hazelcast没有留更灵活的API接口,他内部是使用QueueConfig来做的,但是初始化较复杂。 建议不要Hack他代码

绝情姑娘 2021-11-29 04:56:44

嗯 这样是可以创建一个初始容量的Queue,但是我这边在某些业务情况下需要更改这个容量,而不是在配置文件中设置定死;不知道可不可以动态的设置配置文件中的参数?

冷清清 2021-11-29 00:20:47

<hz:queue name="task_one*" max-size="100"/> <hz:queue name="task_two*" max-size="200"/> 先设定这样的模板, IQueue queue = hazelcastInstance.getQueue("task_two_1"); 这个Queue的maxSize就是200

孤檠 2021-11-29 00:16:10

Hazelcast支持按照模板来创建对象,如下: IQueue queue = hazelcastInstance.getQueue("task_two_1"); 这个Queue的maxSize就是200。 这应该是一个“不完全”的解决方案,不了解你的具体业务,什么场景下需要精确的指定Q的size呢?

霞映澄塘 2021-11-28 22:33:30

配置文件中只能指定最大最小容量吧,我的Queue还需要根据一定的业务在运行中根据新的容量重新创建。

嘦怹 2021-11-27 10:43:51

明天我用config api试试,然后回复哈~

筱果果 2021-11-26 23:06:54

用配置文件声明就可以了吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文