携程Apollo(阿波罗)安装部署以及java整合实现

服务器部署

可以按照apollo wiki 进行部署

https://github.com/ctripcorp/apollo/wiki/Quick-Start

安装 Java 环境

java

创建数据库

Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。
执行两个sql文件
sql/apolloportaldb.sql
sql/apolloconfigdb.sql
会创建两个数据库

下载安装包

https://github.com/nobodyiam/apollo-build-scripts

服务器部署

将快速部署包apollo-quick-start放进服务器
解压文件

服务器配置

Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑demo.sh,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息。

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

# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=用户名
apollo_portal_db_password=密码(如果没有密码,留空即可)

修改服务器端口地址信息

meta server url

config_server_url=http://10.168.16.125:8080
admin_server_url=http://10.168.16.125:8090
portal_url=http://10.168.16.125:8070

如果部署在linux服务器上需要将地址改为服务器IP地址
注意:不要修改demo.sh的其它部分

确保端口未被占用

Quick Start脚本会在本地启动3个服务,分别使用8070, 8080, 8090端口,请确保这3个端口当前没有被使用。

例如,在Linux/Mac下,可以通过如下命令检查:

lsof -i:8080

执行启动脚本

./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!

使用Apollo配置中心

访问 服务器的IP:8070 可以进行访问
例如 :http://10.168.16.125:8070

默认 用户名密码是 apollo admin
登陆后如下界面

可以创建自己的项目

添加namespace

namespace 相当于配置文件名称
在namespace中添加属性,可以以文本形式添加

可以自己研究琢磨下

java服务整合

pom整合

官方提供的maven

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

发现拉不下来jar包
解决方案
下载源代码
https://github.com/ctripcorp/apollo.git
编译其中的 apollo-client 包并安装到本地
引入编译后的jar包即可

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

现有应用接入

在应用接入Apollo之后,这些配置是可以非常方便的迁移到Apollo的,具体步骤如下:

在Apollo为应用新建项目
在应用中配置好META-INF/app.properties
把原先配置(必须是properties格式)复制一下,然后通过Apollo提供的文本编辑模式全部粘帖到应用的application namespace,发布配置
如果原来是其它格式,如yml,请先转成properties格式
把原先的配置文件如bootstrap.properties, application.properties从项目中删除

app.properties 内容是创建项目的APPID(应用ID)如前面创建的12345

# test
app.id=12345

并在resources 下加入apollo-env.properties 各环境的服务器地址

local.meta=http://10.168.16.125:8080
dev.meta=http://10.168.16.125:8080
fat.meta=${fat_meta}
uat.meta=${uat_meta}
lpt.meta=${lpt_meta}
pro.meta=${pro_meta}

修改环境

修改/opt/settings/server.properties(Mac/Linux)或C:\opt\settings\server.properties(Windows)文件,设置env为DEV:

env=DEV

Spring 整合

apollo启动配置

<apollo:config/>

apollo加载namespace配置

 <apollo:config namespaces="dubbo" order="1"/>

####官方配置如下

Apollo也支持和Spring整合(Spring 3.1.1+),只需要做一些简单的配置就可以了。

Apollo目前既支持比较传统的基于XML的配置,也支持目前比较流行的基于Java(推荐)的配置。

需要注意的是,如果之前有使用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的,请替换成org.springframework.context.support.PropertySourcesPlaceholderConfigurer。Spring 3.1以后就不建议使用PropertyPlaceholderConfigurer了,要改用PropertySourcesPlaceholderConfigurer。

基于XML的配置

注:需要把apollo相关的xml namespace加到配置文件头上,不然会报xml语法错误。

1.注入默认namespace的配置到Spring中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:apollo="http://www.ctrip.com/schema/apollo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.ctrip.com/schema/apollo http://www.ctrip.com/schema/apollo.xsd">
  <!-- 这个是最简单的配置形式,一般应用用这种形式就可以了,用来指示Apollo注入application namespace的配置到Spring环境中 -->
  <apollo:config/>
  <bean class="com.ctrip.framework.apollo.spring.TestXmlBean">
    <property name="timeout" value="${timeout:100}"/>
    <property name="batch" value="${batch:200}"/>
  </bean>
</beans>

2.注入多个namespace的配置到Spring中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:apollo="http://www.ctrip.com/schema/apollo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.ctrip.com/schema/apollo http://www.ctrip.com/schema/apollo.xsd">
  <!-- 这个是最简单的配置形式,一般应用用这种形式就可以了,用来指示Apollo注入application namespace的配置到Spring环境中 -->
  <apollo:config/>
  <!-- 这个是稍微复杂一些的配置形式,指示Apollo注入FX.apollo和FX.soa namespace的配置到Spring环境中 -->
  <apollo:config namespaces="FX.apollo,FX.soa"/>
  <bean class="com.ctrip.framework.apollo.spring.TestXmlBean">
    <property name="timeout" value="${timeout:100}"/>
    <property name="batch" value="${batch:200}"/>
  </bean>
</beans>

dubbo服务整合

 <apollo:config/>
<apollo:config namespaces="dubbo" order="1"/>

  <!--   公共信息,也可以用dubbo.properties配置 -->
  <dubbo:application name="${dubbo.application.name}" />
  <!--   需要强制指定地址,配置文件默认可以不配置 -->
  <dubbo:registry address="${dubbo.registry.address}"/>

  <bean id="xxxService" class="com.xxx.cache.service.impl.RedisServiceImpl"/>
  <dubbo:service interface="com.xxx.xxx.service.RedisService" ref="redisService"
          version="${dubbo.version}"/>

