NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Java 윈도우에 카프카 설치 및 테스트 하기. (Installing Kafka on Windows.)

    페이지 정보

    본문

    MPA 또는 OEE(Overall Equipment Effectiveness, 설비 종합 효율)라고 부르는 프로젝트를 진행중입니다. MPA보다는 OEE가 더 익숙할거예요. 아무튼, OEE를 하기 위해 설비로부터 데이타를 안정적으로 수신할 수 있어야 합니다. 그래서, 서버와 장비간의 트랜젝션 처리(보상 트렌잭션이라고도 함)에 카프카(Kafka)를 이용합니다. 뭐~ TibRV를 더 많이 사용하긴 하지만요. 이런 종류의 API들은 대부분 ActiveMQ, RabbitMQ등등... 메세지 버스 미들웨어를 주로 사용합니다. 아무튼, 카프카가 결합도도 낮고 속도가 빠르다고 해서 많이 도입하고 있는 추세인건 맞는거 같습니다. 아래 링크에서 카프카를 다운로드 하세요.

    [ 카프카 다운로드 ]

    mxq2pyn.png

     

     

    적당한 위치에 압축을 풀어준 후 bin/windows 폴더로 이동합니다. 윈도우 배치 파일(bat)이 많이 보일겁니다.

    M7pKm9y.png

     

     

    편의를 위해 이 폴더를 E드라이브로 옮겨 두었고, 폴더명에서 버전은 버렸습니다. 

    CNx8Tby.png

     

     

    카프카를 실행하기 전에 간단한 개념 정도는 알고 가는게 좋을듯 합니다. 저도 인터넷을 찾아보면서 정리하는 내용입니다. 당연히 오류가 있을 수 있습니다^^; 카프카에서 브로커(Broker)는 카프카 서버를 말합니다. 동일 노드 내에서 여러개의 브로커를 띄울 수 있고, 이렇게 분산된 여러개의 브로커 메세지 큐(Message Queue)를 관리해주는 역할이 주키퍼(Zookeeper)입니다. 카프카를 실행하기전에 주키퍼를 반드시 먼저 실행해야 합니다. CMD를 관리자 권한으로 실행하세요. 카프카가 있는 위치로 이동합니다.

    E:\kafka\bin\windows
    e:

    GugDqTP.png

     

     

    주키퍼를 실행하세요. Windows 보안 경고가 표시되면, 액세스 허용을 클릭 해줍니다.

    zookeeper-server-start.bat ../../config/zookeeper.properties

    iHR2GIv.png

     

     

    CMD를 하나 더 실행해서 위와 동일하게 카프카 서버를 실행 해줍니다.

    kafka-server-start.bat ../../config/server.properties

     

    여기서 주의할점은 주키퍼와 카프카를 실행한 CMD 창을 닫으면 안된다는 것입니다. 이 창을 닫으면 서버도 같이 죽기 때문에 실행 상태로 두어야 합니다. 또한, Ctrl+C를 눌러서 중지시켜도 안됩니다. 주키퍼와 카프카가 실행중인지 확인 해볼까요? CMD를 하나 더 열고, 아래 명령을 실행합니다.

    netstat -a

    GnEL07w.png

     

     

    주키퍼는 2181 포트를 사용하고, 이 정보는 properties 파일에서 확인이 가능합니다. 카프카는 9092 포트를 사용하고 정보 확인은 동일합니다.

    # the port at which the clients will connect
    clientPort=2181

     

    이렇게해서 카프카 설치를 완료 했습니다. 정상 동작하는지 확인을 해봐야겠죠? Publisher(게시자), Subscriber(구독자) 컨셉에 맞게 Topic을 생성하고 Topic에 메세지를 보낸 후 이 메세지를 가져오는 방법을 알아보도록 하겠습니다. 새로운 CMD를 열고, 카프카에 새로운 토픽을 생성 해줍니다.

    kafka-topics.bat --create --topic ngm-topic --bootstrap-server localhost:9092 --replication-factor 1 --partitions 4

    KObDiYe.png

     

     

    생성한 토픽에 메세지를 보내려면 프로듀서(Producer)를 사용합니다. 토픽을 열고, 메세지를 보냅니다. 컨슈머(Consumer)가 봐주기를 바라고 메세지를 쓰는 것입니다. 계속해서 메세지를 보낼 수 있습니다. 일단 아래와 같이 토픽을 열고, 메세지를 써보세요.

    kafka-console-producer.bat --broker-list localhost:9092 --topic ngm-topic

    t38NiAF.png

     

     

    컨슈머를 이용해서 토픽에 있는 메세지를 가져오도록 합시다~ 새로운 CMD를 하나 더 만들고, 아래와 같이 컨슈머를 실행 해주세요. --from-beginning 옵션은 기존에 발행한 메세지도 모두 가져오도록 합니다. 그래서, 아래 그림과 같이 컨슈머를 나중에 실행해도 모든 메세지를 가져오게 됩니다.

    kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic ngm-topic --from-beginning

    pIjb7mx.png

     

     

    프로듀서에 메세지를 보내면, 아래 컨슈머가 받는걸 알 수 있습니다.

    LAG8f2V.gif

     

     

    제가 일하는 쪽은 대부분 TibRV(랑데뷰, Rendezvous)를 사용하고 있는데요. 이게 너무 비싸다보니 ActiveMQ나 ZeroMQ, RabbitMQ, AmazonMQ와 같은 무료 미들웨어를 사용합니다. 웹쪽은 대부분 카프카(Kafka)를 이용하는거 같네요. 시대 흐름에 맞게 학습해야 할 내용도 점점 많아지고, 예전에 잘 사용하던 기술들이 쓸모 없어지는 상황도 계속해서 발생합니다. 공부를 멈추면... 더이상 개발자를 할 수 없는 환경인거 같아요^^;

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.