最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解使用Spring Cloud Consul實現(xiàn)服務的注冊和發(fā)現(xiàn)

 更新時間:2018年06月11日 09:42:20   作者:西夏一品堂  
這篇文章主要介紹了詳解使用Spring Cloud Consul實現(xiàn)服務的注冊和發(fā)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

首先安裝consul環(huán)境,參照之前的文章:http://www.fzitv.net/article/141789.htm

項目規(guī)劃,2個服務端,1個客戶端

首先來看服務端,

一:服務端1:

項目依賴

<dependencyManagement> 
  <dependencies> 
    <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-consul-dependencies</artifactId> 
      <version>1.0.1.RELEASE</version> 
      <type>pom</type> 
      <scope>import</scope> 
    </dependency> 
  </dependencies> 
</dependencyManagement> 
 
<dependencies> 
  <dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-actuator</artifactId> 
    <version>1.3.5.RELEASE</version> 
  </dependency> 
  <dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-consul-discovery</artifactId> 
  </dependency> 
</dependencies> 

注意,增加spring-boot-actuator是為了項目可以訪問/health 路徑來判斷服務是否健康

package com.pp.consul1; 
 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
 
@SpringBootApplication 
@EnableDiscoveryClient 
@RestController 
public class ConsulApp { 
   
  @RequestMapping("/home") 
  public Object home() { 
    System.out.println("1111111111111"); 
    return "OK11"; 
  } 
   
  public static void main( String[] args ) { 
    SpringApplication.run(ConsulApp.class, args); 
  } 
} 

application.properties 配置內(nèi)容

server.port=9955  
spring.application.name=Consul-Server-1 
spring.cloud.consul.host=192.168.1.100 
spring.cloud.consul.port=8500 
spring.cloud.consul.enabled=true 
spring.cloud.consul.discovery.enabled=true 
spring.cloud.consul.discovery.instanceId=tomcat1 
spring.cloud.consul.discovery.serviceName=tomcat 
spring.cloud.consul.discovery.hostname=192.168.2.95 
spring.cloud.consul.discovery.port=${server.port} 
spring.cloud.consul.discovery.healthCheckUrl=http://192.168.2.95:9955/health 
spring.cloud.consul.discovery.healthCheckInterval=10s 
spring.cloud.consul.discovery.tags=dev 

看過我之前文章的,應該對這些配置很清楚了。這樣,一個服務端就配置寫好了。

由于我們增加了@EnableDiscoveryClient注解,所以,系統(tǒng)啟動的時候,就會向consul注冊一個服務,服務的名字為tomcat, ID為tomcat1

訪問consul的HTTP API /v1/catalog/service/tomcat 輸出如下:

{ 
  "Node":"192.168.1.100", 
  "Address":"192.168.1.100", 
  "ServiceID":"tomcat1", 
  "ServiceName":"tomcat", 
  "ServiceTags":["dev"], 
  "ServiceAddress":"192.168.2.95", 
  "ServicePort":9955, 
  "ServiceEnableTagOverride":false, 
  "CreateIndex":993, 
  "ModifyIndex":1057 
} 

二:服務端2

項目依賴和上面一樣 

package com.pp.consul2;  
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
 
@SpringBootApplication 
@EnableDiscoveryClient 
@RestController 
public class ConsulApp { 
   
  @RequestMapping("/home") 
  public Object home() { 
    System.out.println("2222222222222222"); 
    return "OK22"; 
  } 
   
  public static void main( String[] args ) { 
    SpringApplication.run(ConsulApp.class, args); 
  } 
} 

application.properties 配置內(nèi)容:

server.port=9966 
 
spring.application.name=Consul-Server-2 
spring.cloud.consul.host=192.168.1.100 
spring.cloud.consul.port=8500 
spring.cloud.consul.enabled=true 
spring.cloud.consul.discovery.enabled=true 
spring.cloud.consul.discovery.instanceId=tomcat2 
spring.cloud.consul.discovery.serviceName=tomcat 
spring.cloud.consul.discovery.hostname=192.168.2.95 
spring.cloud.consul.discovery.port=${server.port} 
spring.cloud.consul.discovery.healthCheckUrl=http://192.168.2.95:9966/health 
spring.cloud.consul.discovery.healthCheckInterval=10s 
spring.cloud.consul.discovery.tags=test 

三:客戶端

項目依賴,只需要spring-cloud-starter-consul-discovery

application.properties 配置內(nèi)容:

server.port=9977 
 
spring.application.name=Consul-Client 
spring.cloud.consul.host=192.168.1.100 
spring.cloud.consul.port=8500 
spring.cloud.consul.discovery.register=false 

注意,這里的spring.cloud.consul.discovery.register需要配置成false,否則系統(tǒng)啟動的時候,會向consul注冊一個服務

package com.pp.client; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.client.discovery.DiscoveryClient; 
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
 
@SpringBootApplication 
@EnableDiscoveryClient 
@RestController 
public class ConsulClient { 
   