dubbo 默认没有不需要配置,但使用apollo后没有自动注入dubbo注册地址,需要手动声明,原因待定

 <dubbo:registry address="${dubbo.registry.address}"/>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java客户端线上Apollo服务端的实现

    1.指定环境 1.1 在C:\opt\settings\下有server.properties env=DEV是对应服务器上的如下图 apollo.meta=http://192.168.1.143:8070是你服务端的端口号   1.2 在C:\opt\data\babel023\config-cache有这四个文件 2.在META-INF下创建app.properties app.properties下的内容app.id对应Apollo服务端的id 3.创建个SimpleApolloConf

  • 携程Apollo(阿波罗)安装部署以及java整合实现

    服务器部署 可以按照apollo wiki 进行部署 https://github.com/ctripcorp/apollo/wiki/Quick-Start 安装 Java 环境 java 创建数据库 Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,我们把数据库.表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可. 执行两个sql文件 sql/apolloportaldb.sql sql/apolloconfigdb.sql 会创建两

  • ASP.NET Core集成Apollo(阿波罗)

    目录 1.介绍 2.架构和模块 2.1用户在配置发布后的实时推送设计 2.2Apollo客户端的实现原理 2.3环境配置(Environment) 3.Apollo在Windows上快速启动 3.1准备工作 3.1.1 Java jdk 3.1.2MySQL 3.1.3下载快速启动安装包 3.2安装步骤 3.2.1创建数据库 3.2.2配置数据库连接信息 3.3启动Apollo配置中心 4.ASP.NET Core集成Apollo快速开发 4.1Apollo环境配置 4.2ASP.NET Cor

  • vue仿携程轮播图效果(滑动轮播,下方高度自适应)

    先看案例,使用vue+swiper实现,slide不同高度时,动态计算盒子高度,让其下方高度自适应的效果 首先搭建vue项目,这里不做过多说明,然后安装swiper npm install swiper --save-dev 1. js部分:初始化swiper组件,vue要在mounted生命周期中进行初始化,代码如下: import Swiper from 'swiper' import { TweenMax, Power2 } from 'gsap' 初始化时调用resize函数,计算屏幕容

  • SQL Server携程核心系统无感迁移到MySQL实战

    目录 前言 一.架构综述 二.应用场景 1.新单秒级各端同步 2.自动发单与工作台 3.查询与数据分析 三.系统升级实践 1.分布式订单缓存 2.无损迁移工艺 3.数仓衔接 四.核心问题精编 1.SQLServer & MySQL 流量迁移如何细粒度监控 2.如何解决双写期间DB一致性问题 3.引入订单缓存后导致的数据不同步问题处理 4.存量订单数据如何一次性校准 5.一些数据库特性差异问题 五.预警实践 1.百亿级数据差异校验预警 2.ALL Shard 实时订单总量监控 3.“流浪地球”实操

  • CentOS中mysql cluster安装部署教程

    一.安装要求 安装环境:CentOS-6.5-32bit 软件名称:mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz 下载地址:http://mysql.mirror.kangaroot.net/Downloads/ 软件包:mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz 软件包存放目录:/usr/local 管理节点(MGM): 192.168.1.71 数据节点1(NDBD1):192.168.1.72 数

  • 详解在Redis在Centos7上的安装部署

    Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能.所以Redis也可以被看成是一个数据结构服务器. Redis的所有数据都是保存在内存中(效率高),然后不定期的通过异步方式保存到磁盘上(这称为"半持久化模式"):也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为&

  • Oracle WebLogic Server 12.2.1.2安装部署教程

    本教程为大家分享了Oracle WebLogic Server 12.2.1.2安装与项目部署,供大家参考,具体内容如下 1.下载 http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-for-dev-1703574.html 选择红框里面下载其中一个就可以. 现在不分windows版本和linux版本,为了兼容统一只发布jar版,安装过程方法一样 2.安装 直接执行java -d64 -jar D:\xxx\xx

  • 基于openstack安装部署私有云详细图文教程

    本文主要分享的是云计算.openstack的使用.私有云平台建设.云服务器云硬盘的构建和使用.从基本概念入手到私有云建设,信息量非常大.对于openstack的安装部署都是从官方文档中一步步的介绍,内容非常详细. 一.云计算 基本概念 云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源.云是网络.互联网的一种比喻说法.过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象.因此,云计算甚至

  • OpenStack安装部署Liberty Neutron

    最近在两台物理机环境中部署了OpenStack的Liberty版本,各个模块都遇到或多或少的问题,但尤以Neutron的问题最让人头疼.尽管OpenStack一直致力于简化Neutron的部署,但对于非网络技术人员来说依然存在着很大的挑战,根本原因还是由于网络自身的复杂性所导致的,因此想要成功部署Neutron还是需要网络基础的,但这并不意味着没有网络基础就不能成功部署Neutron并使其工作.本文将总结Neutron的安装部署步骤,并对遇到的问题进行详细的描述,旨在提供解决问题的思路或者给与一

  • CentOS 6.4下安装部署OpenStack云计算平台的方法

    前言 OpenStack 是一个开源的 IaaS(基础设施及服务)云计算平台,让任何人都可以自行建立和提供云端运算服务. OpenStack 由一系列相互关联的项目提供云基础设施解决方案的各个组件,核心项目(9 个): 1.计算 (Compute) - Nova: 2.网络和地址管理 - Neutron: 3.对象存储 (Object) - Swift: 4.块存储 (Block) - Cinder: 5.身份 (Identity) - keystone: 6.镜像 (Image) - Glan

随机推荐