应用内部通讯

更新时间:

本章将为您介绍如何在一个应用中实现多个节点间的通讯

服务名称的定义

image.png在应用配置中每个节点都有一个配置项服务名称,服务名称是您对一个节点的名称描述,也是内部节点路由的一个名称。

能力说明

image.png这里通过一个具体case来阐述内部通讯的机制,假设我们有一个停车管理应用,他是由3个节点组成(tomcat节点提供Web服务及业务逻辑,MySQL节点用于存储数据,redis节点用于缓存数据)tomcat的Java代码需要通过jdbc连接上MySQL服务才能完成数据库的访问,这里以一段伪代码来说明

public static String HOST = "mysql";
public static String PORT = "3306";
public static String DATABASE_NAME = "mysql";
public static String USER_NAME = "user";
public static String PASSWORD = "Tjsh2K22";

public static Connection getConn() throws Exception {
    Class.forName("com.mysql.jdbc.Driver");
    System.out.println("成功加载驱动");

    String url = "jdbc:mysql://" + HOST + ":" + PORT + "/" + DATABASE_NAME + "?user=" + USER_NAME + "&password=" + PASSWORD + "&useUnicode=true&characterEncoding=UTF8";
    Connection connection = DriverManager.getConnection(url);
    System.out.println("成功获取连接");
    return connection;
}

从上面的应用配置和代码中可以看到,以往URL的组成中的HOST一般是固定IP/域名,一旦容器化之后HOST即为需要访问的节点的服务名称