apollo單機部署(快速安裝)
Apollo
官網:https://www.apolloconfig.com/#/zh/deployment/quick-start-docker官網單機部署的方式分為兩種:普通部署和docker部署。
普通部署
需要安裝
MySQL
和
Java
環境。
Apollo
服務端共需要兩個資料庫:
ApolloPortalDB
(
apollo
頁面)和
ApolloConfigDB
(
apollo
使用的),把資料庫、表的建立和樣例資料都分别準備了
sql
檔案,隻需要導入資料庫即可。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yN5YTM0E2NzEDN2ETZwITNzYzXyIjMxETMxIzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
然後建立資料庫連接配接,進入到快速包下面(
apollo-quick-start
),下面有
demo.sh
,進行編輯:
将對應的資料庫名和位址修改成自己的。
在啟動服務之前需要确認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;具體如下圖所示:
docker部署
基于上述環境,我們暫停
demo.sh
的執行:
./demo.sh stop
,在快速包中(
apollo-quick-start
)使用
docker-compose up
運作;
SpringBoot內建Apollo
這一步就是個坑😂,建立
SpringBoot
不多說,在
maven
倉庫找到用戶端;
取最新版即可(截至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
會有問題,用戶端請求的時候位址會出現伺服器的内網位址,那肯定是通路不到的。
是以我們進行以下設定:
指定應用的
AppId
app.id=apolloTest
在服務啟動設定上配置
apollo
參數;
-Dapollo.configService=http://伺服器外網位址:8080
public class TestController {
@Value(value = "${service}")
private String name;
@RequestMapping("test")
public String test(){
return "hello world -->"+name;
}
}