lettuce2_pubsub
Lettuce Pub/Sub
Redis Developer Course | Redis Technical Support | Redis Enterprise Server |
---|
Lettuce Pub/Sub
- Publish connection과 Subscribe connection을 구분해서 사용합니다.
같은 connection에서 subscribe를 사용하는 중에 publish를 실행하면 아래과 같은 Runtime Error가 발생합니다.
Command PUBLISH not allowed while subscribed.
Allowed commands are: [PSUBSCRIBE, QUIT, PUNSUBSCRIBE, SUBSCRIBE, UNSUBSCRIBE, PING]] - 일반 연결(StatefulRedisConnection)로 publish 명령을 사용할 수 있으나, Publish connection(StatefulRedisPubSubConnection)으로 사용할 것을 권장합니다.
- Redis Standalone 일 경우 Application 실행 중 서버가 다운되었다, 다시 시작하면
Lettuce에서 자동으로 subscribe 명령을 다시 실행해서 등록합니다.
- Master/Replica 구성에서 Subscribe(등록)는 Failover 시 새 마스터에 자동으로 전파(등록)되지 않습니다. 새로 Subscribe(등록)해야 합니다.
- Sentinel 구성에서 Failover 시 Lettuce가 자동으로 새 마스터에 Subscribe(등록)를 실행합니다.
사용(실행) 순서
- http://localhost:8080/pubsubAddListener
SubConnection -> 리스너(listener)에 RedisPubSubAdapter()을 등록합니다.
redisSubConn.addListener(new RedisPubSubAdapter<String, String>() { ... } - http://localhost:8080/subscribe/ch01
SubConnection -> Subscribe 명령(메서드)를 실행합니다.
redisSubCommands.subscribe(channel);[주의] subscribe()를 while(true) 안에 두지 마세요.
레디스에서 subscribe는 등록하는 것으로 한 번만 실행하면 됩니다.
소스 코드에 해당 설명이 조금 더 자세히 있습니다. - http://localhost:8080/publish/ch01:Hello
PubConnection -> Publish 명령(메서드)를 실행합니다.
redisCommands.publish(channel, message);
1. Java Publish/Subscribe Source
Java Lettuce를 사용한 Publish/Subscribe 명령 사용법입니다.
Publish/Subscribe Source
Redis10_PubSub.java
각 명령(메서드) 별 표시
SUBSCRIBE
PSUBSCRIBE
PUBLISH
PUBSUB channels
PUBSUB numsub
PUBSUB numpat
<< Pipelining | Pub/Sub | Master/Replica >> |
---|
Email
답글이 올라오면 이메일로 알려드리겠습니다.