最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

MySQL數(shù)據(jù)庫與Nacos搭建監(jiān)控服務(wù)

2023-04-16 22:42 作者:文正耕耘  | 我要投稿

nacos系列文章第一篇,MySQL篇。

我相信有不少小伙伴已經(jīng)用過eureka,那么問題來了,Nacos是個(gè)啥?

看到這個(gè)標(biāo)題,MySQL數(shù)據(jù)庫與Nacos搭建監(jiān)控服務(wù),它們有什么關(guān)系么?

其實(shí)是Nacos支持連接MySQL,內(nèi)部已配置好數(shù)據(jù)源、連接池供我們使用。如果使用其它數(shù)據(jù)源(比如信創(chuàng)要求,使用達(dá)夢數(shù)據(jù)庫比較多),可以通過插件形式適配,模仿MySQL實(shí)現(xiàn)方式。具體如何實(shí)現(xiàn),可參考 Nacos 的 github issues。

MySQL是什么?
一句話概括:一款社區(qū)活躍的開源數(shù)據(jù)庫(database)軟件,已被Oracle公司收購。

nacos是什么?

一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái)。

?

nacos 官方文檔:目前推薦2.x版本

https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html

nacos 樣例
http://console.nacos.io/nacos/index.html#/login

默認(rèn)用戶名與密碼均為:nacos

?

?

Nacos部署

項(xiàng)目環(huán)境

Nacos 依賴 Java 環(huán)境來運(yùn)行。如果你是一名開發(fā)人員,或許需要準(zhǔn)備如下環(huán)境:

  • Maven 3.2.x+

  • 64 bit JDK1.8+

  • 64 bit OS,支持 Linux/Unix/Mac/Windows,推薦選用 Linux/Unix/Mac

主要以Linux平臺(tái)作為演示環(huán)境。關(guān)于nacos 的獲取(發(fā)行包、源碼包),可以前往github開源倉庫。

nacos開源倉庫:
https://github.com/alibaba/nacos

目前nacos最新穩(wěn)定版是2.2.1:
https://github.com/alibaba/nacos/releases/tag/2.2.1

下載很緩慢,可以使用在線工具箱加速(公共免費(fèi)資源請適度使用):
https://tool.mintimate.cn/gh/

官方推薦版本為2.1.1:

您可以在Nacos的release notes及博客中找到每個(gè)版本支持的功能的介紹,當(dāng)前推薦的穩(wěn)定版本為2.1.1。

?

快速開始

解壓nacos

啟動(dòng)服務(wù)

Linux平臺(tái)以單機(jī)模式啟動(dòng)nacos服務(wù)

Windows平臺(tái)以單機(jī)模式啟動(dòng)nacos服務(wù)

訪問:http://127.0.0.1:8848/nacos 后,進(jìn)入登錄界面:

?

服務(wù)注冊、發(fā)現(xiàn)以及配置管理

服務(wù)注冊

參數(shù)說明:

  • serviceName:服務(wù)名

  • ip:配置自己遠(yuǎn)程地址

  • port:端口(外部訪問需要放通)

服務(wù)發(fā)現(xiàn)

發(fā)布配置


參數(shù)說明:

  • dataId:數(shù)據(jù)Id。

  • group:組名。

  • content:發(fā)布配置輸入的具體內(nèi)容。

獲取配置

控制臺(tái)顯示輸出內(nèi)容:HelloWorld,代表配置成功。

關(guān)于curl命令教程,可以去curl官網(wǎng)(curl.se)找一找,還是很常用的。

?

關(guān)閉服務(wù)

Linux平臺(tái):

Windows平臺(tái):

?

nacos2.2.0版本配置說明

以nacos2.2.0版本為示例說明
nacos配置文件,支持配置文件存儲(chǔ)到數(shù)據(jù)庫(DB)中保存。如果沒有開放mysql數(shù)據(jù)源相應(yīng)設(shè)置,默認(rèn)使用本地存儲(chǔ)數(shù)據(jù)源。


