携程Apollo()安装部署以及java整合实现服务器部署
可以按照apollo wiki 进⾏部署
安装 Java 环境
java
创建数据库
Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql⽂件,只需要导⼊数据库即可。执⾏两个sql⽂件
sql/apolloportaldb.sql
sql/apolloconfigdb.sql
会创建两个数据库
下载安装包
服务器部署
将快速部署包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=10.168.16.125:8080
admin_server_url=10.168.16.125:8090
portal_url=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
Config service started. You may visit localhost:8080 for service status now!
Waiting for admin
Admin service started
==== starting portal ====
Portal logging file is ./portal/apollo-portal.log
Started [10846]
Waiting for
Portal started. You can visit localhost:8070 now!
使⽤Apollo配置中⼼
默认⽤户名密码是 apollo admin
登陆后如下界⾯
可以创建⾃⼰的项⽬
添加namespace
namespace 相当于配置⽂件名称
在namespace中添加属性,可以以⽂本形式添加
可以⾃⼰研究琢磨下
java服务整合
pom整合
官⽅提供的maven
<dependency>java dubbo
<groupId&ip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId&ip.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 各环境的服务器地址
修改环境
修改/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.fig.PropertyPlaceholderConfigurer的,请替换成t.support.PropertySourcesPlaceholderConfigurer。Spring 3.1以后就不建议使⽤PropertyPlaceholderConfigurer了,要改⽤PropertySourcesPlaceholderConfigurer。
基于XML的配置
注:需要把apollo相关的xml namespace加到配置⽂件头上,不然会报xml语法错误。
1.注⼊默认namespace的配置到Spring中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xmlns:apollo="ip/schema/apollo"
xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd
ip/schema/apollo ip/schema/apollo.xsd">
<!-- 这个是最简单的配置形式,⼀般应⽤⽤这种形式就可以了,⽤来指⽰Apollo注⼊application namespace的配置到Spring环境中 -->
<apollo:config/>
<bean class="ip.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="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xmlns:apollo="ip/schema/apollo"
xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd
ip/schema/apollo ip/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="ip.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="${istry.address}"/>
<bean id="xxxService" class="ache.service.impl.RedisServiceImpl"/>
<dubbo:service interface="service.RedisService" ref="redisService"
version="${dubbo.version}"/>
dubbo 默认没有不需要配置,但使⽤apollo后没有⾃动注⼊dubbo注册地址,需要⼿动声明,原因待定 <dubbo:registry address="${istry.address}"/>
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。