学习记录-consul

3 篇文章 0 订阅
1 篇文章 0 订阅

学习记录–Consul

参考链接:https://www.imooc.com/article/296209/

1.什么是consulconsul

提供一套分布式服务发现和配置管理系统,是XX公司使用GO语言开发提供了微服务系统中的服务治理,配置中心,控制总线等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用构建去全方位的服务网络,总之consul提供了一种完整的服务网络解决方法

2 consul可以干什么?

服务发现
健康检查
K-V键值对的存储
安全加固
多数据中心

3 consul的安装与运行

1)官网上下载consul,下载后是一个conul.exe文件
2)打开当前目录的cmd窗口
3)查看版本

consul --version
  1. 启动运行
consul agent -dev

在这里插入图片描述
5)访问http://localhost:8500
成功的页面
在这里插入图片描述

服务提供者注册到consul

1)建一个springBoot项目
2)导入依赖
在这里插入图片描述
3)配置yml

server:
  port: 8006
spring:
  application:
    name: consul-provider-payment
    #consule注册中心地址
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}

4)主启动类上加上@EnableDiscoveryClient注解
5)在controller层写一个测试方法

package com.zpark.consul.controller;

@RestController
public class PaymentController {
    @Value("${server.port}")
    private String serverPort;

    @RequestMapping("/payment/consul")
    public  String paymentConsul(){
        return "springCloud with consul:"+serverPort+"\t"+ UUID.randomUUID().toString();
    }

}

6)启动程序
访问http://localhost:8500
就可以看到刚刚的服务注册到consul
成功的图:
在这里插入图片描述
7)测试controller里面的方法是否可以访问:
在这里插入图片描述

服务消费者注册到consul

1)建一个springBoot项目cloud-consul-consumer-order
2)导入依赖
在这里插入图片描述
3)配置yml

server:
  port: 80
spring:
  application:
    name: cloud-consumer-order
    #consul注册中心地址
  cloud:
    consul:
      discovery:
        service-name: ${spring.application.name}
      host: localhost
      port: 8500
 

4)主启动类上加上@EnableDiscoveryClient注解
5)配置RestTemplate建一个配置类ApplicationContextConfig

package com.zpark.consul.config;

Configuration
public class ApplicationContextConfig {
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

6)controller层写方法调用其他的服务(上面的那个服务)

package com.zpark.consul.controller;

import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;

@RestController

public class OrderConsulController {
    public static final String INCOKE_URL="http://consul-provider-payment";

   // public static final String INCOKE_URL="http://localhost:8006";
   //http://localhost:8006/payment/consul

    @Resource
    private RestTemplate restTemplate;

    @GetMapping("consumer/payment/consul")
    public String paymentInfo(){
        String result=restTemplate.getForObject(INCOKE_URL+"/payment/consul",String.class);
        System.out.println(result);
        if(StringUtils.isEmpty(result)){
            return "hello";
        }
        return result;
    }
}

不理解的点是请求的地址,通过服务名称就可以知道它的ip,port了吗?
7)启动程序进行测试访问:
http://localhost/consumer/payment/consul
因为是80端口,所以可省略端口
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值