天天看點

Apollo生産環境整合springboot

Apollo生産環境整合springboot

1.準備工作

  1. OS
  2. Apollo服務端:1.8+
  3. MySQL 5.6.5+

2.安裝

本項目隻安裝了pro環境。

1.建立資料庫

導入sql ,位址如下。

https://github.com/ctripcorp/apollo/blob/master/scripts/sql/apolloportaldb.sql
https://github.com/ctripcorp/apollo/blob/master/scripts/sql/apolloconfigdb.sql      

2.調整服務端

1.調整ApolloPortalDB.serverconfig表

Apollo生産環境整合springboot
  1. 使用的環境
  2. 組織描述
  3. 服務端位址(Config Service位址 預設端口為8080)

2.調整ApolloConfigDB.ServerConfig

Apollo生産環境整合springboot

3.下載下傳安裝包

擷取apollo-configservice、apollo-adminservice、apollo-portal安裝包 位址:

https://github.com/ctripcorp/apollo/releases

4.更改資料庫配置

1.配置apollo-configservice

用程式員專用編輯器(如vim,notepad++,sublime等)打開config目錄下的application-github.properties檔案,修改完的效果如下:

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd      

2.配置apollo-adminservice的資料庫連接配接資訊

用程式員專用編輯器(如vim,notepad++,sublime等)打開config目錄下的application-github.properties檔案,修改完的效果如下:

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd      

3.配置apollo-portal的資料庫連接配接資訊

local.meta=http://localhost:8080
#dev.meta=http://fill-in-dev-meta-server:8080
#fat.meta=http://fill-in-fat-meta-server:8080
#uat.meta=http://fill-in-uat-meta-server:8080
#lpt.meta=${lpt_meta}
pro.meta=http://localhost:8080      
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd      

4.配置apollo-portal的meta service資訊

使用程式員專用編輯器(如vim,notepad++,sublime等)打開apollo-portal-x.x.x-github.zip中config目錄下的apollo-env.properties檔案。修改完的效果如下:

local.meta=http://localhost:8080
pro.meta=http://localhost:8080      

5.運作

導入伺服器運作scripts/startup.sh

6.整合spring boot

1.修改pom檔案

<dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>1.3.0</version>
        </dependency>      

2.修改application配置

app:
  id: 項目名稱
apollo:
  meta: http://127.0.0.1:8080(admin server 端口預設8080)
  bootstrap:
    enabled: true
    eagerLoad:
      enabled: true      

3.SpringBootApplication加入注解

@EnableApolloConfig      

6.頁面配置

1.建立項目

Apollo生産環境整合springboot
Apollo生産環境整合springboot

紅圈處為上面配置的組織名。

2.處理項目的配置項

Apollo生産環境整合springboot
Apollo生産環境整合springboot

也可以直接輸入全部配置項。

Apollo生産環境整合springboot

更改配置之後需要點選釋出,否則不會更改。

Apollo生産環境整合springboot

7.驗證

對于項目來說,因為配置放入了applicationcontent中,是以需要重新開機才能生效,但是通過以下代碼不重新開機就能展現出生效。

@RestController
public class HelloController {

    @Value("${server.port}")
    String port;

    @GetMapping("hi")
    public String hi(String name) {
        return "hi " + name + " ,i am from port:" + port;
    }
}      

參考:

https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97#2-apolloportalmetaservers

—%E5%90%84%E7%8E%AF%E5%A2%83meta-service%E5%88%97%E8%A1%A8