Apollo配置中心搭建(7)

一、搭建方式

搭建环境:macOS
搭建方式:采用quick start安装包的形式进行安装。
下载地址:https://github.com/nobodyiam/apollo-build-scripts

二、搭建过程

2.1 创建数据库
Apollo服务端共需要两个数据库:ApolloPortalDBApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。
注意:如果本地已经创建过Apollo数据库,请注意备份数据。准备的sql文件会清空Apollo相关的表。
2.1.1 创建ApolloPortalDB
通过各种MySQL客户端导入sql/apolloportaldb.sql即可。
导入成功后,可以通过执行以下sql语句来验证:

select `Id`, `AppId`, `Name` from ApolloPortalDB.App;

2.1.2 创建ApolloConfigDB
通过各种MySQL客户端导入sql/apolloconfigdb.sql即可。
导入成功后,可以通过执行以下sql语句来验证:

select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;

2.2 配置数据库连接信息
Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑demo.sh,修改ApolloPortalDBApolloConfigDB相关的数据库连接串信息。
注意:填入的用户需要具备对ApolloPortalDBApolloConfigDB数据的读写权限。

#apollo config db info
apollo_config_db_url="jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai"
apollo_config_db_username=用户名
apollo_config_db_password=密码(如果没有密码,留空即可)

# apollo portal db info
apollo_portal_db_url="jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai"
apollo_portal_db_username=用户名
apollo_portal_db_password=密码(如果没有密码,留空即可)
注意:不要修改demo.sh的其它部分

2.8.2.3 执行启动脚本

./demo.sh start

// 如果打印出如下信息,即启动成功

==== 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!

2.8.2.4 配置参数
apollo服务端启动成功后,打开网页:http://localhost:8070/ 如图:
在这里插入图片描述
新建provider和consumer两个项目,然后设置两个参数,在provider服务端写一个获取参数的接口,看服务是否能获取到配置参数,修改参数然后发布参数,看服务端参数是否可以动态更改,以provider为例,如图:
在这里插入图片描述
provider服务端修改代码:
application.yml配置文件新增配置:

# 对应Apollo里的应用AppId
app:
  id: micro-provider
apollo:
  bootstrap:
    enabled: true
    # 添加 application 本身
    # namespaces: application
    # put apollo initialization before logging system initialization
    eagerLoad:
      enabled: true
  # 关闭placeholder在运行时自动更新功能
  autoUpdateInjectedSpringProperties: false
  # apollo元地址
  meta: http://localhost:8080

新增两个配置类:
ConfigBean:

package com.example.provider.config;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.beans.factory.annotation.Value;

@Getter
@Setter
@ToString
public class ConfigBean {
    @Value("${name:null}")
    private String name;

    @Value("${sex:null}")
    private String sex;

}

AppConfig:

package com.example.provider.config;

import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableApolloConfig
public class AppConfig {

    @Bean
    public ConfigBean getConfigBean() {
        return new ConfigBean();
    }
}

controller里添加一个方法:

package com.example.provider.controller;

import com.example.provider.config.AppConfig;
import com.example.provider.config.ConfigBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {
    @Autowired
    private AppConfig appConfig;

    @GetMapping(value = "/get-config")
    public ConfigBean getConfig() {
        return appConfig.getConfigBean();
    }
}

postman调用接口,如图:
在这里插入图片描述

三、上述总结

这里采用jar包的方式部署,有需要看源码的可以下载源码运行试试。
springcloud微服务整合Apollo方式不一,需要就实际情况和架构师习惯而言,所以具体问题具体对待。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值