千家信息网

spring clound实现eureka服务发现组件

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要讲解了"spring clound实现eureka服务发现组件",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"spring clound实现
千家信息网最后更新 2025年12月01日spring clound实现eureka服务发现组件

这篇文章主要讲解了"spring clound实现eureka服务发现组件",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"spring clound实现eureka服务发现组件"吧!

注册中心eureka server

配置

server:  port: 8087eureka:  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@SpringBootApplicationpublic class EurekaServerApplication {    public static void main(String[] args) {        SpringApplication.run(EurekaServerApplication.class, args);    }}

服务提供者 eureka discovery

server:  port: 8003spring:  application:    name: provider-ticketeureka:  instance:    prefer-ip-address: true # 注册服务的时候使用服务的ip地址  client:    service-url:      defaultZone: http://localhost:8761/eureka/

服务消费者 eureka discovery

配置信息

spring:  application:    name: consumer-userserver:  port: 8200eureka:  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 // 开启服务监听@SpringBootApplicationpublic 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();    }}

实现请求

@RestControllerpublic 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服务发现组件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0