配置目錄:\nacos-server-2.2.0\conf,文件清單,每個(gè)版本可能略微有所不同:

  • application.properties

  • application.properties.example

  • derby-schema.sql

  • mysql-schema.sql

  • 1.4.0-ipv6_support-update.sql

  • cluster.conf.example

  • nacos-logback.xml

?

配置基本說明
以 .example 結(jié)尾,是示例配置,可供參考。以 update.sql 結(jié)尾的,則是sql更新腳本。

application.properties是nacos基本配置,例如端口、ip、數(shù)據(jù)源等等可以在此配置中修改,cluster.conf.example 是集群配置示例,nacos-logback.xml是日志相關(guān)配置。

mysql-schema.sql提供支持MySQL數(shù)據(jù)庫SQL表結(jié)構(gòu),derby-schema.sql提供支持derby數(shù)據(jù)庫SQL表結(jié)構(gòu)。

如果和我一樣使用的是MySQL數(shù)據(jù)庫,需要注意的配置文件是application.properties和mysql-schema.sql,記住后續(xù)用得上。

?

導(dǎo)入表結(jié)構(gòu)
新建數(shù)據(jù)庫:庫名命名為:nacos。編碼最好指定為utf8mb4和utf8mb4_bin,避免導(dǎo)入后看到中文注釋亂碼。

導(dǎo)入sql腳本到新建的庫nacos中:mysql-schema.sql。庫名并不是固定的,可以根據(jù)實(shí)際需求更改,比如nacos_config。如果你是從舊版本升級(jí)上來的,可能需要執(zhí)行SQL腳本:1.4.0-ipv6_support-update.sql

上面聊到 nacos 可以在配置文件中配置數(shù)據(jù)源,當(dāng)然必不可少,需要部署MySQL數(shù)據(jù)庫。

找到application.properties配置文件,配置MySQL數(shù)據(jù)源:

? ?

很奇怪的一個(gè)問題,第一次使用,只導(dǎo)入初始化sql腳本MySQL數(shù)據(jù)源:

nacos以單機(jī)模式啟動(dòng):sh startup.sh -m standalone,啟動(dòng)無異常,正常訪問。

MySQL數(shù)據(jù)庫已設(shè)置自啟,排查數(shù)據(jù)庫正常啟動(dòng)。第二天啟動(dòng)centos-stream-9,再次啟動(dòng) nacos 服務(wù),出現(xiàn)無法設(shè)置數(shù)據(jù)源,嘗試屏蔽數(shù)據(jù)源配置文件,啟動(dòng)正常。猜測可能是初始化腳本出問題了,執(zhí)行升級(jí)sql腳本:1.4.0-ipv6_support-update.sql,再次啟動(dòng)nacos服務(wù)正常。

如果你和我一樣,使用的是MySQL8.0.30版本數(shù)據(jù)庫,可以參考。

如果遇到 Public Key Retrieval is not allowed,可能還需要加上 &allowPublicKeyRetrieval=true

在github issues查找解決方案,提到可能是MySQL8.0.x設(shè)置時(shí)區(qū)的問題,將默認(rèn)serverTimezone=UTC修改為serverTimezone=Asia/Shanghai。

?

如果配置好MySQL,但還是遇到數(shù)據(jù)源無法找到,也許是數(shù)據(jù)庫導(dǎo)入腳本沒有升級(jí),也許是數(shù)據(jù)庫版本和時(shí)區(qū)問題。

嘗試重連,反復(fù)提醒 Public Key Retrieval 不被允許,反復(fù)提醒數(shù)據(jù)源沒有設(shè)置。

也有可能是MySQL版本問題和設(shè)置時(shí)區(qū)問題,連接配置做如下調(diào)整:

?

Linux終端執(zhí)行命令導(dǎo)入升級(jí)腳本:

