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

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

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

服務器之家 - 編程語言 - Java教程 - Spring Cloud Eureka 注冊與發現操作步驟詳解

Spring Cloud Eureka 注冊與發現操作步驟詳解

2021-08-23 14:48godliu711 Java教程

這篇文章主要介紹了Spring Cloud Eureka 注冊與發現操作步驟詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在搭建spring cloud eureka環境前先要了解整個架構的組成,常用的基礎模式如下圖:

Spring Cloud Eureka 注冊與發現操作步驟詳解

服務提供者:將springboot服務編寫好以后,通過配置注冊中心地址方式注冊,提供給消費者使用。
注冊中心:服務的中間橋梁,服務提供者將服務注冊。服務消費者可以通過注冊信息調用需要使用的服務。
服務消費者:通過規定的調用方式,讀取注冊中心的注冊信息,調用相應的服務。

Spring Cloud Eureka 注冊與發現操作步驟詳解

根據后續的服務復雜度進化以后,可以看到服務提供者也可以是服務消費者,服務消費者也可以是服務提供者。根據不同的業務情況是可以互相調用的。

下面來搭建一個基礎的eureka。環境還是使用的之前的spring官方下載的。

內容寫的比較詳細,可以跟這一步步操作。

一、注冊中心

Spring Cloud Eureka 注冊與發現操作步驟詳解
Spring Cloud Eureka 注冊與發現操作步驟詳解
Spring Cloud Eureka 注冊與發現操作步驟詳解

Spring Cloud Eureka 注冊與發現操作步驟詳解

以下是幾個需要修改和添加的地方,后面會有完整的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
27
28
<parent>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-starter-parent</artifactid>
        <version>2.1.3.release</version>
        <relativepath /> <!-- lookup parent from repository -->
    </parent>
    <dependencymanagement>
        <dependencies>
            <dependency>
                <groupid>org.springframework.cloud</groupid>
                <artifactid>spring-cloud-dependencies</artifactid>
                <version>finchley.sr2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencymanagement>
<!-- 最新版的 eureka 服務端包 -->
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-netflix-eureka-server</artifactid>
        </dependency>
 
        <!-- 監控管理 -->
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-actuator</artifactid>
        </dependency>
spring cloud spring boot
angel版本 兼容spring boot 1.2.x
brixton版本 兼容spring boot 1.3.x,也兼容spring boot 1.4.x
camden版本 兼容spring boot 1.4.x,也兼容spring boot 1.5.x
dalston版本、edgware版本 兼容spring boot 1.5.x,不兼容spring boot 2.0.x
finchley版本 兼容spring boot 2.0.x,不兼容spring boot 1.5.x
greenwich版本 兼容spring boot 2.1.x

這里采用finchley.sr2版本 springboot版本改成 2.1.3.release

完整的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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelversion>4.0.0</modelversion>
    <parent>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-starter-parent</artifactid>
        <version>2.1.3.release</version>
        <relativepath /> <!-- lookup parent from repository -->
    </parent>
    <groupid>com.example</groupid>
    <artifactid>eureka1</artifactid>
    <version>0.0.1-snapshot</version>
    <name>eureka1</name>
    <description>demo project for spring boot</description>
 
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencymanagement>
        <dependencies>
            <dependency>
                <groupid>org.springframework.cloud</groupid>
                <artifactid>spring-cloud-dependencies</artifactid>
                <version>finchley.sr2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencymanagement>
    <dependencies>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter</artifactid>
        </dependency>
        <!-- 最新版的 eureka 服務端包 -->
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-netflix-eureka-server</artifactid>
        </dependency>
 
        <!-- 監控管理 -->
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-actuator</artifactid>
        </dependency>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-test</artifactid>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupid>org.junit.vintage</groupid>
                    <artifactid>junit-vintage-engine</artifactid>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupid>org.springframework.boot</groupid>
                <artifactid>spring-boot-maven-plugin</artifactid>
            </plugin>
        </plugins>
    </build>
 
</project>
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.example.demo;
 
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
import org.springframework.cloud.netflix.eureka.server.enableeurekaserver;
 
@enableeurekaserver
@springbootapplication
public class eureka1application {
 
    public static void main(string[] args) {
        springapplication.run(eureka1application.class, args);
    }
 
}

