這篇文章主要講解了“spring clound實現eureka服務發現組件”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“spring clound實現eureka服務發現組件”吧!
配置
server: port: 8087 eureka: instance: hostname: eureka-server # eureka 實例的主機名稱 client: register-with-eureka: false #不把自己注冊到eureka上 fetch-registry: false #不從eureka上獲取服務的注冊信息 service-url: defaultZone: http://localhost:8007/eureka/
package com.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
// 開啟eureka功能
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}服務提供者 eureka discovery
server: port: 8003 spring: application: name: provider-ticket eureka: instance: prefer-ip-address: true # 注冊服務的時候使用服務的ip地址 client: service-url: defaultZone: http://localhost:8761/eureka/
服務消費者 eureka discovery
配置信息
spring: application: name: consumer-user server: port: 8200 eureka: instance: prefer-ip-address: true # 注冊服務的時候使用服務的ip地址 client: service-url: defaultZone: http://localhost:8761/eureka/
package com.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@EnableEurekaClient // 開啟服務監聽
@SpringBootApplication
public class ConsummerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsummerApplication.class, args);
}
/**
* 注冊一個請求的Rest請求的Template
* 只有加入LoadBalanced的類才能夠使用注冊的域名進行訪問
* @LoadBalanced加入請求 生效 http://PROVIDER-TICKET/hello
* 否則不生效
* 原因:
* 至于為什么一定要該注解修飾,這里我大概講一下。loadBalance這個注解加上之后,這個注解有3件事情要處理。
*
* 第一件就是從負載均衡器中選一個對應的服務實例,那有的人就會問為什么從負載均衡器中挑選,原因很明顯就是,所有的服務名實例都放在負載均衡器中的serverlist。
*
* 第二件事情就是從第一件事情挑選的實例中去請求內容。
*
* 第三件事情就是由服務名轉為真正使用的ip地址
* @return
*/
@LoadBalanced
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}實現請求
@RestController
public class UserController {
@Autowired
RestTemplate template;
@Autowired
private LoadBalancerClient client;
@GetMapping("/gethello")
public String hello(){
ServiceInstance instance = client.choose("provider-ticket");
System.out.println(instance.getHost());
System.out.println(instance.getPort());
template.getForObject("http://PROVIDER-TICKET/hello",String.class);
return " e213123";
}
}感謝各位的閱讀,以上就是“spring clound實現eureka服務發現組件”的內容了,經過本文的學習后,相信大家對spring clound實現eureka服務發現組件這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。