  @Autowired 
  private LoadBalancerClient loadBalancer; 
   
  @Autowired 
  private DiscoveryClient discoveryClient; 
   
  /** 
   * 從所有服務中選擇一個服務(輪詢) 
   */ 
  @RequestMapping("/discover") 
  public Object discover() { 
    return loadBalancer.choose("tomcat").getUri().toString(); 
  } 
   
  /** 
   * 獲取所有服務 
   */ 
  @RequestMapping("/services") 
  public Object services() { 
    return discoveryClient.getInstances("tomcat"); 
  } 
   
  public static void main( String[] args ) { 
    SpringApplication.run(ConsulClient.class, args); 
  } 
} 

啟動之后,就可以訪問/discover,/services 查看效果了。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java?Web中ServletContext對象詳解與應用

    Java?Web中ServletContext對象詳解與應用

    ServletContext是一個容器,可以用來存放變量,供一個web項目中多個Servlet共享,下面這篇文章主要給大家介紹了關于Java?Web中ServletContext對象詳解與應用的相關資料,需要的朋友可以參考下
    2023-04-04
  • SpringBoot中MapStruct實現(xiàn)優(yōu)雅的數(shù)據(jù)復制

    SpringBoot中MapStruct實現(xiàn)優(yōu)雅的數(shù)據(jù)復制

    本文主要介紹了SpringBoot中MapStruct實現(xiàn)優(yōu)雅的數(shù)據(jù)復制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-08-08
  • 一步步帶你入門Java中File類

    一步步帶你入門Java中File類

    java.io.File類是文件和目錄路徑名的抽象表示形式,主要用于文件和目錄的創(chuàng)建、查找和刪除等操作,下面這篇文章主要給大家介紹了關于入門Java中File類的相關資料,需要的朋友可以參考下
    2022-03-03
  • SpringBoot實現(xiàn)登錄攔截的示例代碼

    SpringBoot實現(xiàn)登錄攔截的示例代碼

    如果我們不進行登錄攔截的話,即使我們跳過登錄頁面直接去訪問任意一個頁面也能訪問成功,那么登錄功能就沒有意義,同時也會存在安全問題,本文就來介紹一下SpringBoot登錄攔截,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 關于springboot配置文件密文解密方式

    關于springboot配置文件密文解密方式

    這篇文章主要介紹了關于springboot配置文件密文解密方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • SpringBoot3整合MyBatis出現(xiàn)異常:Property?'sqlSessionFactory'or?'sqlSessionTemplate'?are?required

    SpringBoot3整合MyBatis出現(xiàn)異常:Property?'sqlSessionFactory&a

    這篇文章主要介紹了SpringBoot3整合MyBatis報錯:Property?‘sqlSessionFactory‘?or?‘sqlSessionTemplate‘?are?required,其實不是個大問題,只是自己編碼時遇到了,然后總結總結分享一下,如果有遇到類似問題的,可以參考一下
    2022-11-11
  • 深入了解final在java中的應用

    深入了解final在java中的應用

    談到final關鍵字,想必很多人都不陌生,在使用匿名內(nèi)部類的時候可能會經(jīng)常用到final關鍵字。另外,Java中的String類就是一個final類,那么今天我們就來了解final這個關鍵字的用法。
    2019-06-06
  • Java16 JDK安裝并設置環(huán)境變量的方法步驟

    Java16 JDK安裝并設置環(huán)境變量的方法步驟

    突然想起自己大學剛接觸java的時候,要下載JDK和配置環(huán)境變量,那時候我上網(wǎng)找了很多教學,本文就詳細的介紹一下Java16 JDK安裝并設置環(huán)境變量,感興趣的可以了解一下
    2021-09-09
  • 淺談SpringBoot 中關于自定義異常處理的套路

    淺談SpringBoot 中關于自定義異常處理的套路

    這篇文章主要介紹了淺談SpringBoot 中關于自定義異常處理的套路,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • SpringBoot實現(xiàn)單點登錄(SSO)的四種方案

    SpringBoot實現(xiàn)單點登錄(SSO)的四種方案

    單點登錄(Single?Sign-On,SSO)是企業(yè)應用系統(tǒng)中常見的用戶認證方案,它允許用戶使用一組憑證訪問多個相關但獨立的系統(tǒng),無需重復登錄,本文給大家介紹了SpringBoot實現(xiàn)單點登錄(SSO)的四種方案,需要的朋友可以參考下
    2025-04-04

最新評論

怀化市| 宜城市| 曲靖市| 获嘉县| 青海省| 贵德县| 河西区| 宁国市| 五指山市| 新密市| 建瓯市| 宜宾市| 蒙阴县| 阳曲县| 彝良县| 平邑县| 含山县| 犍为县| 青河县| 马鞍山市| 威海市| 喀喇| 和龙市| 江孜县| 报价| 台安县| 航空| 东方市| 绿春县| 中西区| 江华| 贵阳市| 通州市| 霸州市| 梨树县| 白山市| 普格县| 开平市| 淄博市| 清苑县| 台山市|