2020最新版Springcloud-Alibaba Consul篇(四)

一. 安装Consul(Windos版本)

官网下载太慢了,我上传到百度云了

百度云链接
提取码: fs72

1.1 下载并解压到文件夹(省略)

1.2 在路径下输入cmd进入命令行(省略)

1.3 在命令行输入consul,如果出现下面一堆东西,则安装成功

1.4 输入 consul agent -dev 启动 Consul

在我们本地8500端口可以看见Consul自带的UI界面

二. 新建支付服务module cloud-providerconsul-payment8006

2.1 模块8006结构(省略)

2.2 改pom

 <dependencies>
        <!--springcloud consul-server-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</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>
        <!--日常通用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>

2.3 建 application.yml 配置文件

server:
  port: 8006

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

2.5 业务类Controller层

/**
 * @Author: cws
 * @Date: 17:33 2020/8/13
 * @Description:
 * @Version v1.0
 */
@RestController
@Slf4j
public class PaymentController {

    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/payment/consul")
    public String paymentConsul(){
        return "Spring cloud with consul port: "+serverPort+"	  "+ UUID.randomUUID().toString();
    }

}

2.6 测试

打开 consul UI界面可以看到我们的微服务已经注册进来

在conusl里面可以看到其他的一些数据

测试业务

三. 新建modul cloud-consumerconsul-order80

3.1 目录结构(省略)

3.2 改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>
        </dependency>
    </dependencies>

3.3 建 application.yml 配置文件

### consul服务端口号
server:
  port: 80

spring:
  application:
    name: cloud-consumer-order
  ###consul服务注册中心
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        #hostname: 127.0.0.1
        service-name: ${spring.application.name}

3.4 主启动类

/**
 * @Author: cws
 * @Date: 18:00 2020/8/13
 * @Description:
 * @Version v1.0
 */
@SpringBootApplication
@EnableDiscoveryClient
public class OrderControllerMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderControllerMain80.class, args);
    }

3.5 业务类Controller层

/**
 * @Author: cws
 * @Date: 18:58 2020/8/13
 * @Description:
 * @Version v1.0
 */
@RestController
@Slf4j
public class OrderConsulContext {

    public static final String INVOKE_URL ="http://consul-provider-payment";

    @Resource
    private RestTemplate restTemplate;

    @GetMapping(value = "/consumer/payment/consul")
    public String getPaymentInfo(){
        return restTemplate.getForObject(INVOKE_URL+"/payment/consul",String.class);
    }

}

3.6 配置Bean RestTemplate模板

/**
 * @Author: cws
 * @Date: 18:54 2020/8/13
 * @Description:
 * @Version v1.0
 */
@Configuration
public class ApplicationContextConfig {

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

3.7 测试启动

业务类测试

原文地址:https://www.cnblogs.com/cwshuo/p/13497803.html