본문 바로가기

JAVA

[java] Redis pub/sub을 이용한 IPC

 

Java와 C언어의 프로세스간 통신을 Redis Pub / Sub 기능을 활용하여 통신 해 보도록 한다

(잘 되겠지만 그냥 해봄)

 

Java는 jedis-2.7.2.jar 를 사용하고, Window 환경에서 테스트하였고

C 프로그램은 hiredis 를 사용하고, Centos 환경에서 테스트한다.

(Windows 환경에서 컴파일 및 실행 가능하다고 한다 https://yoonbh2714.blogspot.kr/2015/10/hiredis-for-windows.html)

 

 

내 PC(Java Process) <--------------->원격지 서버 1( Redis )<--------------->원격지 서버2(C Process)

 

 

Java 프로그램

 

 

참고로 subscribe 관련 함수는 blocking method임으로 스레드로 처리하던지

 

publish 할 때는 아래 함수를 사용한다

jedis.publish("channel", "message");

 

 

C 프로그램

 

 

 

 

위 소스와 같이 퍼블리쉬 또한  redisAsyncCommand 함수를 통해 가능하다

redisAsyncCommand(c, onMessage, NULL, "publish 1.2.3.4.* test");

 

컴파일을 아래와 같이...

 

 

테스트는 각 프로그램에서 publish 하면 등록한 채널에 따라 메시지를 출력 할 수 있는지를 확인

 

간단하게 끗..