zoukankan      html  css  js  c++  java
  • SpringCloud学习第二篇:使用Consul注册中心(Greenwich-SR1版本)

    一、Consul的安装与配置

    之前有文章记录过如何配置

    二、服务的注册

    • 引入Maven依赖
     <parent>
            <groupId>com.yk</groupId>
            <artifactId>cloud-parent</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
        <artifactId>springcloud-consul-client</artifactId>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-consul-discovery</artifactId>
            </dependency>
        </dependencies>
    
    • 服务发现
    @SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
    @EnableDiscoveryClient //注册发现
    public class ConsulApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ConsulApplication.class, args);
        }
    
    }
    
    • yml配置
    spring.application.name=spring-cloud-consul-client
    server.port=8080
    
    # 连接 Consul 服务器的配置
    # Consul 主机地址
    spring.cloud.consul.host = http://192.168.100.129
    # Consul 服务端口
    spring.cloud.consul.port = 8500
    
    #调整HealthCheck路径使其传递到Consul服务器,帮助回调,如果不配置注册上的服务会不成功
    spring.cloud.consul.discovery.healthCheckPath = /check
    
    #服务的主机地址 默认是本机
    spring.cloud.consul.discovery.hostname = 192.168.0.102
    
    • 测试Demo
    @RestController
    public class DiscoveryClientController {
        @Autowired
        private DiscoveryClient discoveryClient;
    
        @Value("${spring.application.name}")
        private String ApplicationName;
    
        /**
         * @Author: yangk
         * @Description: 获取所有的服务名称
         * @Param: []
         * @return: java.util.List<java.lang.String>
         * @Date: 2019年06月09日 10时38分
         */
        @GetMapping("listServices")
        public List<String> listServices() {
            return discoveryClient.getServices();
        }
    
        /**
         * @Author: yangk
         * @Description: 获取所有的服务实例信息
         * @Param:
         * @return:
         * @Date: 2019年06月09日 10时41分
         */
        @GetMapping("listInstance")
        public List<ServiceInstance> listInstance() {
            List<String> servers = listServices();
            LinkedList<ServiceInstance> serviceInstances = new LinkedList<>();
            servers.forEach(serviceName -> {
                serviceInstances.addAll(discoveryClient.getInstances(serviceName));
            });
            return serviceInstances;
        }
    
        /**
         * @Author: yangk
         * @Description: 获取当前应用的实例
         * @Param:
         * @return:
         * @Date: 2019年06月09日 10时44分
         */
        @GetMapping("getCurrentServiceInstance")
        public ServiceInstance getCurrentServiceInstance() {
            return discoveryClient.getInstances(ApplicationName).get(0);
        }
      /** 
      * @Author: yangk 
      * @Description:  Consul服务器的回调
      * @Param:  
      * @return:  
      * @Date: 2019年06月09日 12时51分
      */
        @GetMapping("/check")
        public String check() {
            return "OK";
        }
    
    }
    

    三、启动

    • 启动两个客户端
      在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    • 通过ip:8500查询Consul ui页面
      在这里插入图片描述

    • 查看实例
      在这里插入图片描述
      在这里插入图片描述

  • 相关阅读:
    restfulframework详解
    restful规范
    02-模板字符串
    01-学习vue前的准备工作
    vue系列
    crawler_编码转换_unicode(&#24180;)
    002-算法-递归法
    001-算法-递推法
    000-算法-基础概念
    linux_后台启动多个java -jar 程序,及关闭
  • 原文地址:https://www.cnblogs.com/yangk1996/p/12663471.html
Copyright © 2011-2022 走看看