使用Redis Pub/Sub使两个不同机器上的微服务相互通信

umuewwlo  于 2022-10-31  发布在  Redis
关注(0)|答案(1)|浏览(206)

我有两个不同的微服务和一个API网关。都托管在不同的机器上。我希望这两个微服务使用Redis Pub/Sub相互通信。
当所有微服务都托管在同一台机器上时,我可以让它们相互交谈,但当它们托管在不同的机器上时,我无法让它们相互交谈。
目前,我正在使用以下代码使它们在同一台机器上与其他主机通信

订阅者

const client = redis.createClient();
    const subscriber = client.duplicate();
    await subscriber.connect();

    await subscriber.subscribe('user-notify', (message) => {
        console.log('user-notify', message);
    });

出版者

const publisher = redis.createClient();

    await publisher.connect();
    publisher.publish("user-notify", "Server Started");
vsikbqxv

vsikbqxv1#

为了解决这个问题,我将redis安装到服务器上,并将主机和端口作为参数传递给redis.createClient();
对于Eg,
假设redis服务器的ip是17.52.123.12,post是5556

订阅者

const client = redis.createClient(
         host: '17.52.123.12',
         port: '5556'
    );
    const subscriber = client.duplicate();
    await subscriber.connect();

    await subscriber.subscribe('user-notify', (message) => {
        console.log('user-notify', message);
    });

出版者

const publisher = redis.createClient(
         host: '17.52.123.12',
         port: '5556'
    );

    await publisher.connect();
    publisher.publish("user-notify", "Server Started");

相关问题