consul服务注册中心

以订单服务调用支付服务为例

1.官方下载安装consul

官方下载地址

image-20200805225013583

我们在这里下载的windows 64版本的最新的consul 客户端

下载完成解压

并且在当前目录的地址栏启动cmd

image-20200805225200976

查看版本 consul --version

image-20200805225303062

以开发环境启动 consul agent -dev

image-20200805225422458

浏览器打开 http://localhost:8500

如果出现 以下界面则表示consul启动成功

image-20200805225537359

2.创建支付服务

2.1 修改pom

 <dependencies>
        <!--SpringCloud consul-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <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>
        <!--日常通用jar包配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>RELEASE</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

2.2修改yml

server:
  port: 8006  #端口号
spring:
  application:
    name: consul-provider-payment  #spring应用名称
  cloud:
    consul:
      host: localhost     #consul主机名
      port: 8500          #consul 端口号
      discovery:
        service-name: ${spring.application.name} #注册进consul 该服务的名称设置为spring应用名称

2.3创建主启动类

image-20200805230523502

2.4创建controller

image-20200805234247470

2.5启动

image-20200805234631143

启动成功后我们进入consul的web视图查看

http://localhost:8500

image-20200805234757637

此时,我们的支付服务 注册进consul成功

3.创建订单服务

3.1 pom

 <dependencies>
        <!--SpringCloud consul-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <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>
        <!--日常通用jar包配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

3.2 修改yml

server:
  port: 80

spring:
  application:
    name: consul-consumer-order
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}

3.3创建主启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @author Xkuna
 * @date 2020/8/5 0:14.
 */
@SpringBootApplication
@EnableDiscoveryClient
public class OrderConsul80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderConsul80.class, args) ;
    }
}

3.4 创建restTempalte的配置类

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @author Xkuna
 * @date 2020/8/5 0:15.
 */
@Configuration
public class ApplicationWebConfig {
    @Bean
    //该注解实现ribbon的负载均衡
    @LoadBalanced
    public RestTemplate getInstance() {
        return new RestTemplate() ;
    }
}

3.5创建controller

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;

/**
 * @author Xkuna
 * @date 2020/8/5 0:16.
 */
@RestController
public class OrderController {
    @Resource
    private RestTemplate restTemplate ;
	//url为调用的支付服务名  实现负载均衡
    private static String paymentUrl = "http://consul-provider-payment" ;
    @RequestMapping("/order/consul")
    public String getPaymentConsul(){
        return restTemplate.getForObject(paymentUrl + "/payment/consul", String.class) ;
    }
}

3.6 启动订单服务

image-20200806011450457

启动成功后,进入consul的web可视化界面

http://localhost:8500

image-20200806011551130

如图我们的订单服务成功注册进 consul

3.6 订单服务调用支付服务

image-20200806011802356

调用成功! 简单的consul 服务之间的调用实现

4. 结束语

关于consul的服务注册 是不是很简单呢?加油 !!😄😄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值