ratis
1.0.0
Apache Ratis 는 Raft 프로토콜[1]을 구현하는 Java 라이브러리입니다. Raft 문서의 확장 버전은 https://raft.github.io/raft.pdf에서 확인할 수 있습니다. 이 논문에서는 Raft를 소개하고 그 동기를 다음과 같이 설명합니다.
Raft는 복제된 로그를 관리하기 위한 합의 알고리즘입니다. (다중)Paxos와 동등한 결과를 만들어내고, Paxos만큼 효율적이지만 Paxos와는 구조가 다릅니다. 이는 Raft를 Paxos보다 더 이해하기 쉽게 만들고 실용적인 시스템 구축을 위한 더 나은 기반을 제공합니다.
Ratis는 복제된 로그를 사용해야 하는 모든 시스템에서 사용할 수 있는 Java 라이브러리로 Raft를 제공하는 것을 목표로 합니다. 복제된 상태를 관리하기 위해 상태 머신 구현에 대한 플러그성을 제공합니다. 또한 Raft 로그, rpc 구현 및 메트릭 구현에 대한 플러그 기능을 제공하여 다른 프로젝트와 쉽게 통합할 수 있습니다. 또 다른 중요한 목표는 보다 일반적인 데이터 복제 사용 사례에 사용할 수 있도록 높은 처리량의 데이터 수집을 지원하는 것입니다.