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

Spring Cloud構(gòu)建Eureka應(yīng)用的方法

 更新時(shí)間:2018年03月09日 09:49:14   作者:blueskyX  
這篇文章主要介紹了Spring Cloud構(gòu)建Eureka應(yīng)用的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

Eureka 介紹

Eureka提供基于REST的服務(wù),在集群中主要用于服務(wù)管理。Eureka提供了基于Java語(yǔ)言的客戶端組件,客戶端組件實(shí)現(xiàn)了負(fù)載均衡的功能,為業(yè)務(wù)組件的集群部署創(chuàng)造了條件。使用該框架,可以將業(yè)務(wù)組件注冊(cè)到Eureka容器中,這些業(yè)務(wù)組件可進(jìn)行集群部署,Eureka主要維護(hù)這些服務(wù)的列表并自動(dòng)檢查它們的狀態(tài)。

程序結(jié)構(gòu)

創(chuàng)建Eureka Server

maven依賴

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Dalston.SR1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
  </dependencies>

更改spring boot 啟動(dòng)端口 在application.yml

server:
 port: 8761

開啟Eureka服務(wù)注解 @EnableEurekaServer

@EnableEurekaServer
@SpringBootApplication
public class EKServerApplication {

  public static void main(String[] args) {
    new SpringApplicationBuilder(EKServerApplication.class).run(args);
  }
}

啟動(dòng)springboot

[Thread-11] o.s.c.n.e.server.EurekaServerBootstrap: Initialized server context
[main] s.b.c.e.t.TomcatEmbeddedServletContainer: Tomcat started on port(s): 8761 (http)
[main] .s.c.n.e.s.EurekaAutoServiceRegistration: Updating port to 8761
[main] c.b.firstEkServer.EKServerApplication: Started EKServerApplication in 8.594 seconds (JVM running for 9.523)

啟動(dòng)期間會(huì)出現(xiàn)一個(gè)無(wú)法連接到服務(wù)器的異常 這個(gè)是由于Eureka在啟動(dòng)的時(shí)候會(huì)把自己當(dāng)作一個(gè)客戶端去服務(wù)器抓取注冊(cè)信息

復(fù)制代碼 代碼如下:

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

增加如下配置啟動(dòng)時(shí)便不會(huì)再出現(xiàn)該異常

eureka:
 client:
  registerWithEureka: false
  fetchRegistry: false

registerWithEureka 聲明是否將自己的信息注冊(cè)到Eureka服務(wù)器,默認(rèn)值為true。

fetchRegistry 聲明是否到Eureka服務(wù)器中抓取注冊(cè)信息,默認(rèn)值為true。

在瀏覽器中訪問(wèn) http://localhost:8761 查看Eureka控制臺(tái) 輸入圖片說(shuō)明

創(chuàng)建服務(wù)提供者

依賴

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-ribbon</artifactId>
    </dependency>

在 application.yml 中配置端口、Eureka實(shí)例名稱和Eureka服務(wù)地址

server:
 port: 8080
spring:
 application:
  name: ek-provider
eureka:
 instance:
  hostname: localhost
 client:
   serviceUrl:
    defaultZone: http://localhost:8761/eureka/

創(chuàng)建一個(gè) REST 服務(wù)

@RestController
public class HelloController {

  @RequestMapping("/hello")
  public String hello(HttpServletRequest request) {
    return "hello:" + request.getRequestURL();
  }
}

開啟Eureka客戶端注解 @EnableEurekaServer

@EnableEurekaClient
@SpringBootApplication
public class EkProviderApplication {
  public static void main(String[] args) {
    new SpringApplicationBuilder(EkProviderApplication.class).run(args);

  }
}

啟動(dòng)之后在 Eureka 控制臺(tái)可以看到服務(wù)提供者已經(jīng)在 Eureka 中注冊(cè)

創(chuàng)建服務(wù)調(diào)用者

依賴

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-ribbon</artifactId>
    </dependency>

在 application.yml 中配置端口、Eureka實(shí)例名稱和Eureka服務(wù)地址

server:
 port: 9000
spring:
 application:
  name: ek-invoke
eureka:
 instance:
  hostname: localhost
 client:
   serviceUrl:
    defaultZone: http://localhost:8761/eureka/

編寫一個(gè) REST 服務(wù) 調(diào)用服務(wù)提供者的 “/hello”

@RestController
@Configuration
public class InvokeController {

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

  @RequestMapping("/invoke")
  public String invoke() {
    RestTemplate restTemplate = getRestTemplate();
    return restTemplate.getForObject("http://ek-provider/hello", String.class);
  }
}

在傳統(tǒng)模式中,我們通常會(huì)用Apache中的Httpclient來(lái)調(diào)用 REST 服務(wù),在這里我們使用 Spring 提供調(diào)用 REST 服務(wù)的組件 RestTemplate。 RestTemplate 本身并不具備調(diào)用分布式服務(wù)的能力,但是RestTemplate的bean被@LoadBalanced注解修飾后,這個(gè)RestTemplate實(shí)例就具有訪問(wèn)分布式服務(wù)的能力,這得益于 Spring 為其提供的各種攔截器

開啟Eureka客戶端注解 @EnableEurekaServer

