这篇文章主要讲解了“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服务发现组件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/liuxinzhou/blog/3124056