kafka的安全機制是乙個保護kafka的資料不對外暴露的一種策略,相當於隱藏了資料本身的介面,客戶端消費資料的時候必須走安全機制才能正常有效的訪問到資料本身,一般相對資料安全性要求較高或者訂單,使用者私密的資訊的資料,建議開啟,開啟了以後,將會影響kafka的效能 20%左右.所以開啟的時候慎重
首先得找到乙個存放秘鑰的位址,一般要放在server端和kafka的data一起都可以,過程需要你的使用者名稱和密碼,以及城市國家,公司等一些資訊
建立金鑰倉庫,用於儲存證書檔案
keytool -keystore server.keystore.jks -alias imoockafka -validity 100000 -genkey
建立ca
openssl req -new -x509 -keyout ca-key -out ca-cert -days 100000
將生成的ca新增到客戶信任庫
keytool -keystore client.truststore.jks -alias caroot -import -file ca-cert
為broker提供信任庫以及所有客戶端簽名了金鑰的ca證書
keytool -keystore server.truststore.jks -alias caroot -import -file ca-cert
執行此步驟完成後,將生成乙個
ca-cert
ca-key
server.keystore.jks
記住以上的證書名稱 ,進行簽名證書,用自己生成的ca來簽名前面生成的證書
1、從金鑰倉庫匯出證書
keytool -keystore server.keystore.jks -alias imoockafka -certreq -file cert-file
2、用ca簽名:
openssl x509 -req -ca ca-cert -cakey ca-key -in cert-file -out cert-signed -days 100000 -cacreateserial -passin pass:jiangzh
3、匯入ca的證書和已簽名的證書到金鑰倉庫
keytool -keystore server.keystore.jks -alias caroot -import -file ca-cert
keytool -keystore server.keystore.jks -alias imoockafka -import -file cert-signed
執行此步驟完成後,將生成乙個
ca-cert
ca-key
server.keystore.jks
cert-
signed
server.truststore.jks
client.truststore.jks
cert-file
ca-cert.srl
也就是在原來的基礎上加上你設定的ssl的位址和自定義的埠號即,以及生成秘鑰的位址位置
listeners=plaintext:
advertised.listeners=plaintext:
ssl.keystore.location=/opt/ca-tmp/server.keystore.jks
ssl.keystore.password=jiangzh
ssl.key.password=jiangzh
ssl.truststore.location=/opt/ca-tmp/server.truststore.jks
ssl.truststore.password=jiangzh
測試ssl是否成功
openssl s_client -debug -connect 192.168.220.128:8989 -tls1
(需要提前將證書copy下來)
security.protocol=ssl
ssl.endpoint.identification.algorithm=
ssl.truststore.location=/opt/ca-tmp2/client.truststore.jks
ssl.truststore.password=jiangzh
注意:消費的時候,消費的應該是新的安全機制下的埠,而非原本配置的 9092
kafka選舉機制
kafka是乙個高效能,高容錯,多副本,可複製的分布式訊息系統,是基於raft演算法來實現leader選舉的。整個架構設計中涉及幾處選舉 所謂控制器就是乙個borker,在乙個kafka集群中,有多個broker節點,但是它們之間需要選舉出乙個leader,其他的broker充當follower角色...
mysql安全機制 Mysql安全機制
在mysql下mysql庫中有6個許可權表 mysql.user 使用者字段,許可權字段,安全字段,資源控制字段 mysql.db mysql.host 使用者字段,許可權字段 mysql.tables priv,mysql.columms priv,mysql.procs priv 一 使用者管理...
kafka 消費機制
1 乙個訊息只能被同乙個消費組的某個消費者消費,消費後不刪除訊息只是自己消費訊息的offset 1,並不會刪除訊息,可能訊息還要被其它消費組消費,可配置清除預設7天或基於大小來清除老訊息。2 可以手動指定那些partition由組內哪個消費者消費,不指定會首次某個消費者消費某個partition後不...