本文目錄一覽:
- 1、給kafka配置外部連接
- 2、如何利用pykafka遠程消費 zookeeper+kafka集群 python腳本
- 3、windows 下遠程連接kafka伺服器並創建topic 部署服務
- 4、php本地 怎麼連接遠程資料庫伺服器
- 5、消息中間件Kafka – PHP操作使用Kafka
給kafka配置外部連接
在公司的測試環境中,有的應用需要遠程連接kafka,本地有時也是需要連接到kafka進行Debug,這就需要將kafka配置成外部可連接。想要實現這種效果,有兩種實現方法,第一種方法是將所有kafka的連接都配置成公網IP連接。第二種方法是採用kafka的內外分離配置。方法一雖然能夠實現kafka的外部連接,可是伺服器上面對kafka的連接也會默認使用公網IP的方式連接,而不是內網,這樣會給實例的公網帶寬頻來很大的壓力,應用一多,就會造成實例無法進行登錄。而方法二就可以有效的避免這種現象了,它是將雲上本地應用採用內網來連接kafka,而同時又採用不同的埠配置外網連接,這樣能夠有效的減少公網帶寬的壓力。
在原有配置的基礎上加上或者更改如下配置,配置接受外網連接的埠為9093,同時打開安全組的9093埠,配置過後通過重啟kafka即可通過9093在本地連接kafka。
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT主要分別定義內部和外部連接採用的安全協議
listeners=INTERNAL://內網IP:9092,EXTERNAL://0.0.0.0:9093主要是定義內部和外部連接監聽的地址埠
advertised.listeners=INTERNAL://內網IP:9092,EXTERNAL://外網IP:9093主要是提交給zookeeper來實現對kafka內部和外部的連接,最開始改配置只是配置了外部的連接,沒有內部的連接,所以對kafka的連接都是通過外部連接。
inter.broker.listener.name=INTERNAL主要是制定kafka集群內部broker之前通過INTERNAL的配置來進行內部通訊。
參考連接:
如何利用pykafka遠程消費 zookeeper+kafka集群 python腳本
#從kafka消費
#consumer_area = topic_area.get_simple_consumer(auto_offset_reset=OffsetType.LATEST)
#從ZOOKEEPER消費
consumer_area = topic_area.get_balanced_consumer(
consumer_group=b’zs_download_04′, # 自己命令
auto_offset_reset=OffsetType.LATEST,#在consumer_group存在的情況下,設置此變數,表示從最新的開始取
#auto_offset_reset=OffsetType.EARLIEST,
#reset_offset_on_start=True,
auto_commit_enable=True,
#auto_commit_interval_ms=1,
zookeeper_connect=ZK_LIST
)
windows 下遠程連接kafka伺服器並創建topic 部署服務
一.打包項目鏡像:
利用Dockerfile 來打包項目的鏡像
本次項目共依賴兩個鏡像(一個基礎系統環境和一個項目鏡像)
本次直接將Dockerfile寫好後,用shell腳本build.sh啟動打包:
然後切換到項目的目錄下找到build.sh,運行即可打包項目鏡像
若
報錯:”failed to dial gRPC: cannot connect to the Docker daemon. Is ‘docker daemon’ running on this host?: dial unix /var/run/docker.sock: connect: permission denied
“
就用
出現以下說明打包成功,接下來可以開始部署:
注意:如果遇到只讀許可權不能修改時,將host文件複製一份到桌面,修改後在替換原來的host文件
在hosts文件末尾加上kafka伺服器 !外網! 39. 0.25…地址,修改後的格式如下:
1.1注意: 修改阿里雲伺服器的hosts 文件來配置 kafka的伺服器地址:
在hosts 文件最後加入:
添加的 kafka-server 就是以下創建topic命令中的 kafka-server別名,
監聽遠程kafka:新建消費者:
遠程創建topic的實例:
查看遠程已創建的topc:
本地:
遠程修改後的kafka topic:
2.通過git Bash 切換到kafka客戶端的bin目錄:
桌面打開 gitBash,切換到本地kafka軟體目錄:
這裡一定要切換為windows
3.查看已經有的topic
–topic 指定topic名字
–replication-factor 指定副本數,因為我的是集群環境,這裡副本數就為3
–partitions 指定分區數,這個參數需要根據broker數和數據量決定,正常情況下,每個broker上兩個partition最好
注意:伺服器部署時候一定要用內網172. .開頭的,外部訪問設為外網ip
不然會導致Kafka寫入數據的時候報錯 : TImeout
4.1本地docker創建topic:
4.2 本地windows 創建topic
進入本地軟體路徑KAFKA/BIN/WIONDOWS
創建topic
5.修改伺服器的host:
一定要注意加sudo 不然會導致readonly 無法修改
在host 文件的末尾加上以下:
6.切換到工程部署的目錄
7.清理redis,不然數據有殘留:
7.1伺服器上的redis掛載清除:
在 docker-compose.yml中註銷這幾行: 目的是每次啟動不必記錄上次沒有執行完的數據.
這個是用來記錄redis中假如上次指定的是1到100萬塊,沒有執行完.下次接著執行沒執行完的任務,測試時暫時關閉
7.2刪除volume:
7.3 如果volume文件被佔用時,先刪除佔用容器:
7.4 清除redis中的數據
進入redis容器中:
8.部署命令:
8.1開啟docker可視化web上監控docker:
然後訪問:
宿主機IP + 9000埠
8.2執行部署命令,啟動服務:
9.部署時報錯: yaml: line 46: did not find expected key
原因: docker-compose.yml文件中第46行 報錯
解決:將所有數據對齊,不要有多餘的空格.
php本地 怎麼連接遠程資料庫伺服器
在php中如果要連接遠程資料庫連接方法很簡單,只要把本地連接localhost或127.0.0.1改成指定遠程伺服器一IP地址或者直接域名即可。
語法
mysql_connect(servername,username,password);
例子
在下面的例子中,我們在一個變數中 ($con) 存放了在腳本中供稍後使用的連接。如果連接失敗,將執行 “die” 部分:
代碼如下:
?php
$con = mysql_connect(“localhost”,”peter”,”abc123″);
if (!$con)
{
die(‘Could not connect: ‘ . mysql_error());
}
// some code
?
消息中間件Kafka – PHP操作使用Kafka
cd librdkafka/
./configure make make install
安裝成功界面 沒有報錯就是安裝成功
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/289390.html