Apollo干啥用?
一.計(jì)劃簡介
1.Apollo是攜程框架部開發(fā)的分布式配置中心。
2.集中管理不同的應(yīng)用程序環(huán)境和不同集群的配置。
3.配置修改后,可以實(shí)時(shí)推送到應(yīng)用端。
4、具有標(biāo)準(zhǔn)化權(quán)限、流程化管理等特點(diǎn)。
第二,組件
Apollo包括一個(gè)服務(wù)器和一個(gè)客戶端。
服務(wù)器:基于SpringBoot和SpringCloud的開發(fā),打包后可以直接運(yùn)行,不需要安裝Tomcat等額外的應(yīng)用容器。
Java客戶端:獨(dú)立于任何框架,可以在所有Java運(yùn)行時(shí)環(huán)境下運(yùn)行,對(duì)Spring/SpringBoot環(huán)境也有很好的支持。
第三,的特點(diǎn)
1.同意管理不同環(huán)境和不同集群的配置。
2.配置修改實(shí)時(shí)生效(熱發(fā)布)
3.版本發(fā)布管理——所有的配置都有一個(gè)版本概念,方便配置回滾。
4.灰度發(fā)布——點(diǎn)擊發(fā)布,僅對(duì)部分應(yīng)用實(shí)例生效,觀察一段時(shí)間沒有問題后,再推送給所有應(yīng)用實(shí)例。
5.權(quán)限管理、發(fā)布審核和操作審核
權(quán)限管理——有完善的權(quán)限管理。
發(fā)布評(píng)審——配置管理分為兩個(gè)步驟:編輯和發(fā)布,以減少人為錯(cuò)誤。
操作審計(jì)–所有操作都有審計(jì)日志,這有助于跟蹤問題。
6.監(jiān)控客戶端配置信息——在界面上可以方便地看到哪些實(shí)例正在使用配置。
7.提供java和。netnativeclients來促進(jìn)應(yīng)用程序集成。
8.提供了http接口,并且非java和。net應(yīng)用程序也可以方便地使用。
9.提供開放式平套API
10.部署非常簡單。只要安裝了Java和MySQL,Apollo就可以運(yùn)行。
第四,實(shí)施過程
1.用戶在配置中心修改和發(fā)布配置。
2.配置中心通知Apollo客戶機(jī)配置更新。
3.Apollo客戶端從配置中心獲取最新的配置,更新本地配置并通知應(yīng)用程序。
五、工作原理
上圖簡單描述了的整體設(shè)計(jì),我們可以從下往上看:
1.配置服務(wù)提供讀取、推送配置等功能,服務(wù)對(duì)象為Apollo客戶端。
Service提供配置修改、發(fā)布等功能,服務(wù)對(duì)象是ApolloPortal(管理界面)。
3.配置服務(wù)和管理服務(wù)是多實(shí)例和無狀態(tài)的部署,因此您需要在Eureka中注冊(cè)自己并保持心跳。
4.在Eureka之上,我們?cè)O(shè)置了一層元服務(wù)器來封裝Eureka的服務(wù)發(fā)現(xiàn)接口。
5.客戶端通過域名訪問元。服務(wù)器獲取Config服務(wù)的服務(wù)列表(IP端口),然后通過IP端口直接訪問服務(wù)。同時(shí),它會(huì)在客戶端進(jìn)行負(fù)載平衡和錯(cuò)誤重試。
6.門戶通過域名訪問元服務(wù)器獲取AdminServic
如何寫一個(gè)能匹配字符串的mysql語句?
mysql的字符串匹配
需求表數(shù)據(jù)如下::。
Java代碼
mysqlgt從測試中選擇*
--
|id|姓名|
--
|1|abc**|
--
集合中的1行(0.00秒)
我想匹配abcde,就是a*代表一個(gè)字符。
分析:
正則化中,*代表0以上,所以這里存儲(chǔ)有問題,應(yīng)該存儲(chǔ)。Or_then查詢sql可以通過like和REGEXP實(shí)現(xiàn)。
結(jié)論:
接受喜歡
Java代碼
mysqlgtselect*fromtestwhereabcdelikereplace(name,*,_)
--
|id|姓名|
--
|1|abc**|
--
集合中的1行(0.01秒)
用_替換,然后用like匹配
2.采用正則表達(dá)式
Java代碼
mysqlgtselect*fromtestwhereabcderegexpreplace(name,*,.)
--
|id|姓名|
--
|1|abc**|
--
集合中的1行(0.02秒)
替換為。然后匹配