使用springcloud开发测试问题总结
使用springcloud开发测试
如下描述的问题,没有指明是linux部署的,都是在windows开发环境上部署验证发现的。
Issue1配置客户端不使用配置中心
问题描述:
配置客户端使用配置中心是需要下面两步
1)在pom文件加spring-cloud-starter-config依赖
2)在配置文件中加spring.cloud.config配置语句。
把第二步的配置语句去掉,不去掉第一步的依赖,配置客户端微服务启动还是会使用配置中心,而且是使用默认的localhost:8888去连接配置中心。如果本地木有启动8888端口的配置中心服务,那该微服务启动就会报错。
解决方法:
如果不使用配置中心的服务,必须将两步配置同时删除。
Ps:
Springcloud中好多扩展应用也有类似的问题,比如不想使用服务发现,那就需要把服务发现的所有配置都移除,否则也是有问题的。
Issue2 使用${}
问题描述:
使用${}动态获取配置文件中的字段,如
@RibbonClient(name = "${ribbon.custom.app.name}", configuration = RibbonConfig.class)、或者
@Value("${ribbon.custom.app.name}")时,
如果启动了多个该应用的实例对象,且都注册到了注册中心,就会引起${}木有真正获取到数据,或者混乱。
在测试自定义负载均衡的时候,使用这种方式配置RibbonClient的name,发现自定义负载策略不生效,直接指定成应用名的实际字符串,可以生效。
解决方法:
如果本地要启动同一个应用的多个实例的时候,可以将${}直接替换成其代表的字符串
Issue3 zuul路由不正确
问题描述:
在部署了zuul的服务器上同时部署了要路由的应用,其他服务器上也同时部署了该路由的应用,就会导致被路由服务的负载均衡混乱。
解决方法:
需要路由的应用不要跟zuul部署在同一台服务器上。
Issue4 多网卡环境下Eureka服务注册IP选择问题
问题描述:
服务器上分别配置了eth0, eth1和eth2三块网卡,只有eth1的地址可供其它机器访问,eth0和eth2的IP 无效。在这种情况下,服务注册时Eureka Client会自动选择eth0作为服务ip,导致其它服务无法调用。
有的时候windows上这些网卡是装过linux虚拟机之后,配置网络产生的。但是虚拟机卸载了,这些配置还存在。
解决方法:
linux部署的解决可以参考帖子:
http://blog.csdn.net/neosmith/article/details/53126924
Windows部署,禁用没用的网络:
Issue5 配置客户端使用服务发现方式配置配置中心,注册语句放到配置中心仓库上不生效
问题描述:
客户端微服务应用同时使用注册中心、配置中心场景下,配置客户端使用如下服务发现方式配置配置中心,注册语句放到配置中心仓库上不生效,即不能注册到注册中心上。
spring:
cloud:
config:
profile: dev
discovery:
enabled: true
service-id: config-server
解决方法:
使用如下url的方式,但是两种方式都有问题,具体描述参考config-client应用中的README.md
spring:
cloud:
config:
uri: ${config.server.uri.peer1}
profile: dev
Issue6 mybatis整合spring cloud consul依赖版本问题
首先是在consul里mysql依赖用5.1.41版本
Mybatis首次验证用 1.1.1版本 验证失败 报错:“日志版本不兼容”
后修改为
<properties>
<mybatis.spring.version>1.2.4</mybatis.spring.version>
</properties>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>RELEASE</version>
</dependency>
验证 成功
Eureka里整合mybatis
Eureka里要求更严格 spring-boot整合mybatis的版本依赖和spring-boot-starter依赖是对应兼容的
详细的表 请参照官网 http://mvnrepository.com/artifact/org.mybatis/mybatis-spring
此处由于我们spring-boot-starter用的是1.4.5(Cm.SR7默认)
查询得知 mybatis-spring-boot依赖应该是用1.2.1 版本
要注意以上
转载:https://blog.csdn.net/u013719805/article/details/78843670
使用springcloud开发测试问题总结的更多相关文章
- Loadrunner开发测试脚本
Loadrunner开发测试脚本 开发测试脚本可以通过录制,也可以手动开发,建议能录制的尽量录制,省时省力,不能录制的只能费力自己开发了,具体看项目情况来决定. 使用Loadrunner开发脚本过程中 ...
- 老司机带你用vagrant打造一站式python开发测试环境
前言 作为一个学习和使用Python的老司机,好像应该经常总结一点东西的,让新司机尽快上路,少走弯路,然后大家一起愉快的玩耍. 今天,咱们就使用vagrant配合xshell打造一站式Python ...
- 开发测试时给 Kafka 发消息的 UI 发送器――Mikasa
开发测试时给 Kafka 发消息的 UI 发送器――Mikasa 说来话长,自从入了花瓣,整个人就掉进连环坑了. 后端元数据采集是用 Storm 来走拓扑流程的,又因为 @Zola 不是很喜欢 Jav ...
- 基于.net的微服务架构的开发测试环境运维实践
眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...
- [DeeplearningAI笔记]ML strategy_2_2训练和开发/测试数据集不匹配问题
机器学习策略-不匹配的训练和开发/测试数据 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.4在不同分布上训练和测试数据 在深度学习时代,越来越多的团队使用和开发集/测试集不同分布的数据来 ...
- [DeeplearningAI笔记]ML strategy_1_2开发测试集评价指标
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4 满足和优化指标 Stisficing and optimizing metrics 有时候把你要考 ...
- 移动开发测试工具——Bugtags的集成
移动开发测试工具--Bugtags 官网:https://bugtags.com/ 注册开发者账号 注册账号并激活邮箱,都会就不多做介绍了. 创建应用 创建完账号以后会提示添加应用,点击添加 添加应用 ...
- 基于.net的微服务架构下的开发测试环境运维实践
眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...
- 开发测试技巧|辅助开发调试:goolge浏览器利用F12在控制台输入脚本实现表单自动填充
一个开发测试技巧的指引和截图,利用google浏览器的F12调试和Console执行,注入JavaScript脚本实现表单的自动填充和测试. 原文链接: http://www.lookdaima.co ...
随机推荐
- Java 添加、修改、读取、删除PPT备注
概述 幻灯片中的备注信息是只提供给幻灯片演讲者观看的特定内容,在演讲者放映幻灯片时,备注信息可给演讲者提供讲解思路,起到辅助讲解的作用.本文将通过Java程序来演示如何操作PPT幻灯片中的备注信息,要 ...
- canvas实现平面迁徙图
前言 最近在做自己维护的一个可视化工具的时候,在添加基于echart的雷达图的时候,按照echart官网案例写完发现在自己项目中无法正常运行,排查了一番发现是我项目中echart的版本太低.找到问题原 ...
- 05-03 主成分分析(PCA)
目录 主成分分析(PCA) 一.维数灾难和降维 二.主成分分析学习目标 三.主成分分析详解 3.1 主成分分析两个条件 3.2 基于最近重构性推导PCA 3.2.1 主成分分析目标函数 3.2.2 主 ...
- deferred对象和promise对象(一)
个人认为阮一峰老师讲的关于deferred对象是最容易理解的. deferred对象是jquery的回调函数解决方案.解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口. d ...
- django创建表单以及表单数据类型和属性
08.15自我总结 关于django的表单不同关系之间的创建 一.不同关系之间的创建 1.一对一 举例 母表:userinfo id name age 1 张三 12 2 李四 58 字表:priva ...
- Cocos2d-x 学习笔记(7) 内存管理 Sprite SpriteFrame Texture2D
1. 总结 Sprite和SpriteFrame和Texture2D关系紧密,三个类都继承了Ref类.精灵有成员精灵帧和纹理,精灵帧有成员纹理.精灵帧和纹理被精灵帧引用时,引用计数增加,不再被引用时, ...
- vue在一个方法执行完后再执行另一个方法
vue在一个方法执行完后执行另一个方法 用Promise来实现.Promise是ES6的新特性,用于处理异步操作逻辑,用过给Promise添加then和catch函数,处理成功和失败的情况 ES7中新 ...
- ndnsim安装遇到的一些问题
我是安装的Ubuntu18.04+ndnsim2.7 由于最新版ndnsim的可视化与Python不兼容,出现了一些问题 1. No visualization support (cannot imp ...
- js转换页面为图片并下载
<div style="background:red;width: 600px;height: 600px;" class="test"> < ...
- java类在何时被加载
我们接着上一章的代码继续来了解一下java类是在什么时候加载的.在开始验证之前,我们现在IDEA做如下配置. -XX:+TraceClassLoading 监控类的加载 我们新建了一个TestCont ...