728x90
이전 포스팅 보기 이전에 채팅 시스템에 대해서 위와 같이 WebSocket 방식의 채팅 이면서 메시지는 NoSQL에 저장하는 형태를 고려해봤다.이제, 중간에 Server를 구체화할 예정이다. 무상태 서비스와 상태유지 서비스 구분짓기여러 서비스를 제공하는 서버에 대해서 상태에 따른 서비스를 분류할 필요가 있다.무상태서비스: 로그인, 회원가입, 배치, 공통유틸 등 전통적인 요청/응답 서비스 (클라이언트 상태 관리 X)상태유지서비스: 채팅서비스, 즉 클라이언트와 서버가 네트워크 연결을 유지해야 하는 서비스아래는 이러한 상태에 다른 서비스를 시각화했다.사용자의 요청에 따라 로드밸런서가 각 서버로 요청을 분산시키는 형태다. 이와 반대로, 상태 유지를 하는 채팅 서비스는 별도로 분리되어 로드밸런서의 영향을 받지 ..
> 관련 포스팅(서버 이중화) 요구사항 분석최초에 원한 구조는 위와 같다.클라이언트가 요청을 보내면 L4가 분산(Active-Active)시켜서 서버에 전달하는데, 이때 각 서버는 마찬가지로 이중화된 DB를 선택해서 접근할 것이다.이때, 해당 DB는 최대한 실시간으로 연동되어 데이터 정합성을 유지할 수 있길 원한다그렇다면 나는 mariaDB의 Replication을 어떻게 할지를 고민하면 된다. MariaDB의 Replication 방식 고려하기MriaDB에서 Replication 구성은 다양하다. 그 중 몇 가지만 대표적으로 보면 아래와 같다. AP 서버가 Active-Active 이중화 구성 상태라는 것은이러한 서버의 구성 상태를 더욱 정확히 파악해보자- 부하 균등 분산: 트래픽이 두 서버에 균등하..
이전 작업 바로가기 VirutalBox 조작하기클립보드 공유시키기VirtualBox 이용 시 Ctrl+C,V 를 원활하게 연동하기 위함, 이후 해당 서버 재기동 OpenJDK 설치virutalBox내 우분투에서 jdk 설치를 진행한다sudo apt-get install openjdk-11-jdkjava -version //확인 그다음, virtualBox에서 confluent.io 사이트에 접근해 원하는 Kafka 버전의 Tarball 파일을 다운한 뒤 압축 해제해준다tar -xvf [카프카.tar.gz 경로] Kafka 파일 구경bin 구경하기우선 putty로 접근해서 kafka 경로 내의 파일을 확인해본다bin 경로 내로 들어가면 카프카 기동 명령어 역할을 하는 .sh 파일들을 볼 수 있다이제 곧 [..
메시지큐와 이벤트 스트리밍 플랫폼현대 소프트웨어 아키텍처는 마이크로소프트 방식의 작은 단위들로 구성된다. 그리고 이러한 블록들의 통신을 담당하는 메시지 큐가 존재한다. 대표적으로 아파치 카프카, 아파치 RabbitMA 등이 존재하지만 엄밀히 따지면 아파치 카프카는 이벤트 스트리밍 플랫폼으로 분류된다. 이에 따라 사전에 메시지큐와 이벤트 스트리밍 플랫폼의 차이를 먼저 보면 다음과 같다.상단에 그린 것이 일반적인 메시지 큐다. 하나의 생산자는 메시지를 큐에 보내고, 이 큐로부터 하나의 소비자가 메시지를 처리한다.이와 달리 하단의 이벤트 스트리밍 플랫폼은 하나의 생산자가 메시지를 큐에 보낼 때 다수의 소비자가 각자의 시점에서 데이터를 처리할 수 있다. 메시지큐에 대한 고려사항메시지 큐를 적용할 때 할 수 있는..
사전작업이전 포스팅에서 TrustStore까지 생성시켰다그럼 이제 TrustStore를 배포할 AWS의 특정 경로로 담아주고 SpringBoot에 설정을 진행한다 SpringBoot 설정 작업 진행Application.yml 설정spring: ... kafka: bootstrap-servers: {broker1}:9098, {broker3}:9098, {broker3}:9098 properties: security.protocol: SASL_SSL sasl.mechanism: AWS_MSK_IAM sasl.jaas.config: software.amazon.msk.auth.iam.IAMLoginModule required; sasl.client.callba..
사전 도구- Ubuntu-2004.6-desktop-amd64.iso- VirtualBox.exe 왜 하냐.- Obuntu에 kafka 설치할 예정- Obuntu CLI말고, 개인 PC 로컬로 접근하고자 함- Mtputty를 통해서 주피터, 브로커 1, 2, 3 을 탭별로 편히 관찰하고자 합 1. 우분투 내 패키지 관리 apt-get 업데이트우분투를 포함한 데비안 계열 리눅스 패키지 관리 툴인 apt-get을 업데이트한다sudo apt-get updatesudo apt-get upgradesudo apt install net-toolsifconfig -a // 네트워크 인터페이스 정보 조회 2. VirtualBox에서 고정 IP 설정하기VirtualBox 내의 호스트 네트워크 관리VirtualBox >..