标签: vertx-eventbus

Vertx 集群事件总线不会删除 kubernetes 滚动部署上的旧节点

我有两个在集群中运行的 vertx 微服务,并使用内部云中的无头服务(链接)相互通信。每当我进行滚动部署时,我都会面临服务内的连接问题。当我分析日志时,我可以看到旧节点/pod 正在从集群列表中删除,但事件总线没有删除它并在循环的基础上使用它。

以下是部署前的成员组信息

    Member [192.168.4.54]:5701 - ace32cef-8cb2-4a3b-b15a-2728db068b80        //pod 1
    Member [192.168.4.54]:5705 - f0c39a6d-4834-4b1d-a179-1f0d74cabbce this
    Member [192.168.101.79]:5701 - ac0dcea9-898a-4818-b7e2-e9f8aaefb447      //pod 2
Run Code Online (Sandbox Code Playgroud)

当部署开始时,pod 2 从成员列表中删除,

[192.168.4.54]:5701 [dev] [4.0.2] Could not connect to: /192.168.101.79:5701. Reason: SocketException[Connection refused to address /192.168.101.79:5701]
    Removing connection to endpoint [192.168.101.79]:5701 Cause => java.net.SocketException {Connection refused to address /192.168.101.79:5701}, Error-Count: 5
    Removing Member [192.168.101.79]:5701 - ac0dcea9-898a-4818-b7e2-e9f8aaefb447
Run Code Online (Sandbox Code Playgroud)

并添加了新成员,

Member [192.168.4.54]:5701 - ace32cef-8cb2-4a3b-b15a-2728db068b80
    Member [192.168.4.54]:5705 - f0c39a6d-4834-4b1d-a179-1f0d74cabbce this
    Member [192.168.94.85]:5701 - 1347e755-1b55-45a3-bb9c-70e07a29d55b  //new pod
All migration tasks …
Run Code Online (Sandbox Code Playgroud)

hazelcast vert.x vertx-verticle vertx-eventbus

5
推荐指数
1
解决办法
56
查看次数

您可以在 Quarkus 测试中监视 Vert.x 事件总线吗?

有谁知道在 Quarkus 测试中监视 Vert.x 事件总线的方法吗?理想情况下,我想断言,在服务层中的方法期间,我们将事件发送到正确的地址,但有人知道这是否可能吗?

如果我只是尝试使用@InjectMock我会收到以下错误

io.vertx.core.eventbus.impl.EventBusImpl@5769679b is not a normal scoped CDI bean, make sure the bean is a normal scope like @ApplicationScoped or @RequestScoped
Run Code Online (Sandbox Code Playgroud)

mockito vertx-eventbus quarkus

5
推荐指数
1
解决办法
945
查看次数

Vert.x 事件总线达到限制时的行为

我对事件总线/ Hazelcast 的工作原理缺乏一点了解。

想象一下消费者和生产者 Verticle 通过集群 EB 进行通信的情况。消耗部分是进行CPU/内存/IO密集型计算。

当在某个时刻由于负载而消费者无法立即处理消息时,会发生什么?

消息是否会在环形缓冲区内排队并最终在稍后处理(考虑到 NettySingleThreadEventLoop根据vert.x 中事件总线的大小限制为 20 亿条)?达到上限后会被丢弃吗?

一般来说,只要集群中没有组件崩溃, EB 中的消息是否可以被认为是持久的并且具有传递保证?

hazelcast vert.x vertx-eventbus

4
推荐指数
1
解决办法
1489
查看次数

Vertx的EventBus的send和publish方法之间有什么区别?

我第一次接触Vertx的EventBus,我意识到有两种提交消息的方法。使用了send或publish方法。我想问:使用这两种方法之间的实际区别是什么?在什么情况下它们分别使用?

vert.x vertx-eventbus

1
推荐指数
1
解决办法
164
查看次数