C++ 클라이언트
C++ 클라이언트 (C++ client)
Pulsar C++ 클라이언트를 사용하면 C++에서 Pulsar 프로듀서, 컨슈머, 리더를 만들 수 있어요. C++ 클라이언트의 모든 메서드는 스레드에 안전(thread-safe)해요. C++로 시스템을 개발한다면 Pulsar를 네이티브하게 붙일 수 있는 이 클라이언트가 좋은 선택이에요.
출처: 문서
본문
Pulsar C++ 클라이언트를 사용하면 C++에서 Pulsar 프로듀서, 컨슈머, 리더를 만들 수 있어요. Pulsar C++ 클라이언트의 모든 메서드는 스레드에 안전해요.
시작하기 (Get started)
다음으로? (What's next?)
참고 문서 (Reference doc)
- C++ 클라이언트 API 문서: 클라이언트 구성, 프로듀서 구성, 컨슈머 구성, 리더 구성
- 릴리스 노트
- 코드 예시
- 지원되는 스키마 타입
- 클라이언트 기능 매트릭스
4.0.0 이상 버전의 변경 사항 (Changes for 4.0.0 and later versions)
4.0.0 이상 버전부터는 C++17이 필요해요.
3.0.0 이상 버전의 변경 사항 (Changes for 3.0.0 and later versions)
새 버전의 Pulsar C++ 클라이언트는 3.0.0부터 시작하며, 2.10.x 이후로는 더 이상 Pulsar와 버전이 일치하지 않아요. 최신 릴리스는 Download 페이지를 참고하세요.
3.0.0 릴리스를 예로 들면 다음 하위 디렉터리가 있어요.
apk-arm64: ARM64 아키텍처용 Alpine Linux 패키지apk-x86_64: x64 아키텍처용 Alpine Linux 패키지deb-arm64: ARM64 아키텍처용 Debian 기반 Linux 패키지deb-x86_64: x64 아키텍처용 Debian 기반 Linux 패키지rpm-arm64: ARM64 아키텍처용 RedHat 기반 Linux 패키지rpm-x86_64: x64 아키텍처용 RedHat 기반 Linux 패키지
위의 Linux 패키지에는 모두 /usr/include 아래에 설치되는 C++ 헤더와 /usr/lib 아래에 설치되는 다음 라이브러리가 포함돼요.
libpulsar.so: 3rd party 의존성을 정적으로 연결하는 공유 라이브러리libpulsar.a: 정적 라이브러리libpulsarwithdeps.a: 모든 3rd party 의존성을 포함하는 팻(fat) 정적 라이브러리
main.cc라는 C++ 소스 파일에 이 라이브러리들을 연결하는 예시예요.
# Link to libpulsar.so
g++ -std=c++17 main.cc -lpulsar
# Link to libpulsarwithdeps.a
g++ -std=c++17 main.cc /usr/lib/libpulsarwithdeps.a -lpthread -ldl
# Link to libpulsar.a
g++ -std=c++17 main.cc /usr/lib/libpulsar.a \
-lprotobuf -lcurl -lssl -lcrypto -lz -lzstd -lsnappy -lpthread -ldl
libpulsar.a에 연결하는 것은 3rd party 의존성이 호환되어야 하므로 초보자에게 어려울 수 있어요. 예를 들어 Pulsar C++ 클라이언트 3.0.0의 protobuf 버전은 3.20.0 이상이어야 해요. libpulsarwithdeps.a에 연결하는 것이 더 좋아요.
3.0.0 이전에는 libpulsarnossl.so가 있었는데 지금은 제거됐어요.
더 알아보기 (Learn more)
- C++ 클라이언트 라이브러리 설정 — C++ 클라이언트를 설치하는 방법을 알아봐요.
- C++ 클라이언트 초기화 — Client 객체를 만드는 방법을 살펴봐요.
- C++ 클라이언트 사용 — 프로듀서와 컨슈머를 만들어 사용하는 방법을 알아봐요.
- 클라이언트 기능 매트릭스 — 언어별 클라이언트 기능 지원을 비교해봐요.