?

問題排查

關(guān)于nacos大部分問題,可以在官方倉庫的 issues 找到解決方案:

https://github.com/alibaba/nacos/issues


總結(jié)配置數(shù)據(jù)源相關(guān)問題

  1. 導(dǎo)入初始化sql腳本缺失字段問題。

  2. 使用數(shù)據(jù)源配置jdbc,數(shù)據(jù)庫時(shí)區(qū)設(shè)置問題。

  3. MySQL8.0.x數(shù)據(jù)庫默認(rèn)密碼使用緩存算法(caching_sha2_password)問題。

?

MySQL部署

tips:下載注意使用帶有GA(General Availability)標(biāo)識(shí),穩(wěn)定版。

實(shí)際工作中,使用比較到的是下載離線安裝包。安裝方式主要有如下幾種分類:


安裝方式

Windows平臺(tái)

  1. msi文件:直接雙擊進(jìn)行安裝,有可視化界面,安裝較為容易,但不夠靈活。

  2. 歸檔包(archive):以zip格式進(jìn)行壓縮,類似于Linux中的二進(jìn)制包。比較靈活,只需幾個(gè)命令即可安裝服務(wù)和實(shí)例化。

  3. 源碼包(source package):最靈活,可根據(jù)需求編譯安裝功能,難易度最高。

  4. docker形式安裝:其實(shí)是在容器中安裝。

Linux平臺(tái)

  1. rpm & deb 包安裝:最為簡單,但不靈活,適合初學(xué)者使用。

  2. 二進(jìn)制包(binary package):也稱歸檔包(archive),編譯好的源碼包,比rpm包更靈活。個(gè)人認(rèn)為是安裝多個(gè)服務(wù)最佳選擇。

  3. 源碼包(source package):最靈活,可根據(jù)需求編譯安裝功能,難易度最高。

  4. docker形式安裝:其實(shí)是在容器中安裝。

當(dāng)然,MySQL同樣支持macOS平臺(tái)。

你也可以使用MySQL的妹妹MariaDB替代MySQL,是很好的選擇。

?

由于測試使用,本人數(shù)據(jù)庫使用比較新,MySQL8.0.30。說8.0新,其實(shí)也并不是很新,距離8.0第一個(gè)穩(wěn)定版Changes in MySQL 8.0.11 (2018-04-19, General Availability)快5年了。

目前市面上主要以MySQL5.7為主,離停止維護(hù)不遠(yuǎn)了,未來應(yīng)該會(huì)逐漸升級(jí)為MySQL8.0.x??吹焦倬W(wǎng)將MySQL5.6文檔頁面轉(zhuǎn)移了,已停止版本更新。

Windows 平臺(tái)

此處省略安裝過程。

請參考個(gè)人公眾號(hào)里面的文章,有簡易安裝教程:SQL基礎(chǔ)知識(shí)掃盲。

?

Linux平臺(tái)(CentOS-Stream-9)部署MySQL

