spring cloud 阿波罗 apollo 本地开发环境搭建过程

开源配置中心 - Apollo

Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

检出代码

apollo github

可以fork下然后本地使用idea打开

数据库脚本

执行以下脚本创建ApolloConifgDB、ApolloPortalDB

  • apollo.scripts.sql.apolloconfigdb.sql
  • apollo.scripts.sql.apolloportaldb.sql

启动configservice adminservice

Main class配置

com.ctrip.framework.apollo.assembly.ApolloApplication

VM opions

-Dapollo_profile=github
-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
-Dspring.datasource.username=root
-Dspring.datasource.password=
Program arguments
--configservice --adminservice

启动完后,打开 http://localhost:8080可以看到apollo-configservice和apollo-adminservice都已经启动完成并注册到Eureka

启动Apollo-Portal

Main class配置

com.ctrip.framework.apollo.portal.PortalApplication
-Dapollo_profile=github,auth
-Ddev_meta=http://localhost:8080/
-Dserver.port=8070
-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
-Dspring.datasource.username=root
-Dspring.datasource.password=

如果启用了auth profile的话,默认的用户名是apollo,密码是admin

应用在SIT、UAT、生产环境机器上

1.新增目录/opt/data/目录,且有可读写权限;

2.新增文件:/opt/settings/server.properties 且加入配置:

env=DEV
sit: env=FAT
uat: env=UAT
生产:env=PRO

客户端例子

@Component 设置组件名称
@RefreshScope 指定配置改变可以刷新
@ConfigurationProperties(prefix = "redis.cache")
@Component("sampleRedisConfig")
@RefreshScope
public class SampleRedisConfig {
 private static final Logger logger = LoggerFactory.getLogger(SampleRedisConfig.class);
 private int expireSeconds;
 private String clusterNodes;
 private int commandTimeout;
 private Map<String, String> someMap = Maps.newLinkedHashMap();
 private List<String> someList = Lists.newLinkedList();
 @PostConstruct
 private void initialize() {
 logger.info(
  "SampleRedisConfig initialized - expireSeconds: {}, clusterNodes: {}, commandTimeout: {}, someMap: {}, someList: {}",
  expireSeconds, clusterNodes, commandTimeout, someMap, someList);
 }
 public void setExpireSeconds(int expireSeconds) {
 this.expireSeconds = expireSeconds;
 }
 public void setClusterNodes(String clusterNodes) {
 this.clusterNodes = clusterNodes;
 }
 public void setCommandTimeout(int commandTimeout) {
 this.commandTimeout = commandTimeout;
 }
 public Map<String, String> getSomeMap() {
 return someMap;
 }
 public List<String> getSomeList() {
 return someList;
 }
 @Override
 public String toString() {
 return String.format(
  "[SampleRedisConfig] expireSeconds: %d, clusterNodes: %s, commandTimeout: %d, someMap: %s, someList: %s",
   expireSeconds, clusterNodes, commandTimeout, someMap, someList);
 }
}

设置监听

@Component
public class SpringBootApolloRefreshConfig {
 private static final Logger logger = LoggerFactory.getLogger(SpringBootApolloRefreshConfig.class);
 @Autowired
 private ApolloRefreshConfig apolloRefreshConfig;
 @Autowired
 private SampleRedisConfig sampleRedisConfig;
 @Autowired
 private RefreshScope refreshScope;
 @ApolloConfigChangeListener
 public void onChange(ConfigChangeEvent changeEvent) {
 logger.info("before refresh {}", sampleRedisConfig.toString());
 refreshScope.refresh("sampleRedisConfig");
 logger.info("after refresh {}", sampleRedisConfig.toString());
 }
}

总结

