「Confluent/Kafka」:修訂間差異
跳至導覽
跳至搜尋
创建页面,内容为“== 設定 == 修改<code>/etc/kafka/server.properties</code>的<code>broker.id</code>設定,讓他自動產生而不需要自己指定: <syntaxhighlight lang="…” |
|||
(未顯示同一使用者於中間所作的 8 次修訂) | |||
第1行: | 第1行: | ||
'''Confluent/Kafka'''指的是[[Confluent]]所包裝的[[Apache Kafka]],裡面有些路徑與設定檔的設法與官方版本不同。 | |||
== 防火牆 == | |||
Kafka的主機對外需要開這些Port: | |||
* 9092/tcp | |||
* 32181/tcp(JMX) | |||
== 設定 == | == 設定 == | ||
=== server.properties === | |||
修改<code>/etc/kafka/server.properties</code>的<code>broker.id</code>設定,讓他自動產生而不需要自己指定: | 修改<code>/etc/kafka/server.properties</code>的<code>broker.id</code>設定,讓他自動產生而不需要自己指定: | ||
第21行: | 第32行: | ||
zookeeper.connect=internal-test-kafka-zookeeper-123456789.us-east-1.elb.amazonaws.com:2181 | zookeeper.connect=internal-test-kafka-zookeeper-123456789.us-east-1.elb.amazonaws.com:2181 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
在正式環境上可以設定對應的Replication數量,避免當單一機器有問題的時候產生錯誤: | |||
<syntaxhighlight lang="ini"> | |||
offsets.topic.replication.factor=3 | |||
transaction.state.log.replication.factor=3 | |||
transaction.state.log.min.isr=2 | |||
</syntaxhighlight> | |||
=== 其他 === | |||
另外可以設定<code>/lib/systemd/system/confluent-kafka.service.d/30-options.conf</code>(目錄可能會需要自己建立),讓Kafka吃滿記憶體(這邊假設是8 GB的記憶體,保留1 GB給系統與其他情境使用),以及開啟JMX監控機制,跑在Port 32181: | 另外可以設定<code>/lib/systemd/system/confluent-kafka.service.d/30-options.conf</code>(目錄可能會需要自己建立),讓Kafka吃滿記憶體(這邊假設是8 GB的記憶體,保留1 GB給系統與其他情境使用),以及開啟JMX監控機制,跑在Port 32181: | ||
第46行: | 第67行: | ||
sudo service confluent-kafka status | sudo service confluent-kafka status | ||
</syntaxhighlight> | </syntaxhighlight> | ||
然後就可以設定前端的load balancer了。 | |||
== 相關連結 == | |||
* [[Apache Kafka]] | |||
* [[Confluent]] | |||
== 外部連結 == | |||
* {{Official|https://www.confluent.io/product/confluent-platform/}} {{en}} | |||
[[Category:軟體]] |
於 2020年8月3日 (一) 02:43 的最新修訂
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了。
相關連結
外部連結
- 官方網站 (英文)