• SpringCloud 项目搭建(五):服务消费方搭建


    五、服务消费方搭建
    
    1.在父项目上面新建模块myclient
    
    
    2.选择Spring Cloud Discovery—>Eureka Discovery Client
    选择Spring Cloud Routing—>OpenFeign
    
    
    3.Module Name一般不做修改,和项目名称Artifact一样
    
    
    4.将srcmain
    esources下面的application.properties改名为bootstrap.yml,修改文件编码方式为UTF-8,内容如下
    
    spring:
      application:
        name: myclient
      cloud:
        config:
          discovery:
            enabled: true
            service-id: myconfig      # 配置中心服务名
          profile: dev      # 环境名
      zipkin:
         enabled: true
         base-url: http://localhost:9411/
         locator:
           discovery:
             enabled: true
         sender:
           type: WEB
      sleuth:
         web:
           client:
             enabled: true
         sampler:
           # 默认的采样比率为0.1,不能看到所有请求数据
           # 更改采样比率为1,就能看到所有的请求数据了,但是这样会增加接口调用延迟
           probability: 1.0
    eureka:
      instance:
        lease-renewal-interval-in-seconds: 5      # 心跳时间,即服务续约间隔时间 (缺省为30s)
        lease-expiration-duration-in-seconds: 10  # 没有心跳的淘汰时间,10秒,即服务续约到期时间(缺省为90s)
        prefer-ip-address: true                    # 将IP注册到服务注册中心
      client:
        service-url:
          defaultZone: http://localhost:1024/eureka/
        fetch-registry: true # 向注册中心注册
        registry-fetch-interval-seconds: 5 # 服务清单的缓存更新时间,默认30秒一次
    feign:
      hystrix:
        enabled: true      # feign熔断器开关 默认关闭 打开才能调用fallback方法
      client:
        config:
          default:
            connectTimeout: 5000
            readTimeout: 5000
            loggerLevel: full # 在开发的时候数据所有feign日志
    
     
    5.打开srcmainjavacomlimyclient下面的MyclientApplication.java
    
    在启动类上加入@EnableDiscoveryClient注解,声明该微服务注册到服务注册中心。
    加入@EnableFeignClients,声明使用Feign调用接口。
    
    @EnableFeignClients
    @EnableDiscoveryClient
    @SpringBootApplication
    public class MyclientApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MyclientApplication.class, args);
        }
    
    }
    6.pom文件中增加依赖,并在Maven Projects里面刷新
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
    7.srcmainjavacomlimyclient下面新建包controller,新建MyController.java
    
    @RestController
    public class MyController {
        @Autowired
        private MyFeignClient myFeignClient;
    
        @Value("${server.port}")
        private String port;
    
        @GetMapping("/getTime")
        public String getTime(){
            return myFeignClient.getTime();
        }
    
        @GetMapping("/getConfig")
        public String getConfig(){
            return port;
        }
    }
    
    
    8.srcmainjavacomlimyclient下面新建包service,新建接口MyFeignClient.java
    
    @FeignClient(value="myservice",fallback = MyFeignClientFallback.class)
    public interface MyFeignClient {
    
        @GetMapping("/getTime")
        public String getTime();
    }
    
    
    9.srcmainjavacomlimyclientservice下面新建包impl,新建接口MyFeignClientFallback.java
    
    @Service
    public class MyFeignClientFallback implements MyFeignClient {
    
        @Override
        public String getTime(){
            return "";
        }
    }
    
    10.打开浏览器访问http://localhost:1002/getTime
    11.测试熔断,停止myservice,访问http://localhost:1002/getTime
    12.测试配置中心,访问http://localhost:2001/getConfig
  • 相关阅读:
    JavaScript Array 属性 构造器 将数组值转为大写
    Eslint 配置及规则说明
    Vue基于vue-quill-editor富文本编辑器使用心得
    css display:flex 属性
    HTML5本地存储之localStorage、sessionStorage
    图片充满div
    微信小程序 Input框提交后清空
    前端简历怎么写
    响应式与自适应的区别
    JS点击子元素不触发父元素点击事件
  • 原文地址:https://www.cnblogs.com/liw66/p/12294610.html
Copyright © 2020-2023  润新知