java整合apollo(一)
最近把之前學習的東西復習了一下,然后回憶一下,為我自己做持續交付平臺打好基礎。之后我想著技術壁壘就少一下。
今天主要是整合了一下apollo,關于apollo的安裝,網上有很多相關的博客。非常的全面。也有很多有關apollo與spring boot config的對比,這也是面試經常問的,所以要注意一下,尤其是apollo提供了用戶的操作界面讓操作方便,還有就是熱發布這塊。
apollo的安裝的大概描述
apollo是基于微服務的配置中心,所有apollo可以部屬成微服務集群的模式。我們一般在學習或者開發中一般是部屬一個就好了,但注意apollo有3部分,首先是那個管理界面的服務,也就是默認為8070端口的這個服務,這個服務是管理的界面,相當于一個web吧,然后是那個service,也就是真正后邊的admin需要部屬集群的那部分,當然還有那個另外的那一個。所以在部屬集群的時候只需要將新部屬的service和admin即可,那個web就不需要部屬多臺了。這里邊apollo有一個自治的注冊中心,所以在部屬集群的時候只需要修改注冊中心的地址即可。然后就可以實現集群。當然每個微服務的數據庫還是相同的,也就是初始化的那兩個庫(這里安裝mysql需要安裝位5.7+的版本),安裝成功之后就可以啟動apollo ? ,但是我們的項目分好多的環境比如dev、local等。這時需要我們直接去改apollo的數據庫了。這個網上都有,我也是從網上百度的。改完之后的效果就是這樣的
./demo.sh start
?apollo創建成功之后,我們登陸到apollo,然后創建我們的項目scaffold填寫appid=scaffold等一系列的東西。
然后需要我們創建namespace,也就是命名空間。相當于解耦的。這里的命名空間是分私有和共有,私有就是這個項目appid對上了才能拉取,而共有就是只要來apollo都給。我創建的是這樣的:
然后就是新增配置,填寫好相關的key和value即可,當然這些最后都是要被我們的項目獲取的東西。比如我配置的test和common,來測試在java端能否拉到私有和共有的配置屬性。這一切都弄好之后,我們就可以點擊發布,然后開發我們的java端代碼了。
java端整合apollo?
?在整合任何組件時候,如果我們沒有就得把它請進來,所以我們第一步就是導入apollo需要的jar包。這里需要apollo-client的jar包。如果不知道版本號,可以直接去百度搜mvn 然后填入apollo-client即可全部搞到。
?? ??? ?<dependency>
?? ??? ??? ?<groupId>com.ctrip.framework.apollo</groupId>
?? ??? ??? ?<artifactId>apollo-client</artifactId>
?? ??? ??? ?<version>1.3.0</version>
?? ??? ?</dependency>
導入apollo-jenkins之后,需要配置我們的appid也就是跟apollo對暗號的那個。當然apollo會默認去它識別的那個文件里讀這個暗號,所以我們得創建這個文件,并將appid給寫進去。這里的目錄是META-INF下的app.properties文件里編寫一句appid=scaffold即可。
之后,我們需要做的就是讓我們的apollo-jenkins知道獲取配置的地址了,因為都是基于spring cloud的Ribbo所以這里需要配置apollo的注冊中心的地址,也就是默認的8080端口的那個地址。然后再指定我們的環境。比如私有的application和共有的namespace test1.common這些。
apollo:
? meta: http://127.0.0.1:8080
? bootstrap:
? ? enabled: true
? ? eagerLoad:
? ? ? enabled: true
? ? namespaces: application,TEST1.common
之后就是開啟我們的apollo的服務了,也就是spring最擅長的注解了這里的注解叫做@EnableApolloConfig
做好之后,我們需要做測試了,我將測試的controller這樣寫:
@RestController
@ApiModel
public class test {
?
?? ?@Value("${test:123}")
?? ?private String test;
?? ?
?? ?@Value("${common:123}")
?? ?private String common;
?? ?
?
?? ?@GetMapping(value="/test-apollo")
?? ?@ApiOperation(value="測試apollo",notes="測試apollo")
?? ?public void testApollo(){
?? ??? ?System.out.println(test+"--------------"+common);
?? ??? ?//return test+"-"+common;
?? ?}
?? ?
}
之后在swagger上發送請求,效果如下:
?這說明整合成功了。
總結:這只是我們創建apollo的一個開始,也就是基礎的連接測試,為我們之后搭建持續交付平臺做基礎,完了我們還要進行apollo在java端的用戶注冊和環境管理等功能。希望每天都有收獲。
————————————————
版權聲明:本文為CSDN博主「堅持學習的菜鳥」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/tianjingle_blog/article/details/92850840
總結
以上是生活随笔為你收集整理的java整合apollo(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java之SPI机制
- 下一篇: 帅领集成热水器用起来怎么样?质量可靠不可