SpringWebFlux+Eureka+Ribbon搭建高可用服务归纳总结

Spring Boot与Ribbon负载均衡问题探讨
本文围绕Spring Boot和Ribbon展开,提及不同Spring Boot版本对ServerHttpRequest的支持情况,启动Eureka监控界面的警告及相关概念。阐述跨节点负载均衡目的,指出Ribbon跳转和重复刷新时出现的错误,目前问题未解决,打算学习Ribbon源码。

SpringBoot starter 版本为 :2.1.3 不支持 使用 ServerHttpRequest

使用 SpringBoot 版本 2.0.2.RELEASE 课使用ServerHttpRequest 时 无需为该参数类型的参数指定值 。

SpringBoot 版本:2.1.3.RELEASE 使用ServerHttpRequest 时 默认不传递该参数会报错

启动Eureka 监控界面时  有如下的警告 :

EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

 

Eureka server和client之间每隔30秒会进行一次心跳通信,告诉server,client还活着。由此引出两个名词: 

Renews threshold:server期望在每分钟中收到的心跳次数 

Renews (last min):上一分钟内收到的心跳次数。

eureka.instance.prefer-ip-address :改参数表示 是否优先使用ip地址来替代Hostname 作为实例的hostname 

THE SELF PRESERVATION MODE IS TURNED OFF. THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.

 

本实例是跨节点 的负载均衡  目的是解决由于高并发所造成的机器down 机 或者 单机服务资源不可用

故此相同过 过节点部署 但是在服务的跳转时 总是有问题 :

ribbon 跳转时出现了如下的错误:

java.lang.IllegalStateException: Request URI does not contain a valid hostname: http://search_back_2/

 

org.springframework.web.client.RestClientException: Error while extracting response for type [class java.util.HashMap] and content type [application/json;charset=UTF-8]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.HashMap` out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.HashMap` out of START_ARRAY token

 

这个问题还在解决中,我认为该配置的都配置了,也在网上找了相关的问题解决方案,还是不能解决,打算下一步开始进行 Ribbon 源码学习 ,如有解决方案,请不吝赐教

 

在使用 ribbon 进行负载均衡时一定要注意使用 目的是通过服务进行调用 ,否则会出现 网络连接异常 详细参考:Ribbon参数配置 https://blog.youkuaiyun.com/chengqiuming/article/details/81318510

 

searchService.ribbon.listofServers=localhost:9801,localhost:9802

 

 

 

使用ribbon 进行负载均衡时 当重复刷新 就会报错

org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://searchService/search": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值