激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語言 - Java教程 - Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

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

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

在搭建spring cloud eureka環(huán)境前先要了解整個(gè)架構(gòu)的組成,常用的基礎(chǔ)模式如下圖:

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

服務(wù)提供者:將springboot服務(wù)編寫好以后,通過配置注冊中心地址方式注冊,提供給消費(fèi)者使用。
注冊中心:服務(wù)的中間橋梁,服務(wù)提供者將服務(wù)注冊。服務(wù)消費(fèi)者可以通過注冊信息調(diào)用需要使用的服務(wù)。
服務(wù)消費(fèi)者:通過規(guī)定的調(diào)用方式,讀取注冊中心的注冊信息,調(diào)用相應(yīng)的服務(wù)。

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

根據(jù)后續(xù)的服務(wù)復(fù)雜度進(jìn)化以后,可以看到服務(wù)提供者也可以是服務(wù)消費(fèi)者,服務(wù)消費(fèi)者也可以是服務(wù)提供者。根據(jù)不同的業(yè)務(wù)情況是可以互相調(diào)用的。

下面來搭建一個(gè)基礎(chǔ)的eureka。環(huán)境還是使用的之前的spring官方下載的。

內(nèi)容寫的比較詳細(xì),可以跟這一步步操作。

一、注冊中心

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解
Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解
Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

以下是幾個(gè)需要修改和添加的地方,后面會(huì)有完整的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 服務(wù)端包 -->
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-netflix-eureka-server</artifactid>
        </dependency>
 
        <!-- 監(jiān)控管理 -->
        <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 服務(wù)端包 -->
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-netflix-eureka-server</artifactid>
        </dependency>
 
        <!-- 監(jiān)控管理 -->
        <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 # 單點(diǎn)的時(shí)候設(shè)置為 false 禁止注冊自身
 fetchregistry: false
 serviceurl:
 defaultzone: http://localhost:3000/eureka
 server:
 enableselfpreservation: false
 evictionintervaltimerinms: 4000

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

啟動(dòng)服務(wù)

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

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

證明注冊中心搭建成功了

二、服務(wù)提供者

前面的步驟一樣

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

providercontroller是新建的一個(gè)服務(wù)代碼

?
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>

不同的地方有加了一個(gè)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 ## 應(yīng)用程序名稱,后面會(huì)在消費(fèi)者中用到

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

http://127.0.0.1:3001/hello

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

http://127.0.0.1:3000/

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

證明服務(wù)已經(jīng)注冊成功

三、服務(wù)消費(fèi)者

前面還是同上

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

?
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新增以上內(nèi)容

完整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 注解,用負(fù)載均衡策略請求服務(wù)提供者
 * 這是 spring ribbon 的提供的能力
 * @return
 */
 @loadbalanced
 @bean
 public resttemplate resttemplate() {
 return new resttemplate(); //用于調(diào)用服務(wù)對象
 }
    
    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";//服務(wù)注冊名
 
 @requestmapping(value = "commonrequest")
 public object commonrequest(){
 string url = "http://"+ applicationname +"/hello";
 string s = resttemplate.getforobject(url,string.class);//ribbon方式調(diào)用服務(wù)
 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 注冊與發(fā)現(xiàn)操作步驟詳解

啟動(dòng)服務(wù)
http://127.0.0.1:3002/commonrequest

Spring Cloud Eureka 注冊與發(fā)現(xiàn)操作步驟詳解

返回服務(wù)提供者的 hello方法參數(shù)。

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人免费入口 | 免费黄色在线观看网站 | 国内毛片视频 | 九九视频久久 | 成人免费一区二区三区 | 91网站链接 | 国产小视频在线 | 国产精品亚洲一区二区三区在线观看 | 一级在线免费 | 国产精品久久久久久久午夜片 | 欧美一级毛片大片免费播放 | 久久艹一区 | 毛片在线免费 | 国产精品久久久久国产精品三级 | 国产一区二区三区四区五区精品 | av电影网站在线 | 在线观看日本中文字幕 | 在线小视频国产 | 精品99在线视频 | 成人午夜在线免费观看 | 国产大片免费看 | 精品人成 | 国产一区二区三区在线免费 | 日韩视频一区二区三区四区 | 亚洲性在线视频 | 亚洲va国产va| 欧美高清另类自拍视频在线看 | 国产91在线高潮白浆在线观看 | 久久精品成人 | 国产成人午夜高潮毛片 | 亚洲国产精品久久久 | 亚洲成人福利在线 | 亚洲一区 国产精品 | www.成人精品 | 一级成人欧美一区在线观看 | 午夜精品在线视频 | 国产一区二区三区在线免费观看 | 久久久青 | 国产91在线高潮白浆在线观看 | 亚欧美一区二区 | 欧美国产日韩在线观看成人 |