版本信息:
spring cloud 版本Greenwich.SR2
spring boot 版本2.1.8.RELEASE
gateway报错 DefaultDataBuffer cannot be cast to org.springframework.core.io.buffer.NettyDataBuffer
解决方式:
springcloud的gateway使用的是webflux,默认使用netty,所以从依赖中排除 tomcat相关的依赖 ,就可以了。
我的问题:
排除了依赖还是报错。后来发现使用了 tomcat-embed-core 包导致的,删除再引文需要的jar包即可。
starter-openfeign starter-feign 区别(来源)
Feign
Feign是Spring Cloud组件中的一个轻量级RESTful的HTTP服务客户端
Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。
Feign的使用方式是:使用Feign的注解定义接口,调用这个接口,就可以调用服务注册中心的服务
Feign本身不支持Spring MVC的注解,它有一套自己的注解
OpenFeign
OpenFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解,如@RequesMapping等等。
OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,
并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。
启动读取外部配置文件
springboot 有读取外部配置文件的方法,如下优先级:
第一种是在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下。
第二种是直接把配置文件放到jar包的同级目录。
第三种在classpath下建一个config文件夹,然后把配置文件放进去。
第四种是在classpath下直接放配置文件。
我的问题:
根据spring.profiles.active 建立正确的文件名。 目录按照上面规则 但是文件名一定是application-{spring.profiles.active}.yml
eureka相关配置
指定 网页显示为 ip + 端口
解决 spring cloud feign docker上无法通讯的问题 (设置在 服务端和客户端)
eureka:
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ip-address}:${server.port}
注:
1.instance-id: ${spring.cloud.client.ip-address} 不同版本好像写法不一样 请检查
2.需要引入 spring-cloud-commons 包
指定 服务启动后5秒钟注册 (设置在 客户端)
eureka:
client:
initial-instance-info-replication-interval-seconds: 10
registry-fetch-interval-seconds: 5
指定监控信息 打开shutdown,info,health三个
management:
endpoints:
web:
exposure:
include:
[shutdown,info,health]
endpoint:
shutdown:
enabled: true
注:
1.需要引入spring-boot-starter-actuator 包
- shutdown 访问为post方式,info和health为get方式
指定集群
客户端
client:
registerWithEureka: true
serviceUrl:
defaultZone: {其他的eureka服务的链接}
服务端
eureka:
client:
serviceUrl:
defaultZone: {所有的eureka服务的链接}
原文地址:https://www.cnblogs.com/cuiyf/p/11834025.html