Skip to content

kangdaeho99/kafka-and-Spring-WebSocket-with-StompJS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 

Repository files navigation

🏫 Kafka와 Spring 을 활용하여 양방향 통신 구현

Spring WebSocket과 Kafka, SockJS, StompJS를 활용하여 양방향 통신 프로그램을 만들어보았습니다.

프로젝트 기획의도

  • 채팅프로그램에서 채팅 메세지들을 카프카 브로커 1대에 주키퍼가 관리하도록 하여 데이터를 분산시켜 처리하여 서버과부하를 막고, 서버안정성을 높이기 위한 방안 중 하나인 Kafka에 대해 알아보고자 만들어보았습니다.
  • AWS 프리티어 할당문제로 카프카 브로커는 1대만 올렸습니다.
  • Spring WebSocket, Kafka, SockJS, StompJS를 함께 사용해봅니다.

개발목표

  • AWS EC2 에 AML 환경을 통해 Kafka와 Zookeeper를 배포시킵니다.
  • Spring Kafka를 Java Configuration으로 연동합니다.
  • Spring Kafka와 WebSocket을 연동합니다.

개발과정

  • Kafka란 무엇인가?에 대하여 알아보고자 Kafka 레퍼런스를 참조했습니다.
  • Kafka를 Spring FrameWork with Java Configuration 환경에서 실행해보고자 Spring-Kafka QuickTour 레퍼런스를 참조하여 구현해보았습니다.
  • WebSocket with STOMP, SOCKJS 같은경우 이전에 구현경험이 있어 구현했습니다.
  • AWS의 인바운드, 아웃바운드 설정을 통해 서버에 접속할 수 있습니다.
  • AWS에서 Kafka 실행시 접속포트, 접속IP 설정(config)파일, Zookeeper 실행시 접속포트, 접속IP 설정(config)을 통해 서버에 접속할 수 있습니다.

WebSocket & Kafka 구성도

  • WebSocket With Stomp와 Kafka가 함께 사용될때의 구성도입니다.


카프카 구성도

  • 카프카 구성도입니다. AWS 프리티어로 1대로 구현했습니다.

📜 기술 스택

프론트엔드 기술스택은 다음과 같습니다.

  • HTML/CSS, JAVASCRIPT

백엔드 기술스택은 다음과 같습니다.

  • java 1.8
  • Spring Framework 5.0.7
  • Spring WebSocket (TCP Connection)
  • SockJS (WebSocket Emulation)
  • STOMPJS (Message Broker)
  • Kafka 1.0 (Message Broker)

인프라 구조는 다음과 같습니다.

  • Spring Framework with Github Actions
  • AWS EC2 AML, Kafka, ZooKeeper

🐕‍🦺 실행이미지


[step 0].WebSocket 양방향 통신 확인을 위한 브라우저 크롬 1개, Internet Explorer 1개를 킵니다.

[step 1].메세지를 보내고자 하는자가 “Message Check! I am sending it!”라고 발송합니다.

[step 2].두개에 같은 메세지가 뜨는지 확인합니다.

[step 3]. Kafka에 값이 올바르게 들어갔는지 확인합니다.

About

Kafka와 Spring WebSocket with SockJS, STOMPJS를 활용하여 만들어본 양방향 통신프로그램 저장소입니다.

Resources

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages