vertx的学习总结3

简介: 本文介绍了Vert.x中的Event Bus及其通信机制,包括点对点、请求-应答和发布-订阅三种通信模式的示例代码,以及如何在不同节点间使用Event Bus进行通信。

一、event bus是什么

各个verticle的通信

二、point-to-point, request-reply, publish/subscribe 通过 the event bus

例题一:点对点

package eventBus;

import io.vertx.core.AbstractVerticle;
import io.vertx.core.Vertx;

public class EventBusExample extends AbstractVerticle {

    public static void main(String[] args) {
        Vertx vertx = Vertx.vertx();
        vertx.deployVerticle(new EventBusExample());
    }

    @Override
    public void start() {
        vertx.eventBus().consumer("example.address", message -> {
            System.out.println("Received message: " + message.body());
            message.reply("Replying to the message");
        });

        vertx.eventBus().send("example.address", "Hello Vert.x");

    }
}

例题二:请求-应答

例题三:发布订阅

Send.java

package eventBus.pointTopoint;

import io.vertx.core.AbstractVerticle;
import io.vertx.core.eventbus.EventBus;

public class Send extends AbstractVerticle {
    @Override
    public void start() throws Exception {
        EventBus bus=vertx.eventBus();
        bus.publish("my.update","我怀疑是异步的,所以会sleep1000");
    }
}

Comsumer.java

package eventBus.pointTopoint;

import io.vertx.core.AbstractVerticle;
import io.vertx.core.eventbus.EventBus;

public class Comsumer extends AbstractVerticle {
    @Override
    public void start() throws Exception {
        EventBus bus = vertx.eventBus();
        bus.consumer("my.update",str->{
            String sty=(String) str.body();
            System.out.println(sty);
        });
    }
}

main.java

package eventBus.pointTopoint;

import io.vertx.core.Vertx;

public class Main {
    public static void main(String[] args) {
        Vertx vertx=Vertx.vertx();
        vertx.deployVerticle(new Comsumer());

        vertx.deployVerticle(new Send());

    }
}

我们之前用的都是在同一个本地的jvm,现在我们考虑一下不在本地的情况,使用节点管理器

目录
相关文章
|
存储 SQL 关系型数据库
|
前端开发 Java API
vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
本文是Vert.x学习系列的第五部分,讨论了回调函数的限制、Future和Promise在异步操作中的应用、响应式扩展以及Kotlin协程,并通过示例代码展示了如何在Vert.x中使用这些异步编程模式。
332 5
vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
|
9月前
|
网络协议 网络安全
华为openEuler欧拉系统的防火墙常用设置方法
在有防火墙的系统中,比如我们部署了一个WEB项目,我们需要给该WEB项目所需的端口放行。本文介绍了防火墙常用设置方法。
1556 81
|
8月前
|
消息中间件 存储 算法
一文详解 RocketMQ 如何利用 Raft 进行高可用保障
一文详解 RocketMQ 如何利用 Raft 进行高可用保障
312 1
|
12月前
|
Java UED Spring
Springboot通过SSE实现实时消息返回
通过Spring Boot实现SSE,可以简单高效地将实时消息推送给客户端。虽然SSE有其限制,但对于许多实时消息推送场景而言,它提供了一种简洁而强大的解决方案。在实际开发中,根据具体需求选择合适的技术,可以提高系统的性能和用户体验。希望本文能帮助你深入理解Spring Boot中SSE的实现和应用。
5635 1
|
前端开发 Java
vertx的学习总结2
本文是关于Vert.x的学习总结,包括Verticle的概念、如何编写和部署Verticle、Vert.x的线程模型,以及如何传递配置参数。
168 2
vertx的学习总结2
|
消息中间件 Java
【实战揭秘】如何运用Java发布-订阅模式,打造高效响应式天气预报App?
【8月更文挑战第30天】发布-订阅模式是一种消息通信模型,发送者将消息发布到公共队列,接收者自行订阅并处理。此模式降低了对象间的耦合度,使系统更灵活、可扩展。例如,在天气预报应用中,`WeatherEventPublisher` 类作为发布者收集天气数据并通知订阅者(如 `TemperatureDisplay` 和 `HumidityDisplay`),实现组件间的解耦和动态更新。这种方式适用于事件驱动的应用,提高了系统的扩展性和可维护性。
281 2
|
网络协议 Java 微服务
Spring Boot中集成RSocket实现面向服务的通信
Spring Boot中集成RSocket实现面向服务的通信
|
前端开发 JavaScript Java
模板引擎(Template Engine)是什么?
模板引擎(Template Engine)是一种用于生成文本输出的工具,尤其在Web开发中应用广泛。它的主要目的是将用户界面(通常是HTML等模板文件)与业务数据(内容)分离,从而提供一种高效、灵活的方式来生成动态内容。
1161 1
|
消息中间件 Java Maven
如何在Java中使用RabbitMQ
如何在Java中使用RabbitMQ