此處我只演示Linux平臺(tái)(CentOS-Stream-9其中最方便的一種部署方式。

Linux平臺(tái)(CentOS-Stream-9

通過RHEL系列自帶的命令服務(wù)安裝管理工具,yum與dnf二選一即可。

安裝后,查看mysql服務(wù)狀態(tài),默認(rèn)服務(wù)名為mysqld.service。

默認(rèn)沒有啟動(dòng),手動(dòng)啟動(dòng) mysqld 服務(wù)

登錄mysql字符命令行界面

調(diào)試防火墻管理工具

如需遠(yuǎn)程登錄,需要關(guān)閉防火墻相關(guān)服務(wù),或者開放相應(yīng)端口,個(gè)人建議采用開放相應(yīng)端口

由于MySQL默認(rèn)端口3306可能被黑客利用通用掃描軟件攻擊,建議實(shí)際工作中進(jìn)行修改?;蛘呃盟淼擂D(zhuǎn)發(fā)功能。
如果只是在本地使用,改與不改并不影響。

重載firewalld服務(wù)

MySQL用戶權(quán)限

設(shè)置開機(jī)自啟

systemctl enable mysqld.service

查看mysqld服務(wù)狀態(tài):看到enabled代表設(shè)置為自啟

如果使用第三方管理工具,需要開放相應(yīng)用戶權(quán)限才能登錄MySQL:

修改用戶密碼

創(chuàng)建用戶root,主機(jī)地址%,匹配所有;如果是localhost,則只讓本地使用,也可以是指定ip地址。

授權(quán)root用戶所有權(quán)限(ALL),即可使遠(yuǎn)程登錄。同樣可以指定特定權(quán)限,只給查詢(select)。

如果遇到第三方工具連接提示密碼插件規(guī)則不被支持問題:

刷新權(quán)限

更多權(quán)限細(xì)化設(shè)置請參考MySQL8.0.x官方文檔第6章節(jié)Security。關(guān)于權(quán)限控制和賬號(hào)(用戶)管理介紹很詳細(xì)。

6.2 Access Control and Account Management

更多安裝方式,你還可以參考個(gè)人持續(xù)更新的筆記:

https://blog.cnwangk.top/2023/03/15/MySQL8-0-x-簡易安裝教程

?

MySQL導(dǎo)入mysql-schema腳本

下面,將演示數(shù)據(jù)庫創(chuàng)建以及sql腳本導(dǎo)入。

登錄

創(chuàng)建數(shù)據(jù)庫

導(dǎo)入數(shù)據(jù),執(zhí)行sql腳本

關(guān)于數(shù)據(jù)導(dǎo)入,可以使用DB管理工具(MySQL workbench、DBeaver、SQLyog)連接導(dǎo)入,也可以使用cat或者zcat命令導(dǎo)入。

演示Linux平臺(tái)使用cat命令導(dǎo)入sql腳本

原本我也不知道這種用法,聯(lián)想到以前使用過zabbix監(jiān)控工具。靈機(jī)一動(dòng),我也可以將nacos的sql腳本這樣導(dǎo)入數(shù)據(jù)庫中。

查看nacos數(shù)據(jù)庫表:驗(yàn)證是否導(dǎo)入成功

?

Springboot項(xiàng)目構(gòu)建

如果你只是想體驗(yàn)nacos簡單用法,可以跳過springboot項(xiàng)目集成nacos微服務(wù)。

如果你是軟件實(shí)施、運(yùn)維人員,可以關(guān)注nacos官方文檔運(yùn)維監(jiān)控文檔(運(yùn)維指南)。

介紹很詳細(xì),我也覺得我很啰嗦了,這已經(jīng)屬于開發(fā)范疇了。

目標(biāo):項(xiàng)目中集成nacos服務(wù),使用nacos監(jiān)控到打包好并正常運(yùn)行服務(wù)健康情況。集成spring-cloud-starter-alibaba-nacos-discovery和spring-cloud-starter-alibaba-nacos-config。nacos-discovery是服務(wù)發(fā)現(xiàn)組件,nacos-config則是服務(wù)配置組件。

?

項(xiàng)目環(huán)境

需要準(zhǔn)備的環(huán)境

  • Maven 3.6.3

  • JDK17

  • Linux環(huán)境(CentOS9-Stream)

Linux平臺(tái)安裝JDK

解壓JDK

配置全局環(huán)境變量:vim /etc/profile

配置當(dāng)前用戶環(huán)境變量:vim .bash_profile 或者 .bashrc,加入配置全局變量我所列出的內(nèi)容即可。

執(zhí)行 source 命令立即生效

關(guān)于環(huán)境變量更多配置可參考個(gè)人公眾號(hào)關(guān)于JDK17的介紹。

驗(yàn)證版本:

?

Linux平臺(tái)安裝maven

當(dāng)然,你也可以到Maven官網(wǎng)下載打包好的二進(jìn)制包,解壓即可用。

加入環(huán)境變量:

執(zhí)行source命令立即生效:source /etc/profile

查看版本

看到以上環(huán)境,證明你的Maven環(huán)境已經(jīng)部署好了。

注意:默認(rèn)Maven鏡倉庫地址很慢,需要更換,推薦阿里云鏡像源。

修改Maven配置文件:

修改默認(rèn)本地倉庫存放目錄:找到 localRepository,將如下內(nèi)容開放:


配置Maven阿里鏡像地址,加入如下配置,注意是在 加入

?

?

項(xiàng)目構(gòu)建

注意:如果使用IDE工具構(gòu)建,注意springboot、spring cloud以及spring cloud alibaba版本對應(yīng)關(guān)系。盡量使用阿里云云原生應(yīng)用腳手架官網(wǎng)推薦的版本,有助于后期遇到問題排查。當(dāng)然還有一個(gè)好處,選擇組件時(shí)有中文說明,一目了然。

如果你對于IDE工具使用,實(shí)在有困難,可以在線構(gòu)建。

兩種在線腳手架構(gòu)建方式

  • spring腳手架:https://start.spring.io/

  • 阿里云云原生應(yīng)用腳手架:https://start.aliyun.com/

個(gè)人還是比較推薦使用阿里云云原生應(yīng)用腳手架構(gòu)建,便于在線選擇nacos 等微服務(wù)相關(guān)組件。

?

springboot版本可以自己調(diào)試,目前已經(jīng)支持springboot2.7.6和3.0.0配置。之前建議版本為springboot2.6.11,如果使用高版本,選擇nacos相關(guān)組件時(shí)灰色的。

?

構(gòu)建完成,如何打包成jar(目前使用比較多的時(shí)候jar包形式)?少不了JDK和Maven環(huán)境,參考環(huán)境準(zhǔn)備步驟。老項(xiàng)目是有不少使用war包形式。

解壓下載好的springboot項(xiàng)目demo.zip

執(zhí)行Maven安裝命令,這個(gè)過程可能有點(diǎn)緩慢,下載jar包越多,越耗時(shí)間:

?

如果新建的是單體應(yīng)用,在根目錄找到application.properties配置文件,如果構(gòu)建mvc架構(gòu)應(yīng)用,則在demo-start子項(xiàng)目找到application.properties,然后修改spring.cloud.nacos.config.server-addr與spring.cloud.nacos.discovery.server-addr的IP地址。

示例如下

?

有點(diǎn)納悶,也許是我本地環(huán)境問題,之前很少使用阿里腳手架構(gòu)建項(xiàng)目。感覺使用阿里云云原生應(yīng)用腳手架構(gòu)建,會(huì)出現(xiàn)某些jar包(openfeign)找不到,使用Maven打包出現(xiàn)主清單文件找不到的問題。自己一步一步構(gòu)建,添加微服務(wù)組件,配置nacos則是正常的。

Maven打包遇到找不到依賴:

?

示例如下,引入openfeign

?

如果不出意外,正常打包,可以使用 java -jar 執(zhí)行jar服務(wù)

在nacos控制臺(tái)服務(wù)管理可以監(jiān)控到服務(wù),比如我搭建測試環(huán)境,給應(yīng)用區(qū)名稱為:springboot-test。

?

Nacos聯(lián)動(dòng)測試

新建配置:springboot-test.properties


配置詳情:配置的比較隨意,參考看看就行

?

當(dāng)然,你也需要在controller層 Java 代碼里加入如下匹配:

?

提供一種思路??梢愿鶕?jù)業(yè)務(wù)情況而定,將多個(gè)配置封裝到一個(gè)類里面,如下所示,新建


使用到注解:

  • @Value :通常情況,使用注解取值。

  • @Component :加入注解,便于被掃描到。

  • @ConfigurationProperties:引入配置,通過prefix指定配置前綴。


在項(xiàng)目中注入:

?

準(zhǔn)備好集成nacos服務(wù)的jar包:

運(yùn)行服務(wù):nohup 代表脫離終端運(yùn)行,&代表放入后臺(tái)

指定為生產(chǎn)環(huán)境:-Dspring.profiles.active=prod

測試接口:

你也可以使用curl命令請求:

得到輸出結(jié)果:

getConfig>>>>>>>>>>>>發(fā)現(xiàn):配置>>>服務(wù)名稱:nacos服務(wù)

查看日志驗(yàn)證:


驗(yàn)證成功,getConfig日志打印出來了。

?

Nacos監(jiān)控(控制臺(tái))

官方文檔比我演示介紹要更詳細(xì),如果進(jìn)一步使用,請參考官方文檔(運(yùn)維指南)。

控制臺(tái)手冊https://nacos.io/zh-cn/docs/console-guide.html

?

基本功能演示

nacos 功能比較豐富

  1. 配置管理:動(dòng)態(tài)更新配置、查看歷史版本、監(jiān)聽查詢;

  2. 服務(wù)管理:查看、創(chuàng)建服務(wù)、查看訂閱者列表;

  3. 權(quán)限列表:管理用戶、角色、權(quán)限配置;

  4. 命名空間:默認(rèn)保留空間(public)

  5. 集群管理:管理各個(gè)節(jié)點(diǎn)。

登錄mysql,切換到nacos數(shù)據(jù)庫,查看原始users表只有一條數(shù)據(jù),存儲(chǔ)nacos用戶。

此處只演示一下連接上MySQL數(shù)據(jù)庫后,在控制臺(tái)左側(cè)菜單欄找到權(quán)限控制,新建用戶。

示例如下

?

驗(yàn)證數(shù)據(jù)庫表

驗(yàn)證users,發(fā)現(xiàn)多了一條數(shù)據(jù),nacos_test成功存入到數(shù)據(jù)庫,至此MySQL與nacos聯(lián)動(dòng)完成。

?

新增配置,對照數(shù)據(jù)庫表



  • 新增配置會(huì)保存在:nacos_config

  • 歷史配置會(huì)保存在:his_config_info

  • 用戶相關(guān)配置保存在:users

  • 角色相關(guān)配置保存在:roles

  • 權(quán)限相關(guān)配置保存在:permissions

監(jiān)控方法可以配合prometheus以及grafana使用。關(guān)于nacos更多用法,目前還在摸索中。

下面這張流程圖思路,可供參考:

?

?

參考資料

  1. nacos2.x官方文檔:https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html

  2. nacos2.x github issues:https://github.com/nacos-group/nacos-docker/issues/251

  3. MySQL8.0.x官方文檔第6章節(jié)Security:https://dev.mysql.com/doc/refman/8.0/en/access-control.html

最后,希望對你的工作有所幫助。如果覺得寫得還不錯(cuò),可以點(diǎn)個(gè)小小的贊。

以上總結(jié)僅供參考。

——END——

MySQL數(shù)據(jù)庫與Nacos搭建監(jiān)控服務(wù)的評論 (共 條)

分享到微博請遵守國家法律
弥渡县| 涟水县| 缙云县| 个旧市| 榆中县| 河源市| 哈尔滨市| 万年县| 许昌县| 林周县| 晋江市| 旺苍县| 平凉市| 资中县| 同江市| 云梦县| 嘉义县| 龙里县| 如东县| 呼图壁县| 育儿| 利津县| 东宁县| 中卫市| 德保县| 张家口市| 门源| 莒南县| 宣威市| 封丘县| 泰州市| 贵港市| 屯留县| 八宿县| 澄城县| 南通市| 阿拉尔市| 灌云县| 满洲里市| 昆明市| 肃南|