成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Spring Cloud 參考文檔(服務(wù)發(fā)現(xiàn):Eureka Server)

BLUE / 2005人閱讀

摘要:何時(shí)首選地址在某些情況下,最好公布服務(wù)的地址而不是主機(jī)名,將設(shè)置為,當(dāng)應(yīng)用程序向注冊時(shí),它使用其地址而不是其主機(jī)名。

服務(wù)發(fā)現(xiàn):Eureka Server

本節(jié)介紹如何設(shè)置Eureka服務(wù)器。

如何包含Eureka服務(wù)器

要在項(xiàng)目中包含Eureka Server,請使用組ID為org.springframework.cloud和工件ID為spring-cloud-starter-netflix-eureka-server的啟動(dòng)器。

如果你的項(xiàng)目已使用Thymeleaf作為其模板引擎,則可能無法正確加載Eureka服務(wù)器的Freemarker模板,在這種情況下,有必要手動(dòng)配置模板加載器:

application.yml

spring:
  freemarker:
    template-loader-path: classpath:/templates/
    prefer-file-system-access: false
如何運(yùn)行Eureka服務(wù)器

以下示例顯示了最小的Eureka服務(wù)器:

@SpringBootApplication
@EnableEurekaServer
public class Application {

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

}

服務(wù)器有一個(gè)UI主頁和在/eureka/*下用于正常Eureka功能的HTTP API端點(diǎn)。

以下鏈接有一些Eureka背景閱讀:flux capacitor和谷歌小組討論。

由于Gradle的依賴關(guān)系解析規(guī)則和缺少父bom特性,依賴spring-cloud-starter-netflix-eureka-server可能導(dǎo)致應(yīng)用程序啟動(dòng)失敗,要解決此問題,請?zhí)砑覵pring Boot Gradle插件并導(dǎo)入Spring cloud starter parent bom,如下所示:

build.gradle

buildscript {
  dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:{spring-boot-docs-version}")
  }
}

apply plugin: "spring-boot"

dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:{spring-cloud-version}"
  }
}
高可用性、Zones和Regions

Eureka服務(wù)器沒有后端存儲(chǔ),但注冊表中的服務(wù)實(shí)例都必須發(fā)送心跳以使其注冊保持最新(因此可以在內(nèi)存中完成),客戶端還有一個(gè)Eureka注冊的內(nèi)存緩存(因此,它們不必對服務(wù)的每個(gè)請求都去注冊表)。

默認(rèn)情況下,每個(gè)Eureka服務(wù)器也是Eureka客戶端,并且需要(至少一個(gè))服務(wù)URL來定位對等體,如果你不提供該服務(wù),該服務(wù)將運(yùn)行并工作,但它會(huì)在你的日志中填充很多關(guān)于無法向?qū)Φ确阶缘脑胍簟?/p> 獨(dú)立模式

兩個(gè)緩存(客戶端和服務(wù)器)的組合和心跳使獨(dú)立的Eureka服務(wù)器能夠很好地應(yīng)對故障,只要有某種監(jiān)視器或彈性運(yùn)行時(shí)(例如Cloud Foundry)保持活著。在獨(dú)立模式下,你可能更愿意關(guān)閉客戶端行為,以便它不會(huì)繼續(xù)嘗試并且無法訪問其對等方,以下示例顯示如何關(guān)閉客戶端行為:

application.yml(獨(dú)立Eureka服務(wù)器)。

server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

請注意,serviceUrl指向與本地實(shí)例相同的主機(jī)。

對等感知

通過運(yùn)行多個(gè)實(shí)例并要求它們相互注冊,可以使Eureka更具彈性和可用性,實(shí)際上,這是默認(rèn)行為,因此你需要做的就是將有效的serviceUrl添加到對等體,如以下示例所示:

application.yml(兩個(gè)Peer Aware Eureka服務(wù)器)。

---
spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer2/eureka/

---
spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1/eureka/

在前面的示例中,我們有一個(gè)YAML文件,可以通過在不同的Spring配置文件中運(yùn)行它來在兩個(gè)主機(jī)(peer1peer2)上運(yùn)行相同的服務(wù)器,你可以使用此配置通過操作/etc/hosts來解析主機(jī)名來測試單個(gè)主機(jī)上的對等感知(在生產(chǎn)中執(zhí)行此操作沒有太大價(jià)值)。實(shí)際上,如果你在知道自己的主機(jī)名的計(jì)算機(jī)上運(yùn)行,??則不需要eureka.instance.hostname(默認(rèn)情況下,使用java.net.InetAddress查找它)。

你可以將多個(gè)對等體添加到系統(tǒng)中,并且只要它們通過至少一個(gè)邊緣彼此連接,它們就會(huì)在它們之間同步注冊,如果對等體在物理上是分開的(在數(shù)據(jù)中心內(nèi)或在多個(gè)數(shù)據(jù)中心之間),那么系統(tǒng)原則上可以在“裂腦”類型故障中存活,你可以向系統(tǒng)添加多個(gè)對等體,只要它們彼此直接連接,它們就會(huì)在它們之間同步注冊。

application.yml(三個(gè)Peer Aware Eureka服務(wù)器)。

eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1/eureka/,http://peer2/eureka/,http://peer3/eureka/

---
spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1

---
spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2

---
spring:
  profiles: peer3
eureka:
  instance:
    hostname: peer3
何時(shí)首選IP地址

在某些情況下,Eureka最好公布服務(wù)的IP地址而不是主機(jī)名,將eureka.instance.preferIpAddress設(shè)置為true,當(dāng)應(yīng)用程序向eureka注冊時(shí),它使用其IP地址而不是其主機(jī)名。

如果Java無法確定主機(jī)名,則將IP地址發(fā)送給Eureka,設(shè)置主機(jī)名的明確方法是只有設(shè)置eureka.instance.hostname屬性,你可以使用環(huán)境變量在運(yùn)行時(shí)設(shè)置主機(jī)名 — 例如,eureka.instance.hostname=${HOST_NAME}。
保護(hù)Eureka服務(wù)器

只需將spring-boot-starter-security添加到服務(wù)器的類路徑中,即可通過Spring Security保護(hù)你的Eureka服務(wù)器,默認(rèn)情況下,當(dāng)Spring Security位于類路徑上時(shí),它將要求應(yīng)用程序的每次請求都要發(fā)送有效的CSRF令牌,Eureka客戶端通常不會(huì)擁有有效的跨站點(diǎn)請求偽造(CSRF)令牌,你需要為/eureka/**端點(diǎn)禁用此要求,例如:

@EnableWebSecurity
class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().ignoringAntMatchers("/eureka/**");
        super.configure(http);
    }
}

有關(guān)CSRF的更多信息,請參閱Spring Security文檔。

可以在Spring Cloud Samples存儲(chǔ)庫中找到Eureka Server demo。

JDK 11支持

在JDK 11中刪除了Eureka服務(wù)器所依賴的JAXB模塊,如果你打算在運(yùn)行Eureka服務(wù)器時(shí)使用JDK 11,則必須在POM或Gradle文件中包含這些依賴項(xiàng)。


    javax.xml.bind
    jaxb-api
    2.3.0


    com.sun.xml.bind
    jaxb-core
    2.3.0


    com.sun.xml.bind
    jaxb-impl
    2.3.0
上一篇:服務(wù)發(fā)現(xiàn):Eureka客戶端 下一篇:斷路器:Hystrix客戶端

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/74128.html

相關(guān)文章

  • Spring Cloud 參考文檔服務(wù)發(fā)現(xiàn)Eureka客戶端)

    摘要:這些發(fā)布在服務(wù)注冊表中,客戶端使用它們以直接的方式聯(lián)系服務(wù),可以將額外元數(shù)據(jù)添加到中的實(shí)例注冊中,并且可以在遠(yuǎn)程客戶端中訪問此元數(shù)據(jù)。 服務(wù)發(fā)現(xiàn):Eureka客戶端 服務(wù)發(fā)現(xiàn)是基于微服務(wù)架構(gòu)的關(guān)鍵原理之一,嘗試手動(dòng)配置每個(gè)客戶端或某種形式的約定可能很難做到并且可能很脆弱,Eureka是Netflix Service Discovery服務(wù)器和客戶端,服務(wù)器可以被配置和部署為高可用性,每...

    awokezhou 評論0 收藏0
  • Spring Cloud 參考文檔Spring Cloud Config Client)

    摘要:應(yīng)用程序可以立即利用或應(yīng)用程序開發(fā)人員提供的其他外部屬性源,它還提取了一些與變化事件相關(guān)的額外有用特性。標(biāo)簽也可以以逗號(hào)分隔列表的形式提供,在這種情況下,列表中的項(xiàng)目將逐個(gè)嘗試,直到成功為止,在處理特性分支時(shí),此行為非常有用。 Spring Cloud Config Client Spring Boot應(yīng)用程序可以立即利用Spring Config Server(或應(yīng)用程序開發(fā)人員提供...

    DevWiki 評論0 收藏0
  • 史上最簡單的 SpringCloud 教程 | 第一篇: 服務(wù)的注冊與發(fā)現(xiàn)Eureka

    摘要:創(chuàng)建過程同類似創(chuàng)建完如下通過注解表明自己是一個(gè)僅僅是不夠的,還需要在配置文件中注明自己的服務(wù)注冊中心的地址,配置文件如下需要指明這個(gè)很重要,這在以后的服務(wù)與服務(wù)之間相互調(diào)用一般都是根據(jù)這個(gè)。 轉(zhuǎn)載請標(biāo)明出處: http://blog.csdn.net/forezp/a...本文出自方志朋的博客 一、spring cloud簡介 spring cloud 為開發(fā)人員提供了快速構(gòu)建分布式系...

    only_do 評論0 收藏0
  • SpringCloud核心教程 | 第三篇:服務(wù)注冊與發(fā)現(xiàn) Eureka

    摘要:下一篇介紹基于的服務(wù)注冊與調(diào)用。服務(wù)提供者工程配置這里服務(wù)提供者是使用之前進(jìn)階教程第三篇整合連接池以及監(jiān)控改造而來,這里一樣的部分就不再重復(fù)說明,下面將說明新增的部分。 Spring Cloud簡介 Spring Cloud是一個(gè)基于Spring Boot實(shí)現(xiàn)的云應(yīng)用開發(fā)工具,它為基于JVM的云應(yīng)用開發(fā)中涉及的配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分...

    scq000 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<