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 3527.迷宫花坛(garden)

    题面 思路 考场想到 \(tarjan\) 缩点 然而忘了缩点怎么打 于是甩了个暴力 改题时学了个圆方树 发现挺好用 于是······注意重边 \(Code\) #include<cstdio& ...

  2. CF1311F Moving Points

    题目传送门 思路 给出一种不需要脑子的四颗树状数组解法. 这四颗树状数组分别为:一颗维护负数,一颗维护负数个数,一颗维护正数,一颗维护正数个数. 首先考虑没有速度该怎么求. 不妨先按 \(x_i\) ...

  3. a^b(位运算&快速幂)

    题目链接 题目: 题解:很简单.经典的的一道快速幂的题 注意一下用LL型就ok. 代码: 1 #include <map> 2 #include <set> 3 #includ ...

  4. IP转换

    IP转换 目录 IP转换 1 127.1 ? 2 IPv4两段点分十进制表示 3 IPv4一段十进制表示 4 IPv4地址有效地变换形式 5 IP地址进制转换网站 6 参考博客 1 127.1 ? 首 ...

  5. 轻量级CI/CD发布部署环境搭建及使用_02_docker安装jenkins

    轻量级CI/CD发布部署环境搭建及使用_02_docker安装jenkins 授人以鱼不如授人以渔,如果说的别人都没明白,说明自己实际也不是太明白   1,搜索jenkins docker searc ...

  6. LeetCode-2100 适合打劫银行的日子

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-good-days-to-rob-the-bank 题目描述 你和一群强盗准备打劫银行. ...

  7. zookeeper要点总结

    简述:zookeeper分布式协调服务,节点数据存储在内存,高吞吐,低延时,zkserver cluster组建zookeeper service保证自身高可用 zookeeper数据模型为类文件目录 ...

  8. Vue props配置项(属性)

    功能:让组件接收外部传过来的数据 1.传递数据: <Demo name="XXX"/> 2.接收数据: (1)第一种方式(只接收): props:['name'] (2 ...

  9. Rancher 使用介绍(可以通过界面管理 K8s 平台)

    参考链接 https://blog.csdn.net/weixin_46902396/article/details/122433622 https://www.hugedomains.com/dom ...

  10. java字段值为null,不返回该字段

    jackSon注解– @JsonInclude 注解不返回null值字段 @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class R ...