然后在代碼文件中添加@enableeurekaserver注解

修改application.yml文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
server:
 port: 3000 # 端口
eureka:
 instance:
 hostname: eureka-center
 appname: 注冊中心
 client:
 registerwitheureka: false # 單點的時候設置為 false 禁止注冊自身
 fetchregistry: false
 serviceurl:
 defaultzone: http://localhost:3000/eureka
 server:
 enableselfpreservation: false
 evictionintervaltimerinms: 4000

Spring Cloud Eureka 注冊與發現操作步驟詳解

啟動服務

瀏覽器輸入 http://127.0.0.1:3000

Spring Cloud Eureka 注冊與發現操作步驟詳解

證明注冊中心搭建成功了

二、服務提供者

前面的步驟一樣

Spring Cloud Eureka 注冊與發現操作步驟詳解

providercontroller是新建的一個服務代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-test</artifactid>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-web</artifactid>
        </dependency>
        <!-- eureka 客戶端 -->
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
        </dependency>

不同的地方有加了一個spring-boot-starter-web和spring-cloud-starter-netflix-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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelversion>4.0.0</modelversion>
    <parent>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-starter-parent</artifactid>
        <version>2.1.3.release</version>
        <relativepath /> <!-- lookup parent from repository -->
    </parent>
    <groupid>com.example</groupid>
    <artifactid>eurekaclient1</artifactid>
    <version>0.0.1-snapshot</version>
    <name>eurekaclient1</name>
    <description>demo project for spring boot</description>
 
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencymanagement>
        <dependencies>
            <dependency>
                <groupid>org.springframework.cloud</groupid>
                <artifactid>spring-cloud-dependencies</artifactid>
                <version>finchley.sr2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencymanagement>
    <dependencies>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter</artifactid>
        </dependency>
 
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-test</artifactid>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-web</artifactid>
        </dependency>
        <!-- eureka 客戶端 -->
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupid>org.springframework.boot</groupid>
                <artifactid>spring-boot-maven-plugin</artifactid>
            </plugin>
        </plugins>
    </build>
 
</project>

eurekaclient1application

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.example.demo;
 
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
import org.springframework.cloud.netflix.eureka.enableeurekaclient;
 
@enableeurekaclient
@springbootapplication
public class eurekaclient1application {
 
    public static void main(string[] args) {
        springapplication.run(eurekaclient1application.class, args);
    }
 
}

providercontroller

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.example.demo;
 
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.restcontroller;
 
@restcontroller
public class providercontroller {
 
 @requestmapping(value = "/hello")
 public string hello(){
 
 return "hello spring cloud!";
 }
 
 @requestmapping(value = "/nice")
 public string nice(){
 
 return "nice to meet you!";
 }
}

application.yml

?
1
2
3
4
5
6
7
8
9
10
11
12
server:
 port: 3001
 
eureka:
 instance:
 preferipaddress: true
 client:
 serviceurl:
 defaultzone: http://localhost:3000/eureka ## 注冊到 eureka
spring:
 application:
 name: single-provider ## 應用程序名稱,后面會在消費者中用到

Spring Cloud Eureka 注冊與發現操作步驟詳解

http://127.0.0.1:3001/hello

Spring Cloud Eureka 注冊與發現操作步驟詳解

http://127.0.0.1:3000/

Spring Cloud Eureka 注冊與發現操作步驟詳解

證明服務已經注冊成功

三、服務消費者

前面還是同上

Spring Cloud Eureka 注冊與發現操作步驟詳解

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-test</artifactid>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-web</artifactid>
        </dependency>
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-openfeign</artifactid>
        </dependency>
        <!-- eureka 客戶端 -->
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
        </dependency>

 

pom.xml新增以上內容

完整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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelversion>4.0.0</modelversion>
    <parent>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-starter-parent</artifactid>
        <version>2.1.3.release</version>
        <relativepath /> <!-- lookup parent from repository -->
    </parent>
    <groupid>com.example</groupid>
    <artifactid>eurekaclient1</artifactid>
    <version>0.0.1-snapshot</version>
    <name>eurekaclient1</name>
    <description>demo project for spring boot</description>
 
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencymanagement>
        <dependencies>
            <dependency>
                <groupid>org.springframework.cloud</groupid>
                <artifactid>spring-cloud-dependencies</artifactid>
                <version>finchley.sr2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencymanagement>
    <dependencies>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter</artifactid>
        </dependency>
 
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-test</artifactid>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-web</artifactid>
        </dependency>
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-openfeign</artifactid>
        </dependency>
        <!-- eureka 客戶端 -->
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupid>org.springframework.boot</groupid>
                <artifactid>spring-boot-maven-plugin</artifactid>
            </plugin>
        </plugins>
    </build>
 
