0

I have two diiferent microserivice and one API Gateway. All hosted on different machine. I want both microservice communicate with each other using Redis Pub/Sub.

I am able to make them talk to each other while all the microservice are hosted on same machine but I am not able to make them talk with each other while they are hosted on different machines.

Currently I am making them communicate with other while hosted on same machine using the following code

Subsciber

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

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

Publisher

    const publisher = redis.createClient();

    await publisher.connect();
    publisher.publish("user-notify", "Server Started");
Tushar Sureka
  • 111
  • 1
  • 1
  • 9

1 Answers1

0

In order to solve this I am installing redis to server and passing the host and port as args to redis.createClient();

For Eg,

Let's say the ip of redis server is 17.52.123.12 and post is 5556

Subsciber

    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);
    });

Publisher

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

    await publisher.connect();
    publisher.publish("user-notify", "Server Started");
Tushar Sureka
  • 111
  • 1
  • 1
  • 9