zoukankan      html  css  js  c++  java
  • springcloud(3)consul

    consul也是一种注册中心,但它比较于其它的应用,界面显示更加清楚,CAP也是cp机制,对外暴露HTTP和dns接口同时集成了springcloud。

    1.下载。

    https://www.consul.io/downloads

    官网自行选择对应版本。

    2.安装运行。

    本体下载之后只有一个exe文件,可以使用cmd打开当前文件夹输入指令启动。

    consul --version查看对应版本  consul agent -dev 以开发者的模式启动。

     默认端口是8500访问的时候输入localhost:8500即可。

    3.服务提供者

    比较于之前的服务提供者,consul注册的服务提供者需要加入额外对应的pom文件

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-consul-discovery</artifactId>
            </dependency>

    yml文件中的注册地址也要做出相应的改变。

    server:
      port: 8006
    spring:
      application:
        name: consul-provider-payment
      cloud:
        consul:
          host: localhost
          port: 8500
          discovery:
            service-name: ${spring.application.name}

    剩下的就是controller进行一些测试,在consul的界面上可以看出活动。

    4.消费者

    pom导入consul依赖和上述一样。

    yml格式也和上述差不多,需要改动端口和名称。

    加入配置类文件appconfig

    @Configuration
    public class AppConfig {
    
        /**
         * 注入restTemplate,请用请求rest接口
         * @return
         */
        @Bean
        // 标注此注解后,RestTemplate就具有了客户端负载均衡能力
        // 负载均衡技术依赖于的是Ribbon组件~
        // RestTemplate都塞入一个loadBalancerInterceptor 让其具备有负载均衡的能力
        @LoadBalanced
        public RestTemplate restTemplate(){
            return new RestTemplate();
        }
    }

    负载均衡后续后提到。

    controller文件示例

    RestController
    @Slf4j
    public class ConsumerController {
        private static  final String INVOKE_URL = "http://consul-provider-payment";
        @Resource
        private RestTemplate restTemplate;
        @GetMapping(value = "/consumer/payment/consul")
        public String paymentInfo() {
            String result = restTemplate.getForObject(INVOKE_URL+"/payment/consul",String.class);
            return result;
        }
    }

    在consul页面可以查看对应信息。

    5.三种注册中心的差异性

     本篇所有代码均在GitHub:

  • 相关阅读:
    Python标准库之csv(1)
    python3:csv的读写
    Python os模块方法
    Python闭包
    Python修饰器
    Python生成器
    Python迭代器
    Python文件对象方法
    Justep X5 Studio,业界公认第一的快速开发平台
    马云:早九晚五的工作方式在2013-2015年就是慢性自杀
  • 原文地址:https://www.cnblogs.com/lin530/p/13891897.html
Copyright © 2011-2022 走看看