Spring Cloud踩坑记

1,501 阅读1分钟

1.rabbit远程账户无法访问

erro:java.net.SocketException: socket closed
官方文档已经说明,新建user和guest的账户是没有远程登录的权限的 需要对登录所用账户授权

edit setting

2.Gradle打包时使用lombok注解

需要在build.gradle追加

repositories {
	mavenCentral()
}

dependencies {
	compileOnly 'org.projectlombok:lombok:1.18.6'
	annotationProcessor 'org.projectlombok:lombok:1.18.6'
}

3.优化显示eureka-server中服务的Status显示

版本springboot:2.1.3 RELEASE springcloud:GreenWich.RELEASE

eureka:
  instance:
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ip-address}:${server.port}

4.修改rabbitmq的配置,可使用远程地址

vim /usr/local/etc/rabbitmq/rabbitmq-env.conf
修改 NODE_IP_ADDRESS=10.0.0.82

5.给注册中心开启安全验证

在注册中心配置

spring:
  security:
    user:
      name: admin
      password: admin

在客户端的注册地址写入

defaultZone: http://admin:admin@${eureka.instance.hostname}:${server.port}/eureka/

6.Gradle父module使用子module依赖

  • implementation指令的依赖不会传递
  • api等同于compile,可使用api

手动设置传递依赖(禁止依赖传递)

implementation(project(":${toolsCommon}:${toolsCommonSecurity}")) {
        transitive = false
}

7.qualifying bean of type 'org.springframework.cache.CacheManager'

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.cache.CacheManager' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1654) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1213) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1167) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
	... 35 common frames omitted

Disconnected from the target VM, address: '127.0.0.1:49809', transport: 'socket'

多CacheManager的构造注入引起
依赖冲突引起

1. @EnableDiscoveryClient和@EnableEurekaClient

  • 共同点就是:都是能够让注册中心能够发现,扫描到改服务。
  • 不同点
    • @EnableEurekaClient只适用于Eureka作为注册中心
    • @EnableDiscoveryClient 可以是其他注册中心。