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进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候 ...
随机推荐
- 【SDOI2015】星际战争
#include<cstdio> #include<queue> using namespace std; const int M = 10000; const double ...
- Vulhub 漏洞学习之:Aria2
Vulhub 漏洞学习之:Aria2 目录 Vulhub 漏洞学习之:Aria2 1 Aria2 任意文件写入漏洞 1.1 漏洞利用 1 Aria2 任意文件写入漏洞 Aria2是一个命令行下轻量级. ...
- WPF ScrollViewer 没有效果
ScrollViewer组件外组件如果是StackPanel组件 需要给StackPanel 设置高度,ScrollViewer 才会有滚动条 如果不想设置StackPanel高度,可以把StackP ...
- 03#Web 实战:实现下拉菜单
实现过程 实现一个简易的鼠标悬停菜单项显示其子项的下拉框控件.将用到 CSS 绝对定位.流式布局.动画等:JQuery 鼠标移入和移出事件.DOM 查找.效果图如下: HTML 结构: <div ...
- 基于Python的OpenGL 03 之纹理
1. 概述 本文基于Python语言,描述OpenGL的着色器 前置知识可参考: 基于Python的OpenGL 02 之着色器 - 当时明月在曾照彩云归 - 博客园 (cnblogs.com) 笔者 ...
- 从NLP视角看电视剧《狂飙》,会有什么发现?
目录 1.背景 2.数据获取 3.文本分析与可视化 3.1 短评数据预处理 3.2 词云图可视化 3.3 top关键词共现矩阵网络 3.4 <狂飙>演职员图谱构建 4.短评相关数据分析与可 ...
- 【6】java之数组的定义和使用
一.数组的定义与使用 1.1 数组的基本概念 数组指的就是一组相关变量的集合. 数组的定义: 声明并开辟数组 数据类型 数组名称 [] = new 数据类型[长度]: 数据类型 [] 数组名称 = n ...
- 1487. 保证文件名唯一 (Medium)
问题描述 1487. 保证文件名唯一 (Medium) 给你一个长度为 n 的字符串数组 names .你将会在文件系统中创建 n 个文件夹:在第 i 分钟,新建名为 names[i] 的文件夹. 由 ...
- Centos 6.5 iptables 端口白名单设置
iptables -I INPUT -p tcp --dport 8888 -j DROPiptables -I INPUT -s 10.9.145.101 -p tcp --dport 8888 - ...
- mybatis面试资料
1.#{}和${}的区别 #{} 数据类型检查: 若检测到字符串类型,就加上引号: 若检测到数值类型,就不加引号. 安全检查: 若变量的值带有引号,会对引号进行转义处理,这样可以防止sql注入. ${ ...