Confluent/Kafka
跳转到导航
跳转到搜索
Confluent/Kafka指的是Confluent所包裝的Apache Kafka,裡面有些路徑與設定檔的設法與官方版本不同。
防火牆
Kafka的主機對外需要開這些Port:
- 9092/tcp
- 32181/tcp(JMX)
設定
server.properties
修改/etc/kafka/server.properties
的broker.id
設定,讓他自動產生而不需要自己指定:
#broker.id=0
broker.id.generation.enable=true
修改listeners
設定,雖然預設值會聽正確的介面,但因為這個資訊會被註冊到ZooKeeper裡面,所以需要註冊正確的介面資訊:
#listeners=PLAINTEXT://:9092
listeners=PLAINTEXT://10.1.1.1:9092
如果ZooKeeper與Kafka不同伺服器,需要修改/etc/kafka/server.properties
的zookeeper.connect
的值,像是這樣:
#zookeeper.connect=localhost:2181
zookeeper.connect=internal-test-kafka-zookeeper-123456789.us-east-1.elb.amazonaws.com:2181
在正式環境上可以設定對應的Replication數量,避免當單一機器有問題的時候產生錯誤:
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=2
其他
另外可以設定/lib/systemd/system/confluent-kafka.service.d/30-options.conf
(目錄可能會需要自己建立),讓Kafka吃滿記憶體(這邊假設是8 GB的記憶體,保留1 GB給系統與其他情境使用),以及開啟JMX監控機制,跑在Port 32181:
[Service]
Environment=JMX_PORT=32181
Environment=KAFKA_HEAP_OPTS="-Xmx7g -Xms7g"
Environment=KAFKA_JMX_OPTS="-Djava.rmi.server.hostname=${hostip} -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.rmi.port=32181 -Dcom.sun.management.jmxremote.port=32181 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
對應的指令:
sudo mkdir /lib/systemd/system/confluent-kafka.service.d/
echo -e '[Service]\nEnvironment=JMX_PORT=32181\nEnvironment=KAFKA_HEAP_OPTS="-Xmx7g -Xms7g"\nEnvironment=KAFKA_JMX_OPTS="-Djava.rmi.server.hostname=${hostip} -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.rmi.port=32181 -Dcom.sun.management.jmxremote.port=32181 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"' | sudo tee /lib/systemd/system/confluent-kafka.service.d/30-options.conf
設完後就可以讓systemd重讀設定後啟動:
sudo systemctl daemon-reload
sudo systemctl enable confluent-kafka
sudo service confluent-kafka start
sudo service confluent-kafka status
然後就可以設定前端的load balancer了。
相關連結
外部連結
- 官方网站 (英文)