以上所述是小编给大家介绍的spring cloud 阿波罗 apollo 本地开发环境搭建过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 深入理解Spring Cloud Zuul过滤器

    前言 过滤器是Zuul的核心组件,这篇文章我们来详细讨论Zuul的过滤器.下面话不多说,来看看详细的介绍吧. 过滤器类型与请求生命周期 Zuul大部分功能都是通过过滤器来实现的.Zuul中定义了四种标准过滤器类型,这些过滤器类型对应于请求的典型生命周期. (1) PRE:这种过滤器在请求被路由之前调用.我们可利用这种过滤器实现身份验证.在集群中选择请求的微服务.记录调试信息等. (2) ROUTING:这种过滤器将请求路由到微服务.这种过滤器用于构建发送给微服务的请求,并使用Apache Htt

  • Spring Cloud中关于Feign的常见问题总结

    一.FeignClient接口,不能使用@GettingMapping 之类的组合注解 代码示例: @FeignClient("microservice-provider-user") public interface UserFeignClient { @RequestMapping(value = "/simple/{id}", method = RequestMethod.GET) public User findById(@PathVariable(&quo

  • 解决Spring Cloud中Feign/Ribbon第一次请求失败的方法

    前言 在Spring Cloud中,Feign和Ribbon在整合了Hystrix后,可能会出现首次调用失败的问题,要如何解决该问题呢? 造成该问题的原因 Hystrix默认的超时时间是1秒,如果超过这个时间尚未响应,将会进入fallback代码.而首次请求往往会比较慢(因为Spring的懒加载机制,要实例化一些类),这个响应时间可能就大于1秒了.知道原因后,我们来总结一下解决放你. 解决方案有三种,以feign为例. 方法一 hystrix.command.default.execution.

  • JSP spring boot / cloud 使用filter防止XSS

    JSP spring boot / cloud 使用filter防止XSS 一.前言 XSS(跨站脚本攻击) 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的. 二.思路 基于filter拦截,将特殊字符替换为html转意字符 (如

  • 深入解析Spring Cloud内置的Zuul过滤器

    前言 Spring Cloud默认为Zuul编写并启用了一些过滤器,这些过滤器有什么作用呢?我们不妨按照@EnableZuulServer.@EnableZuulProxy两个注解进行展开,相信大家对这两个注解都不陌生(至少都见过吧).如果觉得陌生也没有关系,可将@EnableZuulProxy简单理解为@EnableZuulServer的增强版.事实上,当Zuul与Eureka.Ribbon等组件配合使用时, @EnableZuulProxy是我们常用的注解. 在Spring Cloud的官方

  • spring cloud 之 客户端负载均衡Ribbon深入理解

    一.负载均衡 负载均衡(Load Balance): 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性.其意思就是分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器.企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务. 1.服务端负载均衡:客户端请求到负载均衡服务器,负载均衡服务器根据自身的算法将该请求转给某台真正提供业务的服务器,该服务器将响应数据给负载均衡服务器,负载均衡服务器最

  • spring cloud 阿波罗 apollo 本地开发环境搭建过程

    开源配置中心 - Apollo Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性.服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器. 检出代码 apollo github 可以fork下然后本地使用idea打开 数据库脚本 执行以下脚本创建ApolloConifgDB.ApolloPortalDB apoll

  • Android开发环境搭建过程图文详解

    一.工具 IDE:Android Studio4.1+genymotion (Android studio 自带AVD着实有些不好用,这里选择使用genymotion模拟器) JDK:1.8 SDK:7.1 版本管理:Git 二.环境搭建 1.安装jdk 这里使用的是jdk1.8 ,安装并配置环境变量,通用步骤,不一 一介绍了 2.安装Android Studio 安装:android-studio-ide-201.6858069-windows.exe ,默认安装即可配置sdk (可以选择设置

  • 阿里云go开发环境搭建过程

    开通了一个阿里云来玩,记录一下环境搭建的过程 运行环境 ECS Ubuntu 16.04 64位 过程 #切换到安装文件夹 cd /usr/local #下载go #由于墙的原因,直接下载官方的可能会失败,这里用国内一个论坛的 wget https://dl.gocn.io/golang/1.8.4/go1.8.4.linux-amd64.tar.gz #解压 tar -zxvf go1.8.4.linux-amd64.tar.gz #创建工作目录 mkdir -p GOPATH goProje

  • vue.js多页面开发环境搭建过程

    利用 vue-cli 搭建的项目大都是单页面应用项目,对于简单的项目,单页面就能满足要求.但对于有多个子项目的应用,如果创建多个单页面,显示有点重复,特别是 node_modules 会有多份相同的.如果全部放到单页面项目下,又显得有点乱,这时候通过改造 vue-cli 搭建的项目为多页面,就是一个比较好的解决方法. 如何改造单页面 vue.js 项目为多页面项目?下面是这次改造的具体过程.  一.创建单页面 vue.js 项目 这里直接使用官方提供的脚手架 vue-cli3 创建,具体的过程请

  • Python3 虚拟开发环境搭建过程(图文详解)

    虚拟环境的搭建 为什么要使用虚拟环境# 1.使不同应用开发环境相互独立 2.环境升级不影响其他应用,也不会影响全局的python环境 3.防止出现包管理混乱及包版本冲突 windows平台# 安装 # 建议使用pip3安装到python3环境下 pip3 install virtualenv pip3 install virtualenvwrapper-win 配置虚拟环境管理器工作目录 # 配置环境变量: # 控制面板 => 系统和安全 => 系统 => 高级系统设置 => 环境

  • GO语言开发环境搭建过程图文详解

    一.GO语言开发包 1.什么是GO语言开发包 go 语言开发包其实是对go语言的一种实现,包括相应版本的语法, 编译, 运行, 垃圾回收等, 里面包含着开发 go 语言所需的标准库, 运行时以及其他的一些必要资源 2.GO语言开发包下载地址 Go官方下载地址 : https://golang.org/dl/ Go官方镜像站(上面打不开可使用这个) : https://golang.google.cn/dl/ Go语言中文网下载地址 : https://studygolang.com/dl gop

  • PHP+Oracle本地开发环境搭建方法详解

    安装instant client 首先,是从https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html下载相应的数据库版本对应的basic和devel的rpm包或zip压缩包.我这里选择rpm包.然后安装: rpm -Uvh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm rpm -Uvh oracle-instantclient11.2-devel-11

  • 基于visual studio code + react 开发环境搭建过程

    开发环境 windows 开发工具 visual studio code node 安装和 npm windows 安装node 可以直接在 node官网直接下载直接当作普通软件安装即可. 安装完成可以在控制台中运行node测试是否安装成功 win + r 输入 cmd ,直接在终端输入node -v 输出版本号及已经成功安装. 目前新版本的node自带npm(npm 是随同 node 一起安装的包管理工具).这里安装好了 node并且测试安装成功之后,可以继续在控制台输入 npm -v 检查是

  • monkeyrunner之安卓开发环境搭建教程(1)

    在学习monkeyrunner之前,让我们先搭建好eclipse安卓开发环境. 对于程序开发人员而言,eclipse并不陌生,它提供了一个非常广阔的平台来开发程序.同样也可以用它来开发android程序.但是在eclipse中并不能直接开发android程序,需要我们安装一个ADT插件. 在ADT安装前,还有几个前提条件: 1.jdk已安装,并配置好环境变量.关于jdk的环境变量配置这里不做赘述. 2.eclipse已下载并解压.eclipse官网http://www.eclipse.org/d

  • spring mvc4.1.6 spring4.1.6 hibernate4.3.11 mysql5.5.25开发环境搭建图文教程

    一.准备工作 开始之前,先参考上一篇:  struts2.3.24 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明 思路都是一样的,只不过把struts2替换成了spring mvc 二.不同的地方 工程目录及jar包: action包改成controller:  删除struts2 jar包,添加spring mvc包(已有的话,不需添加): web.xml配置:  跟之前不同的地方是把struts2的过滤器替换成了一个ser

随机推荐