天天看點

部署Apollo

apollo單機部署(快速安裝)

​Apollo​

​官網:​​https://www.apolloconfig.com/#/zh/deployment/quick-start-docker​​官網單機部署的方式分為兩種:普通部署和docker部署。

普通部署

需要安裝​

​MySQL​

​和​

​Java​

​環境。

​Apollo​

​服務端共需要兩個資料庫:​

​ApolloPortalDB​

​(​

​apollo​

​頁面)和​

​ApolloConfigDB​

​(​

​apollo​

​使用的),把資料庫、表的建立和樣例資料都分别準備了​

​sql​

​檔案,隻需要導入資料庫即可。

部署Apollo

然後建立資料庫連接配接,進入到快速包下面(​

​apollo-quick-start​

​),下面有​

​demo.sh​

​,進行編輯:

将對應的資料庫名和位址修改成自己的。

部署Apollo

在啟動服務之前需要确認8070、8080、8090端口未被占用,然後直接啟動​

​./demo.sh​

==== starting service ====
Service logging file is ./service/apollo-service.log
Started [10768]
Waiting for config service startup.......
Config service started. You may visit http://localhost:8080 for service status now!
Waiting for admin service startup....
Admin service started
==== starting portal ====
Portal logging file is ./portal/apollo-portal.log
Started [10846]
Waiting for portal startup......
Portal started. You can visit http://localhost:8070 now!      

首先會啟動​

​erueka​

​服務,然後啟動​

​portal​

​ 配置中心,最後通路​

​[http://伺服器外網位址:8070](http://伺服器外網位址:8070)​

​即可;賬号:apollo,密碼:admin;具體如下圖所示:

部署Apollo
部署Apollo

docker部署

基于上述環境,我們暫停​

​demo.sh​

​的執行:​

​./demo.sh stop​

​,在快速包中(​

​apollo-quick-start​

​)使用​

​docker-compose up​

​運作;

部署Apollo

SpringBoot內建Apollo

這一步就是個坑😂,建立​

​SpringBoot​

​不多說,在​

​maven​

​倉庫找到用戶端;

部署Apollo

取最新版即可(截至2022年10月21日):

<!-- https://mvnrepository.com/artifact/com.ctrip.framework.apollo/apollo-client -->
<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>2.0.1</version>
</dependency>      

錯誤配置:

server:
  port: 8000
app:
  id: apolloTest
apollo:
  bootstrap:
    enabled: true
  meta: http://伺服器外網位址:8080      

在啟動類上開啟​

​apollo​

​:​

​@EnableApolloConfig​

@SpringBootApplication
@EnableApolloConfig
public class ApolloTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(ApolloTestApplication.class, args);
    }

}      

在伺服器部署的​

​Apollo​

​會有問題,用戶端請求的時候位址會出現伺服器的内網位址,那肯定是通路不到的。

部署Apollo

是以我們進行以下設定:

指定應用的​

​AppId​

app.id=apolloTest      

在服務啟動設定上配置​

​apollo​

​參數;

-Dapollo.configService=http://伺服器外網位址:8080      
部署Apollo
public class TestController {

    @Value(value = "${service}")
    private String name;

    @RequestMapping("test")
    public String test(){
        return "hello world -->"+name;
    }
}