java整合apollo(一)

最近把之前学习的东西复习了一下,然后回忆一下,为我自己做持续交付平台打好基础。之后我想着技术壁垒就少一下。

今天主要是整合了一下apollo,关于apollo的安装,网上有很多相关的博客。非常的全面。也有很多有关apollo与spring boot config的对比,这也是面试经常问的,所以要注意一下,尤其是apollo提供了用户的操作界面让操作方便,还有就是热发布这块。

apollo的安装的大概描述

apollo是基于微服务的配置中心,所有apollo可以部属成微服务集群的模式。我们一般在学习或者开发中一般是部属一个就好了,但注意apollo有3部分,首先是那个管理界面的服务,也就是默认为8070端口的这个服务,这个服务是管理的界面,相当于一个web吧,然后是那个service,也就是真正后边的admin需要部属集群的那部分,当然还有那个另外的那一个。所以在部属集群的时候只需要将新部属的service和admin即可,那个web就不需要部属多台了。这里边apollo有一个自治的注册中心,所以在部属集群的时候只需要修改注册中心的地址即可。然后就可以实现集群。当然每个微服务的数据库还是相同的,也就是初始化的那两个库(这里安装mysql需要安装位5.7+的版本),安装成功之后就可以启动apollo   ,但是我们的项目分好多的环境比如dev、local等。这时需要我们直接去改apollo的数据库了。这个网上都有,我也是从网上百度的。改完之后的效果就是这样的

java整合apollo(一)_第1张图片

./demo.sh start

 apollo创建成功之后,我们登陆到apollo,然后创建我们的项目scaffold填写appid=scaffold等一系列的东西。

然后需要我们创建namespace,也就是命名空间。相当于解耦的。这里的命名空间是分私有和共有,私有就是这个项目appid对上了才能拉取,而共有就是只要来apollo都给。我创建的是这样的:

java整合apollo(一)_第2张图片

然后就是新增配置,填写好相关的key和value即可,当然这些最后都是要被我们的项目获取的东西。比如我配置的test和common,来测试在java端能否拉到私有和共有的配置属性。这一切都弄好之后,我们就可以点击发布,然后开发我们的java端代码了。

java端整合apollo 

 在整合任何组件时候,如果我们没有就得把它请进来,所以我们第一步就是导入apollo需要的jar包。这里需要apollo-client的jar包。如果不知道版本号,可以直接去百度搜mvn 然后填入apollo-client即可全部搞到。

		
			com.ctrip.framework.apollo
			apollo-client
			1.3.0
		

导入apollo-jenkins之后,需要配置我们的appid也就是跟apollo对暗号的那个。当然apollo会默认去它识别的那个文件里读这个暗号,所以我们得创建这个文件,并将appid给写进去。这里的目录是META-INF下的app.properties文件里编写一句appid=scaffold即可。

java整合apollo(一)_第3张图片

之后,我们需要做的就是让我们的apollo-jenkins知道获取配置的地址了,因为都是基于spring cloud的Ribbo所以这里需要配置apollo的注册中心的地址,也就是默认的8080端口的那个地址。然后再指定我们的环境。比如私有的application和共有的namespace test1.common这些。

apollo:
  meta: http://127.0.0.1:8080
  bootstrap:
    enabled: true
    eagerLoad:
      enabled: true
    namespaces: application,TEST1.common

之后就是开启我们的apollo的服务了,也就是spring最擅长的注解了这里的注解叫做@EnableApolloConfig

java整合apollo(一)_第4张图片

做好之后,我们需要做测试了,我将测试的controller这样写:

@RestController
@ApiModel
public class test {

	@Value("${test:123}")
	private String test;
	
	@Value("${common:123}")
	private String common;
	

	@GetMapping(value="/test-apollo")
	@ApiOperation(value="测试apollo",notes="测试apollo")
	public void testApollo(){
		System.out.println(test+"--------------"+common);
		//return test+"-"+common;
	}
	
}

之后在swagger上发送请求,效果如下:

java整合apollo(一)_第5张图片 

 

 这说明整合成功了。

总结:这只是我们创建apollo的一个开始,也就是基础的连接测试,为我们之后搭建持续交付平台做基础,完了我们还要进行apollo在java端的用户注册和环境管理等功能。希望每天都有收获。

你可能感兴趣的:(脚手架问题集合)