背景:之前資產(chǎn)信息用網(wǎng)絡(luò)接口進(jìn)行數(shù)據(jù)推送湃崩,但是接口推送需要驗(yàn)證而且反應(yīng)較慢龄减。Kafak中間件提供了另一種可行的數(shù)據(jù)推送方式诅病,它可以進(jìn)行消息隊(duì)列推送戚宦,且反應(yīng)速度快晰洒。但是Kafka需部署在公網(wǎng)環(huán)境瑞信,并進(jìn)行登錄驗(yàn)證顷帖,如果部署Kafka后未設(shè)置登錄驗(yàn)證逆航,會(huì)被惡意掃描到鼎文,此時(shí)向Kafka里面push超過(guò)1G的文件,將會(huì)直接導(dǎo)致Kafka宕掉因俐。 為了避免Kafka宕掉拇惋,建設(shè)在使用Kafka過(guò)程中配置登錄驗(yàn)證周偎,以下是Kafka登錄驗(yàn)證的配置過(guò)程。 1撑帖、修改kafka配置文件: vim /asop/kafka/kafka_2.11-2.1.0/config/server.properties broker.id=0 listeners=SASL_PLAINTEXT://:9092 advertised.listeners=SASL_PLAINTEXT://1.1.1.1:9092 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=/asop/kafka/logs num.partitions=1 num.recovery.threads.per.data.dir=1 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 zookeeper.connect=localhost:2181 zookeeper.connection.timeout.ms=6000 group.initial.rebalance.delay.ms=0 #使用的認(rèn)證協(xié)議 security.inter.broker.protocol=SASL_PLAINTEXT #SASL機(jī)制 sasl.enabled.mechanisms=PLAIN sasl.mechanism.inter.broker.protocol=PLAIN #完成身份驗(yàn)證的類 authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer #如果沒(méi)有找到ACL(訪問(wèn)控制列表)配置蓉坎,則允許任何操作。 allow.everyone.if.no.acl.found=false #需要開(kāi)啟設(shè)置超級(jí)管理員,設(shè)置visitor用戶為超級(jí)管理員 super.users=User:visitor
2胡嘿、為server創(chuàng)建登錄驗(yàn)證文件(可以自主命名文件) 如vim /asop/kafka/kafka_2.11-2.1.0/config/kafka_server_jaas.conf 文件內(nèi)容如下 KafkaServer { org.apache.kafka.common.security.plain.PlainLoginModule required username="visitor" password="qaz@123" user_visitor="qaz@123"; };
4蛉艾、為consumer和producer創(chuàng)建登錄驗(yàn)證文件(可自主命名文件) 如kafka_client_jaas.conf,文件內(nèi)容如下(如果是程序訪問(wèn)衷敌,如springboot訪問(wèn)勿侯,可以不配置) vim /asop/kafka/kafka_2.11-2.1.0/config/kafka_client_jaas.conf KafkaClient { org.apache.kafka.common.security.plain.PlainLoginModule required username="visitor" password="qaz@123"; };
5、在consumer.properties和producer.properties里分別加上如下配置 vim /asop/kafka/kafka_2.11-2.1.0/config/consumer.properties vim /asop/kafka/kafka_2.11-2.1.0/config/producer.properties security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN
7缴罗、分別啟動(dòng)zookeeper和kafka助琐,至此服務(wù)端kafka用戶登錄驗(yàn)證配置完成(先關(guān)閉kafka后關(guān)閉zookeeper) 關(guān)閉服務(wù)kafka # /asop/kafka/kafka_2.11-2.1.0/bin/kafka-server-stop.sh -daemon /asop/kafka/kafka_2.11-2.1.0/config/server.properties 關(guān)閉服務(wù)zookeeper-3.4.13 /asop/zk/zookeeper-3.4.13/bin/zkServer.sh stop /asop/zk/zookeeper-3.4.13/conf/zoo.cfg 啟動(dòng)服務(wù)zookeeper-3.4.13 /asop/zk/zookeeper-3.4.13/bin/zkServer.sh start /asop/zk/zookeeper-3.4.13/conf/zoo.cfg 啟動(dòng)服務(wù)kafka #/asop/kafka/kafka_2.11-2.1.0/bin/kafka-server-start.sh -daemon /asop/kafka/kafka_2.11-2.1.0/config/server.properties
以上就是本期的全部?jī)?nèi)容。大家好面氓,我是樂(lè)樂(lè)兵钮,專注IT運(yùn)維技術(shù)研究與分享,更多運(yùn)維知識(shí)請(qǐng)關(guān)注樂(lè)維社區(qū)舌界,如有運(yùn)維問(wèn)題也歡迎到社區(qū)提問(wèn)掘譬!