温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

spring clound实现eureka服务发现组件

发布时间:2021-06-25 11:36:40 来源:亿速云 阅读:151 作者:chen 栏目:大数据

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

注册中心eureka server

配置 

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI