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
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM