javascript
史上最简单的 SpringCloud 教程 | 第十四篇: 服务注册(consul)
轉:https://blog.csdn.net/forezp/article/details/70245644
這篇文章主要介紹 spring cloud consul 組件,它是一個提供服務發現和配置的工具。consul具有分布式、高可用、高擴展性。
一、consul 簡介
consul 具有以下性質:
1、服務發現:consul通過http 方式注冊服務,并且服務與服務之間相互感應。 2、服務健康監測 3、key/value 存儲 4、多數據中心consul可運行在mac windows linux 等機器上。
二、consul安裝
linux
$ mkdir -p $GOPATH/src/github.com/hashicorp && cd $! $ git clone https://github.com/hashicorp/consul.git $ cd consul $ make bootstrap $ make bootstrapwindows下安裝:
見consul怎么在windows下安裝:https://blog.csdn.net/forezp/article/details/70188595
三、構建工程
構建一個consul-miya的springboot工程,導入依賴pring-cloud-starter-consul-discovery,其依賴文件:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.forezp</groupId><artifactId>consul-miya</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>consul-miya</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><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-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>在其入口文件ConsulMiyaApplication加入注解@EnableDiscoveryClient,開啟服務發現:
@SpringBootApplication @EnableDiscoveryClient @RestController public class ConsulMiyaApplication {@RequestMapping("/hi")public String home() {return "hi ,i'm miya";}public static void main(String[] args) {new SpringApplicationBuilder(ConsulMiyaApplication.class).web(true).run(args);} }在其配置文件application.yml指定consul服務的端口為8500:
spring:cloud:consul:host: localhostport: 8500discovery:healthCheckPath: ${management.contextPath}/healthhealthCheckInterval: 15sinstance-id: consul-miyaapplication:name: consul-miya server:port: 8502啟動工程,訪問localhost:8500,可以發現consul-miya被注冊了。
源碼下載:
https://github.com/forezp/SpringCloudLearning/tree/master/chapter14
四、參考資料
HashiCorp/consul : https://github.com/HashiCorp/consul
Spring Cloud Consul : https://github.com/spring-cloud/spring-cloud-consul/blob/master/docs/src/main/asciidoc/spring-cloud-consul.adoc#install-consul
consul.io : https://www.consul.io/docs/upgrading.html
總結
以上是生活随笔為你收集整理的史上最简单的 SpringCloud 教程 | 第十四篇: 服务注册(consul)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 烤南瓜为什么都是水?
- 下一篇: 如何用Redlock实现分布式锁