Spring cloud 项目踩坑
spring boot:2.2.1
Spring cloud:Hoxton
1、用 spring boot 搭建 spring cloud 项目时每个模块出了添加 spring-boot-starter 依赖外还必须添加 spring-boot-starter-web 依赖,不然启动会报错。
2、开发 spring cloud 项目初始阶段最重要的一点是要搭配好 spring boot 与 spring cloud 的版本问题,具体可以在 spring cloud 官网查看。
3、在每个模块的 yml 文件中,eureka-instance-hostname 的值要设为 localhost,不然会报错,尤其是服务注册、服务调用当中(只是在本地开发中需要这么做)。
4、注册中心(eureka):
1、yml 文件中需要将 register-with-eureka 的值设为 false,意为不将注册中心注册到注册中心。
5、服务提供者(provider):
1、在每个需要被注册到注册中心的服务的 yml 文件配置需要注意:lease-renewal-interval-in-seconds 和 lease-expiration- duration-in-seconds 。ease-renewal-interval-in-seconds:服务每隔多少秒给注册中心发一次心跳,lease-expiration-duration-in-seconds :若注册中心在多少秒之内没有接收到某个服务的心跳则会将其从注册中心剔除。官方给出的参考时间为 30s 和 90s ,这个需要谨慎配置,如果需要的话(完全可以不配置,若不配置则在注册中心会出现一串字符串的红色标志,但不影响)。
2、对于上面的问题,可以开启 enable-self-preservation 这个配置来解决,意为自我保护。默认情况下,如果注册中心在一段时间呢你没有接收到某个服务的心跳则会将其剔除,但是如发生了网络问题,就会出现注册中心疯狂剔除服务的问题,这时,如果开启自我保护模式,若是注册中心在一段时间剔除太多服务的话,注册中心的服务就会进入自我保护模式,这样注册中心就会保留注册中心的数据,直到网络问题恢复,服务的自我保护模式就会解除。
6、服务消费者(consumer):
1、理论上服务消费者是可以不用注册在注册中心里的,但是我试了下如果不注册在注册中心里的话会报错,具体为什么还不知道。
7、网关(gateway):
1、在用 spring-cloud—starter-gateway 做网关时有很多需要注意的地方,比如它不能与 spring-boot-starter-web 依赖共存,有时候还需要添加 spring-cloud-starter-core 依赖,或许还会出现 tomcat 的问题等等。
项目还在搭建中。。。。。。!