mac環境canal+mysql+kafka的安裝及使用
為了實現 實時同步資料,在mac環境搭建了canal,mysql,kafka的一套流程
使用canal加mysql加kafka的方式傳遞資料
mysql 資料來源頭
canal模仿slave衝mysql取資料。。是一個管道
kafka 將canal獲取的資料放入kafka 。然後消費(程式獲取kafka的佇列。消費資料)
-
mysql安裝
這個就不詳述了。。不要安裝最新版的mysql。本人親測8.0版本和canal不一定能很好的相容
所以。。安裝了mysql5.7
安裝命令(這樣安裝 安裝的是8.0版本)
brew install mysql
2.java安裝
不管是canal還是kafka都是需要java環境的。。
也不能用最新版的java,推薦使用java8也就是jdk8
最好是從官網oracle下載
安裝方法:
https://blog.csdn.net/oumuv/article/details/84064169
3.canal安裝
在裝calal之前 確保mysql 及 java8 環境安裝好了
下載地址: https://github.com/alibaba/canal/releases
下載 canal.deployer-1.1.4.tar.gz
在家目錄下面新建一個canal目錄.直接解壓就行
官方檔案已經編譯好了,不需再編譯
需要新增賬戶(canal@%及canal@local)
在canal/bin目錄下有幾個指令碼檔案,startup.sh 啟動服務用的,stop.sh 停止服務用的
在canal/logs目錄下放的是日誌檔案。
在canal/conf目錄下放的是配置檔案。
例項配置檔案
canal/conf/example/instance.properties
例項的配置檔案。。決定了 你連線哪個例項的資料庫 可以精確到表
instance.properties中比較重要的引數
#例項
canal.instance.master.address = 127.0.0.1:3306
#db
canal.instance.dbUsername = canal
canal.instance.dbPassword = canal
canal.instance.defaultDatabaseName =test
canal.instance.connectionCharset = UTF-8
#table
# table regex
canal.instance.filter.regex = test.ttt
#mq topic
canal.mq.topic=test12345
上面這樣配置 就代表了。。通過canal連線127.0.0.1中的test庫的ttt表,放到一個叫做test12345的topic裡面
驗證canal是否和mysql連線 只需要在mysql的程式裡面檢視是否有一個複製連線(因為canal就是模仿了一個slave)
還有一個全域性的檔案
表示了需要連線的kafka zookeeper等
canal/conf/canal.properties
列舉canal連線kafka的重要引數
canal.id= 1#如果有多個canal 這個值和叢集中的canal不能衝突
canal.ip=172.17.61.113#canal的ip
canal.port= 11111
canal.zkServers=172.17.61.113:2181#zookeeper的ip:port
canal.serverMode = kafka
canal.destinations = example
#mq
canal.mq.servers = 172.17.61.113:9092#kafka的ip:port
上面有些關於kafka的引數 是 需要kafka安裝好之後才能陪得(因為已經裝好了 所以先列舉出來)
4.kafka安裝
kafka安裝時需要zookeeper的。。
但是一般zookeeper會整合在kafka裡面 所以不需要特別單獨安裝(也可以單獨安裝)
mac環境安裝命令如下
brew install kafka
一直等安裝完成就行
執行kafka是需要依賴於zookeeper的,所以安裝kafka的時候也會包含zookeeper。
kafka的安裝目錄:/usr/local/Cellar/kafka/2.0.0/bin
kafka的配置檔案目錄:/usr/local/Cellar/kafka/2.0.0/bin
kafka服務的配置檔案:/usr/local/etc/kafka/server.properties
zookeeper配置檔案: /usr/local/etc/kafka/zookeeper.properties
-
listeners=PLAINTEXT://172.17.61.113:9092
-
advertised.listeners=PLAINTEXT://172.17.61.113:9092
zookeeper 配置檔案我在安裝的時候 沒有做任何修改
然後 通過上面配置canal.properties 就連線上kafka
kafka的基本命令
首先,啟動zookeeper:
zookeeper-server- start /usr/ local /etc/kafka/zookeeper.properties
然後,啟動kafka
kafka- server -start /usr/local/etc/kafka/ server .properties
建立一個“使用單個分割槽”、“只有一個副本”、名為“test”的主題的topic
kafka-topics
--create
--zookeeper
localhost
:2181
--replication-factor 1
--partitions 1
--topic
test
(建立topic,這個topic。我們在canal中已經有了配置)
檢視建立的topic,執行list topic命令:
kafka-topics --list --zookeeper 172.17.61.113:2181
生產訊息
kafka-console-producer --broker-list 172.17.61.113:9092 --topic test
(訊息資料由canal自動傳送。所以這裡的命令我們只有明白就行)
消費訊息(這個地方就可以最後來檢視mysql+canal+kafka是否已經聯動起來了)
kafka-console-consumer --bootstrap-server 172.17.61.113:9092 --topic test12345 --from-beginning
我在mysql裡面的test庫的ttt表裡加了一條記錄
然後反應在kafka就是如下結果
{"data":[{"id":"13","var":"ded"}],"database":"test","es":1575448571000,"id":8,"isDdl":false,"mysqlType":{"id":"int(11)","var":"varchar(5)"},"old":null,"pkNames":["id"],"sql":"","sqlType":{"id":4,"var":12},"table":"ttt","ts":1575448571758,"type":"INSERT"}
這就表示整個mysql+canal+kafka已經成功了
接下來只要等著程式那邊去消費這個佇列資訊就好了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30127122/viewspace-2666893/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mac GO 環境安裝MacGo
- Linux環境Hive安裝配置及使用LinuxHive
- Linux環境Flume安裝配置及使用Linux
- Linux環境Spark安裝配置及使用LinuxSpark
- mac os電腦安裝tomact環境及配置Mac
- Mac環境下安裝PodMac
- Mac環境安裝ComposerMac
- mac os環境安裝需知Mac
- angular環境配置及安裝Angular
- scala安裝及環境配置
- GoLand安裝及環境配置GoLand
- Linux環境Sqoop安裝配置及使用LinuxOOP
- React-Native 環境安裝及除錯(Mac版)React除錯Mac
- Mac環境下安裝配置RedisMacRedis
- Mac環境下MySQL的安裝和基本命令的使用MacMySql
- node.js環境安裝及環境變數Node.js變數
- java環境JDK安裝及配置JavaJDK
- MongoDB Windows環境安裝及配置MongoDBWindows
- kafka環境安裝及簡單使用(單機版)Kafka
- monogdb windows環境下 安裝及使用簡單示例MonoWindows
- mac brew 安裝 lnmp環境 代替MampMacLNMP
- Mac安裝開發環境-前端篇Mac開發環境前端
- Mac Ox 使用 Docker 安裝寶塔環境,並安裝 SqlServer 擴充套件MacDockerSQLServer套件
- strawberry perl安裝,環境變數及模組安裝變數
- Mac系統Go開發環境的安裝MacGo開發環境
- Infer 在 Mac 上的安裝和環境配置Mac
- Laravel swoole安裝及使用及inotify熱更新 (Linux centos環境)LaravelLinuxCentOS
- Appium 介紹及環境安裝APP
- JDK安裝及環境變數配置JDK變數
- node環境搭建、npm及pnpm安裝NPM
- Node.js安裝及環境配置Node.js
- Mac OS 環境下 安裝 Asp.Net及使用Yeoman 建立Asp.Net 專案MacASP.NET
- mac安裝mysql並配置環境變數MacMySql變數
- Mac環境下安裝MongoDB資料庫MacMongoDB資料庫
- 筆記:Mac安裝PHP、nginx、myspl環境筆記MacPHPNginx
- Mac 安裝 GO語言開發環境MacGo開發環境
- Mac下安裝Phonegap開發環境Mac開發環境
- zookeeper安裝和使用 windows環境Windows