本文目錄一覽:
springBoot中的application.yml配置文件
有些用過springBoot工程的人總有疑惑,springBoot工程中是有一個application.yml配置文件的啊,其實application.yml的功能和application.properties是一樣的,不過因為yml文件是樹狀結構,寫起來有更好的層次感,更易於理解,所以很多人都選擇了yml文件。
下面來說說將工程改成application.yml配置文件的詳細步驟
第一步:在 application.properties 文件的同級目錄下新建一個 application.yml 文件
第二步:添加application.yml文件中的配置如下:
server:
port: 8088
spring:
datasource:
name: test
url: jdbc:mysql://localhost:3306/test
username: root
password: xxx
# 使用druid數據源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select ‘x’
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
如圖所示:
第三步:刪除原有的application.properties文件
文件結構如圖示:
第四步,重新編譯maven工程
找到maven工具欄,雙擊clean,待執行完成後,雙擊install,執行完成則編譯成功。
第四步,重啟springboot項目
沒有任何問題:
The End
使用canal將mysql同步到es中
因為自己項目中需要用到mysql數據同步到es中,查找了相關資料最後決定用canal來做,所以便有了本文,下面一起來看如何使用canal吧
根據 上的原理解釋,我們知道 canal 會模擬 mysql slave 的交互協議,偽裝自己為 mysql slave,然後向 mysql master 發送 dump 協議。
mysql master 收到 dump 請求,開始推送 binary log 給 slave(也就是 canal),然後 canal 解析 binary log 對象(原始為 byte流)。
經 canal 解析過的對象,我們使用起來就非常的方便了。
再根據 提供的版本信息,你會發現 canal 其實相當於一個中間件,專門用來解析 MySQL 的 binlog 日誌。canal 解析好了之後,會封裝成一個數據對象,通過 protobuf3.0 協議進行交互,讓 canal 客戶端進行消費。
根據上面的解釋,以及 canal 提供的版本信息,我們在使用 canal 的時候,首選要安裝一個 canal.deployer-1.1.4.tar.gz 進行解析 MySQL 的 binlog 日誌。
下載後,複製 canal.deployer-1.1.4.tar.gz 到 MySQL 主機上,比如放在 /usr/local/soft/目錄下。然後依次執行下面的命令:
然後修改 canal 的配置文件 vim conf/example/instance.properties
這三項改成你自己的,比如我的配置如下:
然後保存並退出。(VI 模式下,按 Esc 輸入 :wq 回車退出。)
接著,我們檢查一下 MySQL 的配置。確定版本和是否開啟了 binlog 日誌,以及日誌格式。
canal 支持 binlog 格式為 ROW 的模式。如果你沒開啟 binlog,並且格式是非 row 的,建議修改一下 mysql 的配置文件。
執行 mysql –help | grep my.cnf 找到 mysql 的 my.cnf 文件。
執行 vim /etc/my.cnf 命令。添加下面 3 個配置。
然後保存並退出。
接著執行 sudo service mysqld restart 重啟 MySQL。
需要注意的是你的 mysql 用戶,必須要有 REPLICATION SLAVE 許可權。該許可權授予 slave 伺服器以該賬戶連接 master 後可以執行 replicate 操作的權利。
如果沒有許可權,則使用 root 賬戶登錄進 MySQL,執行下面的語句,創建用戶,分配許可權。
MySQL 啟動後,就可以開啟 canal 服務了。
開啟後,觀察 canal 服務的日誌,確保服務正常。
查看 canal 的日誌
確定沒有問題後,開始編寫我們的測試程序。
pom.xml 中導入下面的依賴。
使用JAVA進行測試
然後執行 main 方法。你再修改修改 MySQL 中的數據,你會發現所有改變都同步過來了。上面是使用的Java代碼進行運行,如果想用canal.adapter來進行運行可以下載
放入伺服器中,依次執行下面命令
然後修改配置文件 :
然後將需要運行存儲到es的的yml文件放入到
目錄下。例如:
然後開啟canal-adapter服務
/usr/local/soft/canal-adapter/bin/startup.sh
查看 canal-adapter 的日誌,確定沒有問題後修改數據 就可以同步到es了
注意:
1、canal-adapter自帶mysql連接使用的5.x的,如果自己安裝的是高版本的mysql需要自己去/usr/local/soft/canal-adapter/lib增加對應的jar包
2、因項目中同步es使用的sql中有資料庫中沒有的欄位,導致原生程序一直報異常,後修改源碼中
加了一個判斷後才可以
3、es中使用的date欄位類型和資料庫中不一致,所以這裡又修改了部分源碼兼容我們項目中的類型
可以根據各自情況修改。
在yml文件中 MySQL 資料庫引擎怎麼設置
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/webDb //連結的dburl
username: root //db用戶名
password:
jpa:
hibernate:
ddl-auto: update
show-sql: true
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/129285.html