SpringCloud學習筆記【六】:Consul實現服務註冊與發現

Consul簡介

官網: https://www.consul.io/docs/introhtml

Consul是一套開源的分佈式服務發現和配置管理系統,由HashiCorp公司用go語言開發。java

提供了微服務系統中的服務治理、配置中心、控制總線等功能,他們能夠單獨使用,也可一塊兒使用構建全方位的服務網格。 總之,Consul提供了一種完整的服務網格解決方案。git

關鍵特性:spring

  1. Service Discovery服務發現
  2. Health Checking健康檢查
  3. KV Store鍵值對存儲
  4. Secure Service Communication安全的服務通訊
  5. Multi多數據中心

Consul安裝與使用

Windows安裝

進入下載界面:https://www.consul.io/downloadsdocker

consul.exe同級目錄中打開控制檯,執行:shell

consul --version #查看版本
consul agent -dev #開發者模式啓動

Docker安裝

直接看這篇文章就行了:Docker安裝Consulwindows

註冊服務提供者

引入依賴

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

配置yml

#consul服務端口號
server:
  port: 8006

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

添加註解

@SpringBootApplication
@EnableDiscoveryClient
public class PaymentConsul8006Application {
    public static void main(String[] args) {
        SpringApplication.run(PaymentConsul8006Application.class, args);
    }
}

編寫Controller

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

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

一樣的,咱們但願將這個服務註冊進Consul服務中心。安全

測試

咱們啓動PaymentConsul8006Application,再查看localhost:8500/app

註冊服務消費者

pom,yml,啓動類註解差不太多,這裏就不贅述了,感興趣能夠查看倉庫代碼:https://gitee.com/tqbx/spring-cloud-learning,以標籤的形式詳細區分每一個步驟。dom

當咱們同時啓動消費者和提供者,Consul中就會註冊進兩個service。消費者訪問localhost/consumer/payment/consul,將會調用提供者的接口,完成需求。

源碼下載

本系列文章爲《尚硅谷SpringCloud教程》的學習筆記【版本稍微有些不一樣,後續遇到bug再作相關說明】,主要作一個長期的記錄,爲之後學習的同窗提供示例,代碼同步更新到Gitee:https://gitee.com/tqbx/spring-cloud-learning,而且以標籤的形式詳細區分每一個步驟,這個系列文章也會同步更新。

相關文章
相關標籤/搜索