Apollo配置中心拉取,通过单独打包解决 Get config services failed from http://阿里云局域网访问IP:8080/services/config?appId=MyAppId&ip=192.168.145.1 Cause Could not complete get operation
Apollo配置中心拉取,通过单独打包解决 Get config services failed from http://阿里云局域网访问IP:8080/services/config?appId=MyAppId&ip=192.168.145.1 Cause Could not complete get operation
业务场景:
在公司内部局域网可以正常访问阿里云局域网,apollo公共包,在apollo db中配置的是阿里云局域网的IP,在微服务中项目可以正常的启动且拉取apollo的文件到本地。
但是如果是外地办公,通过VPN的方式,是无法访问阿里云局域网,只能通过域名访问或者阿里云公网IP来访问。需要单独打包配置阿里云公网IP来启动微服务项目且拉取配置文件到本地。
1. 方法1-临时解决
微服务启动日志临时解决,本地文件自己追加写入 需要的配置项,弊端:但是项目启动的时候,仍然一直不停的拉取,且报错:
Get config services failed from http://阿里云局域网访问IP:8080/services/config?appId=MyAppId&ip=192.168.145.1 Cause Could not complete get operation
2023-01-05 11:30:09.443 [main] INFO c.c.f.f.i.p.DefaultApplicationProvider#initAppId [line:96] - App ID is set to myProject by app.id property from /META-INF/app.properties
2023-01-05 11:30:09.444 [main] INFO c.c.f.f.i.p.DefaultServerProvider#initialize [line:34] - Loading C:\opt\settings\server.properties
2023-01-05 11:30:09.445 [main] INFO c.c.f.f.i.p.DefaultServerProvider#initEnvType [line:109] - Environment is set to [FAT] by JVM system property 'env'.
2023-01-05 11:30:09.445 [main] INFO c.c.f.f.i.p.DefaultServerProvider#initDataCenter [line:155] - Data Center is set to [fat1] by property 'idc' in server.properties.
2.maven打包方法及排除依赖方法
maven打包的时候,需要注释掉:
<!--<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.2.0</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<verbose>true</verbose>
<dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<failOnNoGitDirectory>false</failOnNoGitDirectory>
</configuration>
</plugin>-->
注释掉:
<!--<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.2.0</version>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<failOnNoGitDirectory>false</failOnNoGitDirectory>
</configuration>
</plugin>-->
D:\git\2021-7\apollo>mvn clean package -Dmaven.test.skip=true -e -X > ddd3.txt maven打包命令!!!
maven打包命令:并且写入打包日志文件
D:\git\2021-7\apollo>mvn clean package -Dmaven.test.skip=true -e -X > bbb.txt
查看依赖命令:
D:\git\2021-7\myProject>gradle dependencies >> 1112.txt
排除掉依赖:
compile ('com.test.myProject:3.3.6-SNAPSHOT'){
exclude module:'autoMyTest-api'
exclude module:'apollo-client'
}
3.apollo-env.properties文件,实际上该文件没有生效。最终读取的是apollo db中的配置项。
local.meta=http://localhost:8080
dev.meta=http://xx:8080
fat.meta=http://yy:8080
uat.meta=http://zz:8080
lpt.meta=${lpt_meta}
pro.meta=http://dd:8080
4.修改apollo源代码,将代码中的配置地址写死,单独打包。
更改代码: ConfigServiceLocator.java 代码中直接写死:
/// 覆盖IP
for (int j = 0; j <services.size(); j++){
ServiceDTO serviceDTO = services.get(j);
if(serviceDTO != null) {
System.out.println("serviceDTO homepageUrl=" + serviceDTO.getHomepageUrl());
serviceDTO.setHomepageUrl("http://阿里云公网访问IP:8080/");
System.out.println("serviceDTO homepageUrl after=" + serviceDTO.getHomepageUrl());
servicesNew.add(serviceDTO);
}
}
//单独打包
compile('fakepath:apollo-core:0.13.3')
compile('fakepath:apollo-client:0.13.3')
//提交git需要恢复:(需要注意的点)
compile('com.ctrip.framework.apollo:apollo-client:0.11.0-SNAPSHOT')
compile('com.ctrip.framework.apollo:apollo-core:0.11.0-SNAPSHOT')
Apollo新建fat5作为本地的配置中心。(**解决方案**)
4.解决思路:DEBUG设置断点,增加输出日志来跟踪程序的运行。
DEBUG >> 发现了问题:不在apollo-env.properties文件中获取,没有生效。是单独从数据库中读取的,但是数据库中不能修改(阿里云局域网大家使用的),所以只能单独打包来访问(VPN办公环境)。
select * from ApolloConfigDB.ServerConfig;
Key | Cluster | Value | Comment
eureka.service.url | default | http://阿里云局域网访问IP:8080/eureka/ | Eureka服务Url,多个service以英文逗号分隔。
Apollo配置中心拉取,通过单独打包解决 Get config services failed from http://阿里云局域网访问IP:8080/services/config?appId=MyAppId&ip=192.168.145.1 Cause Could not complete get operation的更多相关文章
- Apollo 配置中心详细教程
一.简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理 ...
- Apollo配置中心
背景: 当前我们项目,所有的配置基本都是通过本地properties 文件进行配置的,比如ip地址.端口.消息中间件和数据库连接的各种参数,当我们需要切换环境或调整参数的时候,我们必须手动的修改这些配 ...
- Apollo配置中心转
尊重原创,本文转自:https://www.cnblogs.com/FlyAway2013/p/8811385.html 前我们项目,所有的配置基本都是通过本地properties 文件进行配置的,比 ...
- Apollo配置中心的实战
31.携程 Apollo 配置中心介绍~1.mp4 32.Apollo核心概念~1.mp4 32.Apollo核心概念~1.mp4 每个应用需要有一个唯一的AppID 要在指定的机器上的server. ...
- apollo配置中心初探
近在搞微服务框架的开发,需要有一个配置中心来满足统一管理业务应用以及组件的配置,在此期间也使用了多个配置中心比如:spring cloud config,自研的配置中心,当然还有apollo. spr ...
- (转)实验文档3:在kubernetes集群里集成Apollo配置中心
使用ConfigMap管理应用配置 拆分环境 主机名 角色 ip HDSS7-11.host.com zk1.od.com(Test环境) 10.4.7.11 HDSS7-12.host.com zk ...
- Apollo配置中心介绍与使用指南
转载于https://github.com/ctripcorp/apollo,by Ctrip, Inc. Apollo配置中心介绍 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中 ...
- Spring Cloud 系列之 Apollo 配置中心(一)
背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址等等. 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限.审核机 ...
- k8s-2-集成apollo配置中心
主题: 在k8s中集成Apollo配置中心 架构图 一.配置中心概述 配置的几种方式 本课讲得是基于配置中心数据库实现 配置管理的现状 常见的配置中心 主讲:k8s configmap,apollo ...
- 基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)
基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势) 前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候 ...
随机推荐
- 【译】.NET 7 中的性能改进(六)
原文 | Stephen Toub 翻译 | 郑子铭 矢量化 (Vectorization) SIMD,即单指令多数据 (Single Instruction Multiple Data),是一种处理 ...
- Wpf Border圆角 设置不成功
//错误的用法 这样子是不会出现圆角的,哪怕你把CornerRadius设置到1000 <Border CornerRadius="3" Width="100&qu ...
- PostgreSQL 打印详细错误调用栈 - pg_backtrace
一.用法 create extension pg_backtrace; select pg_backtrace_init(); 二.示例 postgres=# select count(*)/0.0 ...
- 97、UserAgentUtils
user-agent-utils 是一个用来解析 User-Agent 字符串的 Java 类库. 其能够识别的内容包括: 超过150种不同的浏览器: 7种不同的浏览器类型: 超过60种不同的操作系统 ...
- mysql 根据父id查询下级所有数据
select id,apply_resource_name from ( select t1.id,t1.apply_resource_name, if(find_in_set(parent_id, ...
- python数据方面的文章
excel 对接 jupyter https://mp.weixin.qq.com/s/NTCIOs_Yz3MIRgT8S36yGQ pandas 常用分拆数据 https: ...
- 【C学习笔记】day5-2 写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)
#include <stdio.h> #include <stdlib.h> int find(int s) { int n = 0; scanf_s("%d&quo ...
- risv 深入问题总结
1.risv 如何实现锁机制, 通过哪个寄存器实现 2.risv 如何实现堆栈切换,保存哪些寄存器, 与ARM保持寄存器的差异 3.risv 的中断异常 与 arm中断异常的异同
- poi 5.2 导出
如果能给你带来帮助,不胜荣幸,如果有错误也请批评指正. 1:maven 依赖,现在好多都是用的poi 3.6 和 poi3.9 的jar,项目升级了,现在得用5.x的了,所以就用5.x的给大家简单的演 ...
- xxl-job调度任务简单使用
简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用. https://www.cnblogs.com/x ...