cd config/kraft/
vi server.properties
# 節點角色
process.roles=broker,controller
?
#節點ID,和節點所承擔的角色想關聯
node.id=1
?
# 集群地址
controller.quorum.voters=1@192.168.0.113:9093,2@192.168.0.114:9093,3@192.168.0.115:9093
?
#本機節點
listeners=PLAINTEXT://192.168.0.113:9092,CONTROLLER://192.168.0.113:9093
?
# 這里我修改了日志文件的路徑,默認是在/tmp目錄下的
log.dirs=/home/guohao/kafka_2.13-3.1.0/kraftlog/kraft-combined-logs
Process.Roles
每個Kafka服務器現在都有一個新的配置項,叫做Process.Roles, 這個參數可以有以下值:
如果Process.Roles = Broker, 服務器在KRaft模式中充當 Broker。
如果Process.Roles = Controller, 服務器在KRaft模式下充當 Controller。
如果Process.Roles = Broker,Controller,服務器在KRaft模式中同時充當 Broker 和Controller。
如果process.roles 沒有設置。那么集群就假定是運行在ZooKeeper模式下。
如前所述,目前不能在不重新格式化目錄的情況下在ZooKeeper模式和KRaft模式之間來回轉換。同時充當Broker和Controller的節點稱為“組合”節點。
對于簡單的場景,組合節點更容易運行和部署,可以避免多進程運行時,JVM帶來的相關的固定內存開銷。關鍵的缺點是,控制器將較少地與系統的其余部分隔離。例如,如果代理上的活動導致內存不足,則服務器的控制器部分不會與該OOM條件隔離。
Quorum Voters
系統中的所有節點都必須設置 `controller.quorum.voters` 配置。這個配置標識有哪些節點是 Quorum 的投票者節點。所有想成為控制器的節點都需要包含在這個配置里面。這類似于在使用ZooKeeper時,使用ZooKeeper.connect配置時必須包含所有的ZooKeeper服務器。
然而,與ZooKeeper配置不同的是,`controller.quorum.voters` 配置需要包含每個節點的id。格式為: id1@host1:port1,id2@host2:port2。