之前一直想,既然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