Apollo搭建使用

Apollo的执行过程

image

Apollo的原理

Client(Java应用端)通过域名访问Meta Server获取Config Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Client侧会做load balance、错误重试

image

Apollo的引入

1、准备工作

准备Apollo域名

2、项目引入

  • 新建Springboot项目;
  • 1、公司私服地址:https://xxxxxxx.com
  • 2、本文中Springboot版本为:spring-boot-starter-parent  2.5.6
  • pom引入 Apollo是经过公司技术调整的新包,故需要引入以下pom(==非常重要==)
<dependency>
			<groupId>com.ctrip.framework.apollo</groupId>
			<artifactId>apollo-client</artifactId>
			<version>1.5.1.7</version>
		</dependency>
		<dependency>
			<groupId>com.ctrip.framework.apollo</groupId>
			<artifactId>apollo-core</artifactId>
			<version>1.5.1.7</version>
		</dependency> 
  • 新增配置文件 bootstrap.properties
//相对来说重要、用来匹配配置数据
app.id=vx-tms-order
apollo.bootstrap.enabled=true
apollo.bootstrap.eagerLoad.enabled=true
apollo.bootstrap.namespaces=application.properties
  • 新增配置文件 apollo-env.properties 主要用来做环境区分 (==ip地址也很重要、需要找运维要==)
//对应的ip地址也需要找运维要一个,否则本地拉不到
dev.meta=http://40.73.114.140:8040/
  • 代码 启动类添加注解 @EnableApolloConfig
@EnableApolloConfig
@SpringBootApplication
public class OrderApplication {

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

}

启动

1、本地启动

  • 正常情况下,本地可以是读取到配置的,并无其他特殊配置;如果有报错、则看常见错误问题解决

2、环境上启动

  • 正常环境上启动为运维在配置启动命令时,直接配置上去

常见错误问题情景

1、本地读取不到配置

错误截图:

2022-07-27 19:24:45.405  WARN 18980 --- [ngPollService-1] c.c.f.a.i.RemoteConfigLongPollService    : Long polling failed, will retry in 2 seconds. appId: vx-tms-app, cluster: default, namespaces: application.properties, long polling url: null, reason: Get config services failed from http://apollo.meta/services/config?appId=vx-tms-app&ip=10.92.33.45 [Cause: Could not complete get operation [Cause: apollo.meta]]
2022-07-27 19:24:47.424  WARN 18980 --- [           main] c.c.f.a.i.AbstractConfigRepository       : Sync config failed, will retry. Repository class com.ctrip.framework.apollo.internals.RemoteConfigRepository, reason: Get config services failed from http://apollo.meta/services/config?appId=vx-tms-app&ip=10.92.33.45 [Cause: Could not complete get operation [Cause: apollo.meta]]
2022-07-27 19:24:49.443  WARN 18980 --- [ngPollService-1] c.c.f.a.i.RemoteConfigLongPollService    : Long polling failed, will retry in 4 seconds. appId: vx-tms-app, cluster: default, namespaces: application.properties+application, long polling url: null, reason: Get config services failed from http://apollo.meta/services/config?appId=vx-tms-app&ip=10.92.33.45 [Cause: Could not complete get operation [Cause: apollo.meta]]

解决办法:

1、是SpringCloud项目、并且没有包含spring-cloud-starter-bootstrap 则需要引入pom
        
        <dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-bootstrap</artifactId>
		</dependency>
		
2、引入了本地还爆读不到配置,则再检查是不是读取不到 apollo-env.properties
PS:(目前这个问题没找到原因,替代方案是 在idea的启动命令里,配置上 -Denv=dev)

2、本地能读取apollo的pom包,但是部署时,取不到、报错如下

2022-07-27 19:24:45.405  WARN 18980 --- [ngPollService-1] c.c.f.a.i.RemoteConfigLongPollService    : Long polling failed, will retry in 2 seconds. appId: vx-tms-app, cluster: default, namespaces: application.properties, long polling url: null, reason: Get config services failed from http://apollo.meta/services/config?appId=vx-tms-app&ip=10.92.33.45 [Cause: Could not complete get operation [Cause: apollo.meta]]
2022-07-27 19:24:47.424  WARN 18980 --- [           main] c.c.f.a.i.AbstractConfigRepository       : Sync config failed, will retry. Repository class com.ctrip.framework.apollo.internals.RemoteConfigRepository, reason: Get config services failed from http://apollo.meta/services/config?appId=vx-tms-app&ip=10.92.33.45 [Cause: Could not complete get operation [Cause: apollo.meta]]
2022-07-27 19:24:49.443  WARN 18980 --- [ngPollService-1] c.c.f.a.i.RemoteConfigLongPollService    : Long polling failed, will retry in 4 seconds. appId: vx-tms-app, cluster: default, namespaces: application.properties+application, long polling url: null, reason: Get config services failed from http://apollo.meta/services/config?appId=vx-tms-app&ip=10.92.33.45 [Cause: Could not complete get operation [Cause: apollo.meta]]

解决办法