</project>

eurekaclient2application

?
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
27
28
29
30
31
32
package com.example.demo;
 
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
import org.springframework.cloud.client.loadbalancer.loadbalanced;
import org.springframework.cloud.netflix.eureka.enableeurekaclient;
import org.springframework.cloud.openfeign.enablefeignclients;
import org.springframework.context.annotation.bean;
import org.springframework.web.client.resttemplate;
 
@enableeurekaclient
@enablefeignclients
@springbootapplication
public class eurekaclient2application {
 
    /**
 * 注入 resttemplate
 * 并用 @loadbalanced 注解,用負載均衡策略請求服務提供者
 * 這是 spring ribbon 的提供的能力
 * @return
 */
 @loadbalanced
 @bean
 public resttemplate resttemplate() {
 return new resttemplate(); //用于調用服務對象
 }
    
    public static void main(string[] args) {
        springapplication.run(eurekaclient2application.class, args);
    }
 
}

consumercontroller

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.example.demo;
 
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.restcontroller;
import org.springframework.web.client.resttemplate;
 
@restcontroller
public class consumercontroller {
    @autowired
 private resttemplate resttemplate;
 
 private static final string applicationname = "single-provider";//服務注冊名
 
 @requestmapping(value = "commonrequest")
 public object commonrequest(){
 string url = "http://"+ applicationname +"/hello";
 string s = resttemplate.getforobject(url,string.class);//ribbon方式調用服務
 return s;
 }
}

application.yml

?
1
2
3
4
5
6
7
8
9
10
11
server:
 port: 3002
eureka:
 client:
 serviceurl:
 defaultzone: http://127.0.0.1:3000/eureka ## 注冊到 eureka
 instance:
 preferipaddress: true
spring:
 application:
 name: single-customer

Spring Cloud Eureka 注冊與發現操作步驟詳解

啟動服務
http://127.0.0.1:3002/commonrequest

Spring Cloud Eureka 注冊與發現操作步驟詳解

返回服務提供者的 hello方法參數。

整個最簡單的過程就完成了,需要更好的使用spring cloud 后續需要了解分布式、負載均衡、熔斷等概念。在后續章節將一步步的拆分。

到此這篇關于spring cloud eureka 注冊與發現操作步驟詳解的文章就介紹到這了,更多相關spring cloud eureka 注冊內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/terry711/article/details/111519711

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲高清毛片一区二区 | 日本在线观看免费观看完整版 | 91天堂国产在线 在线播放 | 15一16japanese破 | 国产一区二区三区福利 | 视频一区在线免费观看 | 高清在线观看免费入口 | 国产精品久久久久久 | 成人一区二区免费中文字幕 | 青草精品 | 双性太子 | 九9热这里真品 | 国产在线一区二区视频 | 成年男女免费视频网站 | 擦逼视频| 日本高清免费看 | 99热成人精品免费久久 | 亚洲 日韩 在线 国产 视频 | 俄罗斯一级淫片bbbb | 天码毛片一区二区三区入口 | 九九九九在线视频播放 | 国产成人在线免费观看 | 国产haodiaose最新 | 日韩不卡一区二区三区 | 亚洲 日韩 自拍 视频一区 | 国产成人激情视频 | 91制片厂制作传媒网站破解 | 武侠古典久久亚洲精品 | 日韩高清在线免费看 | 久久re亚洲在线视频 | 天选之王漫画顾长歌免费阅读 | 精品综合一区二区三区 | japanese厕所撒尿 | 日本福利视频网站 | 男人女人插 | 久久九九精品国产自在现线拍 | 韩国三级在线 | 视频在线免费看 | 日本高清在线不卡 | 色综合色狠狠天天综合色hd | 9l国产精品久久久久麻豆 |