美文网首页
客户端应用接入Apollo

客户端应用接入Apollo

作者: 烂融小菜花 | 来源:发表于2019-10-08 10:03 被阅读0次

本文将介绍如何让现有的Spring Boot项目接入Apollo,还未搭建Apollo服务端的请移步到我前面的文章进行阅读。

下面以Cas单点登录项目为例,进行简单的接入操作,更多详细的方法请参考:

[github官方文档] https://github.com/ctripcorp/apollo/wiki/Java客户端使用指南

一、创建配置信息

接入之前,需要先在Apollo服务器创建需要的配置项。

默认访问:localhost:8070创建项目

1569205216718.png

添加并发布配置项

1569205135946.png

二、客户端接入

1.添加依赖

<!-- apollo客户端 -->
<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>1.4.0</version>
</dependency>

2.启动aopollo配置中心

方式一:

修改application.propertiesbootstrap.properties配置

apollo.bootstrap.enabled=true
方式二:

在启动类添加@EnableApolloConfig注解。

@EnableTransactionManagement
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
@EnableEurekaClient
@EnableApolloConfig
public class MainWebApplication extends SpringBootServletInitializer {

    @Profile("war")
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(MainWebApplication.class);
    }

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

目前在我们公司的项目中,cas使用第一种方式,其他项目使用第二种方式。因为cas单点登录的启动类不是我们自定义的,直接在配置文件中配置比较方便。

其他方式这里不进行介绍了,想具体了解的可以到官网。

2.配置AppId和meta-server

方式一:

application.properties或者bootstrap.properties中按照如下样例进行配置

#这两个属性配置不支持多个war包在同一个tomcat中启动,需要在classpath:META-INF/app.properties文件中配置
app.id=apollo-cas
#apollo.meta只是一个逻辑角色,在部署时和Config Service是在一个JVM进程中的,所以IP、端口和Config Service一致
apollo.meta=http://localhost:8080

这种配置方式不适用于多个war包部署在同一个tomcat的使用场景,考虑到我们公司虽然是做往微服务方向发展,但是可能也会以war包的形式部署到同一个tomcat,所以我没采用这种方式,而是采用了第二种方式。

方式二:

resources/META-INF/目录下创建app.properties文件,把app.idapollo.meta的配置移到该配置文件.

下图中,我采用了占位符形式是为了便于实施人员在Maven编译部署时可以以设置变量的方式进行赋值,避免更改配置文件(这里可以不用Maven设置变量的方式,直接写configserver的地址也可以。)。而开发人员在本地进行开发时,可以在通过server.properties配置文件来进行配置apollo.meta,因为通过server.properties配置的方式优先级比在app.properties配置的方式高。

1569750860731.png

使用Maven设置变量的方式需要在pom.xml文件添加resources标签

<resources>
    <resource>
        <directory>src/main/resources/META-INF/</directory>
        <targetPath>/META-INF</targetPath>
        <includes>
            <include>app.properties</include>
        </includes>
        <filtering>true</filtering>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
    </resource>
</resources>

通过server.properties配置文件

  • 可以在server.properties配置文件中指定apollo.meta=http://config-service-url

  • 对于Mac/Linux,文件位置为/opt/settings/server.properties

  • 对于Windows,文件位置为C:\opt\settings\server.properties

env=DEV
apollo.meta=http://192.168.10.126:8080

3.测试

@RestController
@RequestMapping("test")
public class TestController {
    @Value("${testname:}")
    private String testName;

    @GetMapping("hello")
    public String hello() {
        return "hello: " + testName;
    }
}

启动Cas成功,登录后,访问上面的测试接口:

1569206868284.png

apollo配置起效。

相关文章

网友评论

      本文标题:客户端应用接入Apollo

      本文链接:https://www.haomeiwen.com/subject/qtywpctx.html