本地和环境上分属不同的私服库,需要在pom代码中指定对应的仓库;具体的直接在私服中搜寻后,手动替换

<repositories>
		<repository>
			<id>vxmaven</id>
			<name>vxmaven</name>
			<url>https://nexus3.vx56.com/repository/maven-releases/</url>
		</repository>
		<repository>
			<id>vx-local-maven</id>
			<name>vx-local-maven</name>
			<url>http://40.73.68.126:8080/repository/vx-hosted/</url>
		</repository>
		<repository>
			<id>vx-local-maven-proxy</id>
			<name>vx-local-maven</name>
			<url>http://40.73.68.126:8080/repository/vx-proxy/</url>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>vxmaven</id>
			<name>vxmaven</name>
			<url>https://nexus3.vx56.com/repository/maven-releases/</url>
		</pluginRepository>
		<pluginRepository>
			<id>vx-local-maven</id>
			<name>vx-local-maven</name>
			<url>http://40.73.68.126:8080/repository/vx-hosted/</url>
		</pluginRepository>
		<pluginRepository>
			<id>vx-local-maven-proxy</id>
			<name>vx-local-maven-proxy</name>
			<url>http://40.73.68.126:8080/repository/vx-proxy/</url>
		</pluginRepository>
	</pluginRepositories>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Apache Apollo服务器是一款高性能的消息代理服务器,可以用于构建分布式系统中的消息传递机制。以下是Apache Apollo服务器搭建的步骤: 1. 下载Apache Apollo服务器的安装包,并解压到指定的目录。 2. 配置Apollo服务器的环境变量,将安装目录添加到系统的PATH变量中。 3. 启动Apollo服务器,可以使用命令行启动或者使用脚本启动。 4. 配置Apollo服务器的参数,包括端口号、用户名密码等。 5. 创建消息队列和主题,可以使用Web管理界面或者命令行工具创建。 6. 使用客户端程序连接到Apollo服务器,发送和接收消息。 7. 监控和管理Apollo服务器,可以使用Web管理界面或者命令行工具进行监控和管理。 以上是Apache Apollo服务器搭建的基本步骤,需要根据具体的需求进行配置和调整。 ### 回答2: Apache Apollo是一个高性能的消息代理服务器,它采用了先进的AMQP 1.0协议,使得它在数据处理速度和灵活性方面都能有很好的表现。下面简单介绍一下Apache Apollo服务器的搭建。 1. 下载和解压缩 首先,需要从官方网站下载Apache Apollo服务器的安装包,并解压缩到本地目录。 2. 配置服务器 接下来,需要在解压缩后的目录中,找到conf文件夹下面的apollo.xml文件,并将其中的以下内容进行修改: - broker.xml中的transportConnector和virtualHost元素,调整为自己需要的端口和地址,这里可以指定多个端口和地址。 - login.config中的用户账号信息。 3. 启动服务器 完成上述配置后,就可以启动Apache Apollo服务器了。在解压缩后的目录下,执行以下命令即可启动服务器: ./bin/apollo-broker run 4. 设置开机自启 为了实现开机自启动,可以在/etc/init.d目录中创建一个脚本,然后在其中使用启动服务器的命令,以达到开机自启的效果。 以上就是简单的Apache Apollo服务器的搭建过程,需要注意的是,服务器的配置文件需要按照实际需求进行设置,例如可以设置消息队列的大小,调整网络缓存等等,以提升服务器的性能和可靠性。 ### 回答3: Apache Apollo是一个高性能、可靠的消息代理服务器,适用于处理大规模的消息流和事件处理。它是由Apache Foundation开发和维护的,完全开源,是一种灵活的、易于使用的消息传递解决方案。 在进行Apache Apollo服务器的搭建之前,需要安装Java环境,以便启动Apollo服务器。可以通过以下步骤来搭建Apache Apollo服务器: 第一步:下载和解压Apollo软件包 可以从Apache Apollo的官方网站上下载需要的软件包。解压缩文件后,进入bin目录,并运行脚本apollo-broker命令来启动Apollo服务器。在Windows系统下,可以双击运行apollo.bat文件。 第二步:配置Apollo服务器 可以通过修改conf目录下的apollo.xml文件来进行Apache Apollo服务器的配置。在这个配置文件中,可以配置相应的端口、日志记录、身份验证、消息队列等。 第三步:添加消息队列 在Apollo服务器上,可以添加多个消息队列。可以使用apollo script命令来创建新的消息队列。例如,如果要创建一个名为“MyQueue”的新队列,可以运行如下命令: apollo create /queues/MyQueue --type queue 第四步:测试Apache Apollo服务器 可以使用web管理界面或命令行工具来测试Apache Apollo服务器。在web管理界面下,可以访问http://localhost:61680来查看服务器的状态和队列的相关信息。在命令行下,运行apollo-broker命令,可以查看服务器运行日志和队列的报告信息。 需要注意的是,Apache Apollo服务器的配置和使用都需要一定的技术水平和经验。如果遇到问题,可以查看官方文档或论坛进行交流和帮助。同时,应该加强对服务器的安全性和保密性,避免信息泄露和攻击。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值