搭建大型分布式服务(十七)SpringBoot 配置托管

412 阅读2分钟

系列文章目录


@TOC


前言

Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。使用配置中心,可以更加集中化方便管理项目的配置,脱敏安全问题,热更新等好处。

一、本文要点

接上文,我们已经简单演示了Springboot整合Apollo配置中心,并演示了怎样获取业务配置。本文将介绍怎样把mysql、redis、es、kafka等配置交由Apollo托管,使项目看起来更加清爽,配置更加安全方便。系列文章完整目录

  • Apollo 配置中心

  • springboot 整合 apollo client

  • springboot + mybatis + Hikari + elasticsearch + redis + dubbo + apollo

二、开发环境

  • jdk 1.8
  • maven 3.6.2
  • springboot 2.4.3
  • apollo 1.8.1
  • apollo cleint 1.8.0
  • idea 2020

三、安装apollo服务端

参考:《搭建大型分布式服务(十五)Docker搭建开发环境安装Apollo》

四、增加Apollo依赖

参考:《搭建大型分布式服务(十六)SpringBoot整合apollo client配置中心》

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

五、修改配置文件

1、修改application-dev.properties文件,同理,后面发布到测试、正式环境的话,修改对应的配置文件,把kafka、mysql、es、redis的配置删掉,只保留Apollo的配置。

#################### LOG ####################
logging.file.path=./logs

#################### apollo ####################
app.id=member-config
apollo.meta=http://9.135.xxx.xxx:8080
apollo.bootstrap.enabled=true
apollo.bootstrap.eagerLoad.enabled=true

2、对应dev环境,将kafka、mysql、es、redis的配置上传到Apollo,记得要点发布按钮。 在这里插入图片描述

六、修改项目代码

1、修改ApolloDemoApplication,@EnableApolloConfig启用配置中心。

@EnableApolloConfig
@SpringBootApplication
public class ApolloDemoApplication {

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

}

2、增加IndexController,调用下前文的MemberService。

@RestController
public class IndexController {

    @Resource
    private MemberService memberService;

    @GetMapping("/get")
    public Result get() {

        TblMemberInfo member = new TblMemberInfo();
        member.setUid(8888L);

        TblMemberInfo ret = memberServce.get(member);
        return Result.ok(ret);
    }
}

七、运行一下

1、IDEA启动项目,访问一下localhost:8080/get,可以看到项目正常启动,并且能获取到redis缓存。 在这里插入图片描述

八、小结

至此,我们已经把redis、kafka、es、dubbo等配置交由apollo托管了,只要严格把控生产环境的配置权限,这样就能避免账号密码泄漏,删库跑路的情况啦。下一篇《搭建大型分布式服务(十八)SpringBoot项目定制我们的脚手架

加我一起交流学习!