카프카를창시한사람들이쓰고,카프카개발에참여한한국인개발자가옮긴핵심실무서
모든엔터프라이즈애플리케이션은로그메시지,지표,사용자행동혹은외부로발신되는메시지에이르는다양한데이터를생성하며,이데이터를이동시키는방법은데이터그자체만큼이나중요하다.애플리케이션아키텍트,개발자에서부터카프카스트리밍플랫폼이처음인프로덕션엔지니어에이르기까지,업데이트된이개정증보판(카프카의AdminClientAPI,트랜잭션,새로추가된보안기능그리고툴관련변경점을다루는장들이새로추가됨)을통해이동하는데이터를다루는방법에대해배울수있다.
카프카의개발을담당했던컨플루언트와링크드인의개발자들이카프카클러스터를프로덕션환경에설치하는방법,신뢰성있는이벤트주도마이크로서비스를개발하는방법,그리고카프카를플랫폼으로사용해서규모가변적인스트림처리애플리케이션을개발하는방법을설명한다.상세한예제를통해카프카의설계원칙,신뢰성보장,핵심API그리고복제프로토콜,컨트롤러,저장레이어에이르는아키텍처의상세한부분까지배울수있다.
카프카설정,설치에관한모범사례
메시지를쓰고읽기위해카프카프로듀서와컨슈머를사용하는방법
신뢰성있게데이터를전달하기위한패턴과활용사례요구사항
카프카를사용해서데이터파이프라인과애플리케이션을개발하는모범방법론
카프카를프로덕션환경에서운영할때모니터링하고,튜닝하고,유지관리하는방법
카프카를운영하는데있어서가장중요한성능지표들
스트림처리시스템에있어카프카에서사용가능한전달보장
책속에서
카프카는스트림처리(14장에서다룹니다)에등장하는‘이벤트스트림’의개념을닮았습니다.스트림처리애플리케이션이‘이벤트스트림’의‘현재상태’를조망하기위해‘상태저장소’를필요로하듯이,카프카와같은시스템을이해하기위해서는우선‘현재상태’를명료하게정리해줄수있는무엇인가가필수적입니다.이책은오랫동안카프카를개발해온분들이직접쓴카프카에대한안내서입니다.지금까지카프카를발전시켜온‘이벤트스트림’을만들어온사람들이만든‘상태저장소’라고할수있겠네요.꽤긴시간동안카프카프로젝트에기여해온저역시이책이한국독자들을위한좋은‘상태저장소’역할을할수있었으면좋겠다는생각을하면서이책을번역했습니다.
---「옮긴이머리말」중에서
아파치카프카는위에서설명한것과같은문제를해결하기위해고안된메시지발행/구독시스템이다.‘분산커밋로그’혹은‘분산스트리밍플랫폼’이라고불리기도한다.파일시스템이나데이터베이스커밋로그(commitlog)는모든트랜잭션기록을지속성있게보존함으로써시스템의상태를일관성있게복구할수있도록고안되었다.이와유사하게,카프카에저장된데이터는순서를유지한채로지속성있게보관되며결정적(deterministic)으로읽을수있다.또한,확장시성능을향상시키고실패가발생하더라도데이터사용에는문제가없도록시스템안에서데이터를분산시켜저장할수있다.
---p.4
카프카의이름이어디에서유래했는지,뭔가특별한기능을의미하는지묻곤하는사람들이있다.여기에대해서는제이크렙스가아래와같이언급한적이있다.저는카프카가쓰기에최적화된시스템이기때문에,작가의이름을사용하는것이맞다고생각했습니다.저는대학에서많은문학수업을들었고프란츠카프카(FranzKafka)의작품을좋아했습니다.게다가이이름은오픈소스프로젝트이름으로서멋지게들렸거든요.따라서카프카의이름과기능사이에는별관계가없다고할수있겠습니다.
---p.18
2019년부터아파치카프카커뮤니티는야심찬프로젝트를시작했다.바로주키퍼기반컨트롤러로부터탈피해서래프트(raft)기반컨트롤러쿼럼으로옮겨가는것이다.‘KRaft’라불리는새로운컨트롤러의프리뷰버전은아파치카프카2.8에포함되었으며,3.3부터는'실험적’이라는수식어를떼고정식으로프로덕션환경에서사용가능한기능이되었다.
---p.152
데이터파이프라인에있어서카프카가갖는주요한역할은데이터파이프라인의다양한단계사이사이에있어매우크고안정적인버퍼역할을해줄수있다는점이다.이것은실질적으로데이터파이프라인의데이터를쓰는쪽과읽는쪽을분리함으로써하나의원본에서가져온동일한데이터를서로다른적시성(timeliness)과가용성요구조건을가진여러대상애플리케이션이나시스템으로보낼수있게한다.이렇게데이터파이프라인의양쪽을분리할수있다는점은신뢰성,보안성,효율성과함께카프카가대부분의데이터파이프라인에적합한이유이기도하다.
---p.227
버전3.4.0인현재,카프카는자바8이후버전만을지원하고있다.하지만보안이중요시되는환경이라면,가능하면자바11을사용할것을권한다.본문에서는“카프카는기본적으로TLSv1.2와TLSv1.3이후의프로토콜만을지원한다.”라고되어있지만,TLSv1.3은자바11에서부터지원되기때문이다.카프카2.6.0부터는자바11이상버전을사용할경우자동으로TLSv1.3이활성화되는것으로기본값이바뀌었다.
---p.307