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的更多相关文章

  1. Apollo 配置中心详细教程

    一.简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理 ...

  2. Apollo配置中心

    背景: 当前我们项目,所有的配置基本都是通过本地properties 文件进行配置的,比如ip地址.端口.消息中间件和数据库连接的各种参数,当我们需要切换环境或调整参数的时候,我们必须手动的修改这些配 ...

  3. Apollo配置中心转

    尊重原创,本文转自:https://www.cnblogs.com/FlyAway2013/p/8811385.html 前我们项目,所有的配置基本都是通过本地properties 文件进行配置的,比 ...

  4. Apollo配置中心的实战

    31.携程 Apollo 配置中心介绍~1.mp4 32.Apollo核心概念~1.mp4 32.Apollo核心概念~1.mp4 每个应用需要有一个唯一的AppID 要在指定的机器上的server. ...

  5. apollo配置中心初探

    近在搞微服务框架的开发,需要有一个配置中心来满足统一管理业务应用以及组件的配置,在此期间也使用了多个配置中心比如:spring cloud config,自研的配置中心,当然还有apollo. spr ...

  6. (转)实验文档3:在kubernetes集群里集成Apollo配置中心

    使用ConfigMap管理应用配置 拆分环境 主机名 角色 ip HDSS7-11.host.com zk1.od.com(Test环境) 10.4.7.11 HDSS7-12.host.com zk ...

  7. Apollo配置中心介绍与使用指南

    转载于https://github.com/ctripcorp/apollo,by Ctrip, Inc. Apollo配置中心介绍 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中 ...

  8. Spring Cloud 系列之 Apollo 配置中心(一)

    背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址等等. 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限.审核机 ...

  9. k8s-2-集成apollo配置中心

    主题: 在k8s中集成Apollo配置中心 架构图 一.配置中心概述 配置的几种方式 本课讲得是基于配置中心数据库实现 配置管理的现状 常见的配置中心 主讲:k8s configmap,apollo ...

  10. 基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)

    基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)   前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候 ...

随机推荐

  1. JZOJ 3234. 阴阳

    阴阳 题面 分析 个人认为是极好的题,很容易写 如果你学点分治是无奈背板的,那就做做这道题,加深你对点分治的理解 一般的,处理树上大规模统计问题,我们分治的关键是找一棵子树的重心 找到分治中心,即新一 ...

  2. NSAIDs以优化剂量治疗中轴型SpA:聚焦6周期间骶髂关节MRI变化

    NSAIDs以优化剂量治疗中轴型SpA:聚焦6周期间骶髂关节MRI变化 PresentID: OP0170 TREATMENT OF AXIAL SPONDYLOARTHRITIS WITH AN O ...

  3. 05#Web 实战:可拖拽的侧边栏

    效果演示图 可拖拽的左.右侧边栏的使用情况还是挺多的,博客园后台管理的左侧边栏就可以拖拽哟!效果演示如下图: HTML 代码 <div class="container"&g ...

  4. OpenLayers点聚合

    1. 引言 当页面加载的数据量过大时,拖拽.缩放时往往会产生卡顿 然而,页面实现的内容是有限的,人眼可见范围也是有限的,过于微小的部分是可以不予显示的 聚合是解决这种问题的一个办法,当数据比较多,单个 ...

  5. echarts 各个配置项详细说明总结

    theme = { // 全图默认背景 // backgroundColor: 'rgba(0,0,0,0)', // 默认色板 color: ['#ff7f50','#87cefa','#da70d ...

  6. (五)REDIS-哨兵与集群

    概念介绍: Sentinel(哨兵)是Redis的高可用性解决方案,主要是通过一个或多个Sentinel实例组成的Sentinel系统对任意多个主服务器以及这些主服务器的所有从服务器进行监视,当某个主 ...

  7. Classical Cipher

    [NPUCTF2020]Classical Cipher 难得做到一道古典密码的题目,打开后有一个flag.zip和一个提示. 解密后的flag请用flag{}包裹 压缩包密码:gsv_pvb_rh_ ...

  8. Vulnhub:Five86-2靶机

    kali:192.168.111.111 靶机:192.168.111.211 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --script=http-enum 192.168. ...

  9. Vue框架中有关 computed的相关知识

    1,传统使用computed属性的方式如下: 注意:此时如果我们点击修改的时候会有如下警告(表示computed属性不可以修改,如果非得修改,我们应该如下下图所示操作) 2,修改computed属性的 ...

  10. vue实现瀑布流

    <template> <div id="app"> <ul> <li ref='waterfallItem' v-for="(i ...