springboot를 kafka와 통합하는 방법을 가르쳐주세요

이 기사는 Huawei Cloud 커뮤니티 " springboot+kafka 시작하기 ", 저자: QGS 에서 공유되었습니다 .

카프카 설치

Kafka 로컬 환경을 시작하려면 Java 8 이상이 필요합니다.

Kafka는 웹사이트에서 소비자의 모든 액션 스트리밍 데이터를 처리할 수 있는 처리량이 높은 분산형 게시-구독 메시징 시스템입니다.

Kafka 시작 방법에는 Zookeeper와 Kraft가 포함됩니다. 두 가지 시작 방법 중 하나만 선택할 수 있으며 동시에 사용할 수 없습니다.

카프카 다운로드 https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz

tar -xzf kafka_2.13-3.7.0.tgz 압축 풀기

1. Zookeeper가 Kafka를 시작합니다(kafka에는 사육사가 내장되어 있습니다).

Kafka는 Zookeeper에 의존합니다.

1. 주키퍼 시작 2. 카프카 시작

Kafka 자체 Zookeeper 사용 시작

./zookeeper-server-start.sh ../config/zookeeper.properties &

./zookeeper-server-stop.sh ../config/zookeeper.properties

./kafka-server-start.sh ../config/server.properties &

./kafka-server-stop.sh ../config/server.properties

2. Zookeeper 서버가 Kafka를 시작합니다.

사육사 서버 설치

https://zookeeper.apache.org/

https://dlcdn.apache.org/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz

tar zxvf apache-zookeeper-3.9.2-bin.tar.gz

Zookeeper 서버 구성

cp Zoo_sample.cfg 동물원.cfg

주키퍼 서버 시작

./zkServer.sh 시작

Zookeeper 포트 수정

Zoo.cfg에 콘텐츠 추가

admin.serverPort=8099

apache-zookeeper-3.9.2-bin/bin 디렉토리에서 Zookeeper를 다시 시작하십시오.

Zookeeper 서버가 Kafka를 시작합니다.

/opt/kafka_2.13-3.7.0/bin 디렉토리

./kafka-server-start.sh ../config/server.properties &

Kafka 구성 파일 server.properties

3. KRaft를 사용하여 Kafka 시작

UUID 범용 고유 식별자(Universally Unique Identifier)

1, 생성 Cluster UUID(집군 UUID):./kafka-storage.sh random-uuid

2. kafka 로그 디렉터리 형식을 지정합니다. ./kafka-storage.sh format -t 3pMJGNJcT0uLIBsZhbucjQ -c ../config/kraft/server.properties

3. kafka 시작: ./kafka-server-start.sh ../config/kraft/server.properties &

springboot는 카프카를 통합합니다

주제를 생성할 때 주제에 대한 파티션 수를 지정하지 않으면 기본값은 1개의 파티션입니다.

server.properties 파일 수정

왜냐하면 server.properties

청취자=PLAINTEXT://0.0.0.0:9092

Advertising.listeners=PLAINTEXT://192.168.68.133:9092

springboot는 kafka에 대한 종속성을 추가합니다.

<의존성>
<groupId>org.springframework.kafka</groupId>
<artifactId>스프링 카프카</artifactId>
</의존성>

spring-kafka 종속성을 추가한 후 springboot는 kafkaTemplate의 빈을 자동으로 어셈블합니다.

application.yml은 kafka에 대한 연결을 구성합니다.

봄:
카프카:
부트스트랩 서버: 192.168.68.133:9092

생산자

메세지를 보내다

@자원
개인 KafkaTemplate<String,String> kafkaTemplate;

@시험
무효 kafkaSendTest(){
kafkaTemplate.send("kafkamsg01","안녕 카프카");
}

소비자

메시지를 받다

@요소
공개 클래스 KafkaConsumer {

@KafkaListener(topics = {"kafkamsg01","test"},groupId = "123")
공공 무효 소비(문자열 메시지){
System.out .println ("메시지 수신: "+메시지);
}

}

그룹 ID가 구성되지 않은 경우

Bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'를 시작하지 못했습니다. 중첩된 예외는 java.lang.IllegalStateException입니다. 소비자 구성, 컨테이너 속성 또는 @KafkaListener 주석에 group.id가 없습니다. 그룹 관리를 사용하는 경우 group.id가 필요합니다.

@요소
공개 클래스 KafkaConsumer {

@KafkaListener(topics = {"kafkamsg01","test"},groupId = "123")
공공 무효 소비(문자열 메시지){
System.out .println ("메시지 수신: "+메시지);
}

}

화웨이 클라우드의 신기술에 대해 빨리 알아보고 팔로우하려면 클릭하세요~

Microsoft의 중국 AI 팀은 수백 명의 사람들을 모아 미국으로갔습니다. 알려지지 않은 오픈 소스 프로젝트는 얼마나 많은 수익을 가져올 수 있습니까? Huawei는 공식적으로 Yu Chengdong의 위치가 화중 과학 기술 대학의 오픈 소스 미러 스테이션 으로 조정되었다고 발표했습니다. 사기꾼들이 TeamViewer를 사용해 외부 네트워크 접속을 공식적으로 개시했습니다 ! 원격 데스크톱 공급업체는 무엇을 해야 합니까? 최초의 프런트 엔드 시각화 라이브러리이자 Baidu의 유명한 오픈 소스 프로젝트 ECharts의 창립자 - "바다에 나간" 유명한 오픈 소스 회사의 전직 직원이 소식을 전했습니다. 리더는 격노하고 무례하게 행동하여 임신한 여성 직원을 해고했습니다. OpenAI는 AI가 포르노 콘텐츠를 생성하도록 허용하는 것을 고려했습니다. Microsoft는 Rust Foundation에 100만 달러를 기부했다고 보고했습니다. 여기서 time.sleep(6)의 역할은 무엇입니까? ?
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/4526289/blog/11140692