zoukankan      html  css  js  c++  java
  • Eureka 整合案例

    新建一个Module作为 Eureka注册中心

    相关依赖 Eureka Server
    创建好后填写配置文件

    
    server:
      port: 8761
    eureka:
      instance:
        hostname: eureka-server #eureka 实例的主机名
      client:
        register-with-eureka: false #不将自己注册到 eureka上
        fetch-registry: false #不从eureka上获取服务的注册信息
        service-url:
          defaultZone: http://localhost:8761/eureka/
    

    随后在Eureka注册中心的运行类中 开启 @EnableEurekaServer

    在新建一个Module作为 Provider

    相关依赖 Eureka Client
    创建好后填写配置文件

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

    再在Provider中进行一个小测试

    创建一个服务类 打印helloworld

    
    @Service
    public class HelloService {
    
        public String getHello(){
            System.out.println("8002");
            return "<< Hello World >>";
        }
    
    }
    
    

    再写好响应的controller通过url调用对应的服务类

    
    @RestController
    public class ProviderController {
    
        @Autowired
        HelloService helloService;
    
    
        @GetMapping("/hello")
        public String getHello(){
    
            return   HelloService.getHello();
    
        }
    
    }
    

    那么Provider算是已经写好了

    再去写响应的Consumer吧

    建立一个Module作为Consumer
    相关依赖 Eureka Client
    创建好后填写配置文件

    spring.application.name=consumer-user
    server.port=8200
    eureka.instance.prefer-ip-address=true
    
    eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
    
    

    在 Consumer 的运行类中开启 @EnableDiscoveryClient 注释 开启发现服务功能
    再在运行类中写下这一段东西

    
        @LoadBalanced  // 使用负载均衡机制
        @Bean
        public RestTemplate restTemplate(){
                return new RestTemplate();
        }
    
    

    等下说

    再去写controller

    @RestController
    public class UserController {
        @GetMapping("/buy")
        public String buyTicket(String name){
    
            return name ;
    
        }
    }
    

    随后问题来了 我们怎么能后接受到provider-hello的中的服务呢
    其实就是用到刚才所写的RestTemplate 这样一来就可以继续提供URL 来提取结果了

    @RestController
    public class UserController {
    
        @Autowired
        RestTemplate restTemplate;
    
    
        @GetMapping("/buy")
        public String buyTicket(String name){
            String halo= restTemplate.getForObject("http://PROVIDER-Hello/hello", String.class);
            return name + halo;
    
        }
    
    
    }
    
    
  • 相关阅读:
    Networking with standalone containers
    记filebeat内存泄漏问题分析及调优
    原创-The Salt Master has rejected this minion's public key!解决方法
    原创-某次建表失败-ERROR 1101 (42000): BLOB/TEXT column can’t have a default value
    action命令-判断判断码是否正确
    docker-docker中用户uid异常导致权限不足
    非原创-docker 6种减小镜像大小的方式
    非原创-docker update
    原创-k8s 存活探针,就绪探针与启动探针
    原创-阿里elasticsearch数据迁移
  • 原文地址:https://www.cnblogs.com/nineberg/p/12487382.html
Copyright © 2011-2022 走看看