본문 바로가기

인생은 실전23

[오류 해결] Shutdown broker because all log dirs in /tmp/kafka-logs have failed (kafka.log.LogManager) ◈ 오류 내용 1. 리눅스(저는 WSL 사용)에서 카프카를 실행하였을 경우 주키퍼는 살아있는데 카프카만 갑자기 죽어버리는 현상 발생. 2. 카프카 서버 로그를 보면 아래와 같은 오류 문구 확인 가능 - ERROR Error while rolling log segment for [ 토픽 명 ] in dir /tmp/kafka-logs (org.apache.kafka.storage.internals.log.LogDirFailureChannel) java.io.IOException: Invalid argument - ERROR Shutdown broker because all log dirs in /tmp/kafka-logs have failed (kafka.log.LogManager) ◈ 오류 원인 1. K.. 2024. 3. 14.
[Kafka] 리눅스에서 카프카 통신 연습하기 - ② : Windows Server 2019에서 WSL을 사용하여 리눅스에 카프카 설치하기 Windows Server 2019에서 WSL을 사용하여 리눅스에 카프카 설치하기 본 글은 실제로 수행했던 과정을 기록해둔 글로써 다른 작업 환경이나 시스템 구성일 경우 정상적으로 동작하지 않을 수 있습니다. 오로지 참고용으로만 보기를 권장하며 추가로 아래에는 실제로 작업했던 Windows 사양을 명시하오니 참고 바랍니다. - Windows Server 2019 Standard - Version : 1809 - OS Build : 17763.5458 2023.12.20 - [인생은 실전/Kafka] - [Kafka] 리눅스에서 카프카 통신 연습하기 - ① : Hyper-v에서 Linux 설치 하기 [Kafka] 리눅스에서 카프카 통신 연습하기 - ① : Hyper-v에서 Linux 설치 하기 리눅스에서 .. 2024. 3. 12.
[C#] TCP - 비동기로 TCP 원격 호스트 연결 상태 확인하기 / TcpClient.BeginConnect / ManualResetEvent.WaitOne / ManualResetEvent.Set TCP - 비동기로 TCP 원격 호스트 연결 상태 확인하기 Kafka나 RabbitMQ 등 여타 다른 미들웨어는 대부분 TCP/IP 통신을 통해 데이터를 주고 받는다. 따라서 통신을 위해 사전에 해당 호스트와 TCP 연결하기 전에 상대 네트워크의 상태를 확인해주는 로직을 필요로 하는 경우가 있다. (연결이 되어 있지도 않은데 무작정 Kafka 설정을 한다거나 데이터를 보낼순 없으니까..😂) 따라서 각 Driver의 인스턴스를 생성하고 안에 Connect 메서드를 호출할때 if문을 통해 네트워크 상태를 확인한다. if(CheckNetworkState()){ Driver Setting Event 연결 Timmer 실행 등 Driver 연결에 대한 주요 로직 } 이럴때 쓰기 좋은게 TcpClient.Begin.. 2024. 1. 26.
[Kafka] 리눅스에서 카프카 통신 연습하기 - ① : Hyper-v에서 Linux 설치 하기 리눅스에서 카프카 통신 연습하기 - ① : Hyper-v에서 Linux 설치 하기 본 글은 Kafka 통신 실습 과정을 기록하기 위한 글로 다소 두서가 없으며, 내용에 알맹이가 없을 수 있으니 유의하시길 바랍니다. 이번 테스트의 궁극적인 목적은 회사 - 집(VM : 카프카서버) - 집(Host) 구성에서 카프카 통신을 수행하기 위함이다. 시작은 VM을 한개만 구성해서 카프카 서버를 하나만 두고 해볼것이며, 궁극적으로는 다수의 카프카 서버(VM으로 구성)를 구성해서 외부 네트워크와 메세지 통신을 수행하고자 한다. 1. Hyper-v를 이용해서 새 가상 컴퓨터 만들기 1️⃣ 배치파일을 통해 Window11 Home에서 Hyper-v 기능 활성화 집에서 사용하는 OS는 Window11 home 버전으로 기본적.. 2023. 12. 20.
[WPF] Data Binding - ④ : MVVM 형태로 KeyDown 이벤트 사용하기 / ICommand / InputBindings Data Binding - ④ : MVVM 형태로 KeyDown 이벤트 사용하기 윈폼에서 Event를 처리하는 방법은 매우 간단합니다. Event를 처리하고자 하는 컨트롤에 Event를 연결하고 비하인드 코드에서 이벤트가 호출되면 처리하는 코드를 구현하면 되기 때문입니다. 하지만 WPF의 MVVM 형태로 따른다면 View의 비하인드 코드부에는 별다른 코드가 없고 ViewModel과의 바인딩을 통해 Event를 처리해야 합니다. 2022.11.25 - [인생은 실전/C#] - [WPF] Data Binding - ① : 데이터 바인딩(Data Binding) 기초 / 데이터 컨텍스트(Data Context) 속성 [WPF] Data Binding - ① : 데이터 바인딩(Data Binding) 기초 / .. 2023. 6. 24.
[LinqToDB] LinqToDB - ② : LINQ 데이터베이스 액세스 라이브러리를 사용해 DB에 연결하기 LINQ 데이터베이스 액세스 라이브러리를 사용해 DB연결 지난 시간에 T4 텍스트 템플릿을 사용해서 DB에 있는 스키마 들을 C# 클래스 형태로 생성해보았습니다. 2023.01.26 - [인생은 실전/C#] - [LinqToDB] LinqToDB - ① : T4 텍스트 템플릿을 사용해서 C# POCO 개체 생성하기 [LinqToDB] LinqToDB - ① : T4 텍스트 템플릿을 사용해서 C# POCO 개체 생성하기 T4 텍스트 템플릿(Text Template)을 사용해서 C# POCO 개체 생성 T4??? POCO 개체?? 다소 생소한 용어가 많습니다. 🟢 T4 : Text Template Transformation Toolkit의준말 (코드를 생성해주는 도구) 🟢 POCO : Plain Old CL.. 2023. 2. 3.
[LinqToDB] LinqToDB - ① : T4 텍스트 템플릿을 사용해서 C# POCO 개체 생성하기 T4 텍스트 템플릿(Text Template)을 사용해서 C# POCO 개체 생성 T4??? POCO 개체?? 다소 생소한 용어가 많습니다. 🟢 T4 : Text Template Transformation Toolkit의준말 (코드를 생성해주는 도구) 🟢 POCO : Plain Old CLR Objects, MS 측에서는CLASS로정의 궁극적으로 제가 공부할 내용은 1️⃣T4 텍스트 템플릿을 사용해서 데이터베이스에 접근하여 해당 테이블과 열에 대한 정보를 C# 클래스 형태의 코드(POCO 개체)로 만들고, 2️⃣만들어진 코드를 활용해서 LinqToDB 라는 라이브러리를 사용해 데이터베이스에 쉽게 접근하고 가공해보도록 하겠습니다. 따라서 이번 시간에는 T4 텍스트 템플릿을 사용해서 데이터베이스에 있는 테이.. 2023. 1. 26.