SpringCloud(七):搭建过程中的一些bug

之前一直想,既然springCloud基于springBoot。那为什么很多公用的包还是要放在子模块pom中。试了一下,放在父模块中,应该也是没有什么问题的。
之前看视频上讲子模块的名字最好下划线。
但是他没说注册到eureka的服务名称,不能下划线!!!啊!不能下划线!!!真的坑了好几天。
还有就是需要注解的地方太多了,老是忘记注解。
在注入restTemplate的bean的时候碰到很多种实现方式:
我用的是最简单的:
@Configuration
public class RestTemplateConfig {
    @Bean
    @LoadBalanced//以restTemplate调用的时候,开启ribbon的本地的负载均衡调用
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
@Autowired
    private RestTemplate restTemplate;
坤哥用的是:
@Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
        httpRequestFactory.setConnectionRequestTimeout(5000);
        httpRequestFactory.setConnectTimeout(5000);
        httpRequestFactory.setReadTimeout(5000);
        return new RestTemplate(httpRequestFactory);
    }
但是网上好像说,新版的注入方式是:
新版的需要这样注入:
    @Bean
    @LoadBalanced
    RestOperations restTemplate(RestTemplateBuilder builder) {
        return builder.build();
    }

    @Autowired
    RestOperations restTemplate;
消费的三种方式。
  • 背景:把项目迁移到公司电脑启动eureka-server报错
  • 环境:改了下jdk1.7
  • 主要报错信息:RedirectingEurekaHttpClient:Request execution error;java.net.ConnectException: Connection refused: connect无法连接服务注册中心
  • 排查原因
    • application.yml中的命名必须按骆驼命名法(用serviceUrl不用service-url,用defaultZone不用default-zone)
    • 关闭鉴权,security:basic:enabled:false(这涉及到springboot的security的知识点和HttpBasic认证的知识点了)
    • 默认情况下Eureka会把自己作为客户端来尝试注册,需要禁止register-with-eureka和fetch-registry。
  • 最终是根据原因3解决的
    • 原因1,我没触犯,我很规范的
    • 原因2,我没用spring-security的jar包
    • 就是原因3
 
 
posted @ 2019-07-13 14:33  TangXinPing  阅读(960)  评论(0编辑  收藏  举报