@EnableEurekaClient
@SpringBootApplication
public class EkInvokeApplication {

  public static void main(String[] args) {
    new SpringApplicationBuilder(EkInvokeApplication.class).run(args);
  }
}

啟動(dòng)之后在 Eureka 控制臺(tái)可以看到服務(wù)調(diào)用者已經(jīng)在 Eureka 中注冊(cè)

之后在瀏覽器訪問(wèn)服務(wù)調(diào)用者的 “invoke” 接口 返回如下

總結(jié)

Eureka 服務(wù)器 通過(guò)心跳鏈接來(lái)維護(hù)最新的注冊(cè)信息,這些注冊(cè)信息都保存在內(nèi)存中。

Eureka 服務(wù)提供者 主要進(jìn)行:

  1. 向 Eureka 服務(wù)器注冊(cè)服務(wù)
  2. 發(fā)送心跳到 Eureka服務(wù)器,使 Eureka 服務(wù)器注冊(cè)信息保持最新
  3. 向服務(wù)器獲取最新的注冊(cè)列表,通常 Eureka 客戶端既是服務(wù)提供者也是服務(wù)調(diào)用者,但其主要職責(zé)為服務(wù)提供。

Eureka 服務(wù)調(diào)用者 主要進(jìn)行:

  1. 向 Eureka 服務(wù)器注冊(cè)服務(wù)
  2. 發(fā)送心跳到 Eureka服務(wù)器,使 Eureka 服務(wù)器注冊(cè)信息保持最新
  3. 向服務(wù)器獲取最新的注冊(cè)列表,通常 Eureka 客戶端既是服務(wù)提供者也是服務(wù)調(diào)用者,但其主要職責(zé)為發(fā)現(xiàn)與調(diào)用。

源碼地址:https://github.com/xc564864894/springcloud/tree/master/Eureka(%E4%B8%80)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springmvc RequestMapping請(qǐng)求實(shí)現(xiàn)方法解析

    Springmvc RequestMapping請(qǐng)求實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Springmvc RequestMapping請(qǐng)求實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Mybatis一對(duì)多關(guān)聯(lián)關(guān)系映射實(shí)現(xiàn)過(guò)程解析

    Mybatis一對(duì)多關(guān)聯(lián)關(guān)系映射實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Mybatis一對(duì)多關(guān)聯(lián)關(guān)系映射實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • MyBatis動(dòng)態(tài)sql查詢及多參數(shù)查詢方式

    MyBatis動(dòng)態(tài)sql查詢及多參數(shù)查詢方式

    這篇文章主要介紹了MyBatis動(dòng)態(tài)sql查詢及多參數(shù)查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • IDEA開啟Run Dashboard的幾種方式

    IDEA開啟Run Dashboard的幾種方式

    Run Dashboard 是 IntelliJ IDEA 中的一個(gè)工具窗口,用于管理和監(jiān)視項(xiàng)目中正在運(yùn)行的應(yīng)用程序和配置,它提供了一種集中管理運(yùn)行和調(diào)試過(guò)程的方式,本文給大家介紹了IDEA開啟Run Dashboard的幾種方式,需要的朋友可以參考下
    2024-03-03
  • Springboot?Filter中注入bean無(wú)效為null問(wèn)題

    Springboot?Filter中注入bean無(wú)效為null問(wèn)題

    這篇文章主要介紹了Springboot?Filter中注入bean無(wú)效為null問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 帶你了解Java Maven的打包操作

    帶你了解Java Maven的打包操作

    這篇文章主要介紹了Maven打包的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Spring Cloud 系列之服務(wù)調(diào)用 OpenFeign的實(shí)現(xiàn)

    Spring Cloud 系列之服務(wù)調(diào)用 OpenFeign的實(shí)現(xiàn)

    這篇文章主要介紹了Spring Cloud 系列之服務(wù)調(diào)用 OpenFeign的實(shí)現(xiàn),需要的朋友可以參考下
    2020-11-11
  • 如何使用IDEA完成登錄與注冊(cè)功能

    如何使用IDEA完成登錄與注冊(cè)功能

    這篇文章主要介紹了如何使用IDEA完成登錄與注冊(cè)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 一篇文章帶你了解JAVA結(jié)構(gòu)化編程詳情

    一篇文章帶你了解JAVA結(jié)構(gòu)化編程詳情

    下面小編就為大家?guī)?lái)一篇講解JAVA結(jié)構(gòu)化編程的文章。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-09-09
  • SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說(shuō)明

    SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說(shuō)明

    這篇文章主要介紹了SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評(píng)論

通许县| 琼海市| 崇礼县| 宜宾县| 荣成市| 陆丰市| 开阳县| 和政县| 侯马市| 鄂托克前旗| 仪陇县| 金秀| 青海省| 北辰区| 阿合奇县| 鄢陵县| 赣榆县| 满城县| 平利县| 普洱| 旬阳县| 蒙阴县| 启东市| 永宁县| 平南县| 保定市| 那坡县| 永城市| 板桥市| 汝州市| 南木林县| 淮南市| 闻喜县| 宜黄县| 图木舒克市| 金昌市| 石柱| 来凤县| 内江市| 普兰县| 凤阳县|