一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - springcloud干貨之服務注冊與發現(Eureka)

springcloud干貨之服務注冊與發現(Eureka)

2021-03-26 10:53陳明羽 Java教程

這篇文章主要介紹了springcloud干貨之服務注冊與發現(Eureka) ,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

使用eureka實現服務治理

作用:實現服務治理(服務注冊與發現)

簡介:spring cloud eureka是spring cloud netflix項目下的服務治理模塊。而spring cloud netflix項目是spring cloud的子項目之一,主要內容是對netflix公司一系列開源產品的包裝,它為spring boot應用提供了自配置的netflix oss整合。通過一些簡單的注解,開發者就可以快速的在應用中配置一下常用模塊并構建龐大的分布式系統。它主要提供的模塊包括:服務發現(eureka),斷路器(hystrix),智能路由(zuul),客戶端負載均衡(ribbon)等。

項目實戰:

服務注冊中心 :eureka-server

作用:服務注冊中心提供服務注冊功能

服務提供方:eureka-client

作用:注冊服務到服務注冊中心

服務注冊中心 :eureka-server

新建一個springboot項目:eureka-server,其pom.xml配置如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<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-eureka-server</artifactid>
  </dependency>
 </dependencies>
 <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>

想要實現一個服務注冊中心的功能非常簡單,只需要在項目的啟動類eurekaserverapplication上使用@enableeurekaserver注解即可

?
1
2
3
4
5
6
7
8
9
@enableeurekaserver
@springbootapplication
public class eurekaserverapplication{
 
 public static void main(string[] args) {
  new springapplicationbuilder(eurekaserverapplication.class)
     .web(true).run(args);
 }
}

默認情況下,該服務注冊中心也會將自己作為客戶端來嘗試注冊它自己,所以我們需要禁用它的客戶端注冊行為,只需要在application.properties配置文件中增加如下信息:

?
1
2
3
4
5
spring.application.name=eureka-server
server.port=1001
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

啟動eurekaserverapplication,訪問 http://localhost:9001/可以看到eureka的頁面,從紅框的位置可以看到沒有任務服務實例注冊到當前的服務注冊中心

springcloud干貨之服務注冊與發現(Eureka)

服務提供方 :eureka-client

每一個實例注冊之后需要向注冊中心發送心跳,當client向server注冊時,它會提供一些元數據,例如主機和端口,url,主頁等。eureka server 從每個client實例接收心跳消息。 如果心跳超時,則通常將該實例從注冊server中刪除。

新建一個springboot項目:eureka-client,其pom.xml配置如下:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<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-eureka</artifactid>
  </dependency>
  <dependency>
   <groupid>org.springframework.boot</groupid>
   <artifactid>spring-boot-starter-web</artifactid>
  </dependency>
 </dependencies>
 <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>

想要實現一個服務提供方也很簡單,只要在項目的啟動類eurekaclientapplication上使用@enableeurekaclient注解即可

?
1
2
3
4
5
6
7
8
9
10
@enableeurekaclient
@springbootapplication
public class eurekaclientapplication {
 
 public static void main(string[] args) {
   new springapplicationbuilder(
     eurekaclientapplication.class)
    .web(true).run(args);
  }
}

在application.properties中進行如下配置

?
1
2
3
spring.application.name=eureka-client
server.port=9002
eureka.client.serviceurl.defaultzone=http://localhost:9001/eureka/

通過spring.application.name屬性,我們可以指定微服務的名稱后續在調用的時候只需要使用該名稱就可以進行服務的訪問。

eureka.client.serviceurl.defaultzone屬性對應服務注冊中心的配置內容,指定服務注冊中心的位置。

使用server.port屬性設置不同的端口。

啟動eurekaclientapplication類

刷新 http://localhost:9001/,可以看到咱們的服務提供方已經注冊到了服務注冊中心

springcloud干貨之服務注冊與發現(Eureka)

在新建一個discoverycontroller

   使用discoveryclient.getservices()獲取已經注冊的服務名,使用@value將配置文件中的信息賦值到ip

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@restcontroller
public class discoverycontroller {
 
 @autowired
 private discoveryclient discoveryclient;
 @value("${server.port}")
 private string ip;
 
 @getmapping("/client")
 public string client() {
  string services = "services: " + discoveryclient.getservices()+" ip :"+ip;
  
  system.out.println(services);
  return services;
 }
}

訪問:http://localhost:9002/client

springcloud干貨之服務注冊與發現(Eureka)

最后說明一下@enableeurekaclient 與@enablediscoveryclient這兩個注解

首先這個兩個注解都可以實現服務發現的功能,在spring cloud中discovery service有許多種實現(eureka、consul、zookeeper等等)

@enableeurekaclient基于spring-cloud-netflix。服務采用eureka作為注冊中心,使用場景較為單一。

@enablediscoveryclient基于spring-cloud-commons。服務采用其他注冊中心。

github:https://github.com/mingyuhub/springcloud

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/cmyxn/p/7704319.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费刷10000名片赞网站 | 99久女女精品视频在线观看 | chinese壮直男gay老年人 | 日本高清免费看 | 国产日韩欧美不卡www | 四虎影院永久网址 | 白丝美女用胸伺候主人 | 国产一区二区三区福利 | 日本三级在丈面前被耍了 | 全是女性放屁角色的手游 | 美女下面被cao出水 美女污视频 | 全弄乱纶小说 | 日本精品久久久久中文字幕 1 | 色吧欧美 | 国产精品视频一区二区三区w | jux629三浦理惠子在线播放 | 青春草在线观看精品免费视频 | 精品国产一区二区三区国产馆 | 国产精品视频免费看 | 午夜亚洲WWW湿好大 午夜想想爱 | 啊啊啊好爽在线观看 | blackedhd 18sex | 亚洲va国产日韩欧美精品色婷婷 | 欧美夜夜精品一级爽 | 52av我爱avhaose01好 | 粗了大了 整进去好爽视频 刺激一区仑乱 | 能播放的欧美同性videos | 欧美日韩国产亚洲人成 | 国产在线影院 | 欧美成人免费观看久久 | 国产精品suv | 99精品国产高清一区二区三区香蕉 | 放荡的女老板bd中文字幕 | 国产午夜精品一区二区 | 暖暖 免费 高清 中文 日本 | 国产视频久久久 | 国内精品伊人久久大香线焦 | www.亚洲色图| 亚洲青草视频 | 性xx色3d动画xx无尽 | ass老妇黑森林pic |