spring cloud踩坑指南

版本信息:

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 包

  1. shutdown 访问为post方式,info和health为get方式

指定集群

客户端

client:
    registerWithEureka: true
    serviceUrl:
      defaultZone: {其他的eureka服务的链接}

服务端

eureka:
  client:
    serviceUrl:
      defaultZone: {所有的eureka服务的链接}

原文地址:https://www.cnblogs.com/cuiyf/p/11834025.html

时间: 2024-10-10 11:47:38

spring cloud踩坑指南的相关文章

Spring Cloud Alibaba迁移指南(二):零代码替换 Eureka

自 Spring Cloud 官方宣布 Spring Cloud Netflix 进入维护状态后,我们开始制作<Spring Cloud Alibaba迁移指南>系列文章,向开发者提供更多的技术选型方案,并降低迁移过程中的技术难度. 第二篇,Spring Cloud Alibaba 实现了 Spring Cloud 服务注册的标准规范,这就天然的给开发者提供了一种非常便利的方式将服务注册中心的 Eureka 迁移到开源的 Nacos . 第一篇回顾:一行代码从 Hystrix 迁移到 Sent

Microsoft SQL Server on Linux 踩坑指南

微软用 SQL Server 在 2016 年的时候搞了一个大新闻,宣传 Microsoft ?? Linux 打得一众软粉措手不及.但是这还是好事情,Linux 上也有好用的 SQL Server 啦,但是从预览版开始 SQL Server on Linux 的配置要求蜜汁高,大部分云主机用户都望而却步.另外,SQL Server on Linux 对于文件系统有限制,仅支持 Ext3 以及 XFS 文件格式系统,对于某些云服务商默认提供的云镜像限制 Ext3 文件格式系统的用户而言也是足够让

Spring @Transactional踩坑记

@Transactional踩坑记 总述 ? Spring在1.2引入@Transactional注解, 该注解的引入使得我们可以简单地通过在方法或者类上添加@Transactional注解,实现事务控制. 然而看起来越是简单的东西,背后的实现可能存在很多默认规则和限制.而对于使用者如果只知道使用该注解,而不去考虑背后的限制,就可能事与愿违,到时候线上出了问题可能根本都找不出啥原因. 踩坑记 1. 多数据源 事务不生效 背景介绍 ? 由于数据量比较大,项目的初始设计是分库分表的.于是在配置文件中

spring cloud的坑

接入nacos 之后,想把所有的配置丢上去. 启动程序是: @EnableDiscoveryClient @RestController @ComponentScan(basePackages = {"com.lkk"}) @MapperScan(basePackages = {"com.lkk.ppm.doc.service.dao"}) @ImportResource(locations = {"classpath:dubbo.xml"})

appium连接夜神浏览器,踩坑指南。

之前安装了最新版本的appium,怎么都配置不好,连接不成功,后来看了一个博主的帖子换成了“AppiumForWindows_1.4.16.1.zip”,配置环境变量后才成功,分享给踩坑的你,以及为下一次踩坑备份. 原帖请戳:1.https://www.cnblogs.com/fighter007/p/9224773.html    2.https://www.cnblogs.com/fighter007/p/9226730.html 下面截取我自己需要的一部分: 一.安装 appium 工具

spring mvc踩坑记

前言 主要介绍自己在学习spring mvc过程中踩到的一些坑,涉及到当时遇到这个错误是如何思考的,对思路进行总结,下次遇到类似的错误能够提供一些思路甚至快速解决. 环境准备 jdk8,spring4.3.3.RELEASE,spring mvc与spring版本一致,maven3.2.5,tomcat7 目标: 1.测试spring mvc的json参数绑定功能 2.测试spring mvc的返回json功能 项目目录(已经推送到github:https://github.com/Coming

tensorflow 1.8, ubuntu 16.04, cuda 9.0, nvidia-390,安装踩坑指南。

被tensorflow 1.8, ubuntu 16.04, cuda 9.0, nvidia-390折磨了5天,终于上坑,留下指南,造福后人. 1.先把依赖搞清楚: tensorflow 1.8依赖cuda 9.0,cuda 9.0依赖nvidia-390. 2.坑: ubuntu 16.04源里只有nvidia-384,nvidia-390太新还没支持. 怎么办? 如果你不在天朝以下可以在个人源中安装nvidia-390 sudo add-apt-repository ppa:graphic

EDM模板编写踩坑指南(非响应式,纯table有源码)

如果问你table布局,你肯定会嗤之以鼻?什么table布局?不是早已经淘汰了吗?但是如果让你写EDM邮件模板,table布局相对来说是最好的选择. 如果让你立刻写EDM,你在网上搜的话,得到的信息相对较少,但是又很懵的话,建议你看看这篇文章,让你30分钟之内入门并开始写, 需要源码再私我吧~ 或许有人会问EDM是什么,Email Direct Marketing的缩写,即电子邮件营销.EDM模板就是你邮箱中的广告邮件,其实就是在邮件中写网页.但是EDM模板怎么书写.如果你在网上搜,或许你会搜到

Java URL类踩坑指南

背景介绍 最近再做一个RSS阅读工具给自己用,其中一个环节是从服务器端获取一个包含了RSS源列表的json文件,再根据这个json文件下载.解析RSS内容.核心代码如下: class PresenterImpl(val context: Context, val activity: MainActivity) : IPresenter { private val URL_API = "https://vimerzhao.github.io/others/rssreader/RSS.json&qu