• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • SpringBoot 2.0 +SpringCloud 實現服務注冊與發現

    1.創建 SpringBoot 項目

    修改pom.xml 文件 添加springcloud依賴

    <?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 http://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.0.3.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>eureka-server</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>eureka-server</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <!-- springCloud 配置 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
            </dependency>
    
            <!-- springCloud注測中心服務 -->
            <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-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <!--<version>Finchley.RC1</version>-->
                    <version>Finchley.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    2.在springboot 的程序啟動類加上 @EnableEurekaServer 注解

    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaServerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaServerApplication.class, args);
        }
    
    }

    注:如果springboot 和對應的springcloud版本不一致,會導致@EnableEurekaServer 注解無法引用

    3.配置文件 application.properties

    #注冊中心服務ID
    spring.application.name=compute-server
    #端口號
    server.port=8075
    # eureka.client.registerWithEureka :表示是否將自己注冊到Eureka Server,默認為true。
    # 由于當前這個應用就是Eureka Server,故而設為false
    eureka.client.register-with-eureka=false
    # eureka.client.fetchRegistry :表示是否從Eureka Server獲取注冊信息,默認為true。因為這是一個單點的Eureka Server,
    # 不需要同步其他的Eureka Server節點的數據,故而設為false。
    eureka.client.fetch-registry=false
    # eureka.client.serviceUrl.defaultZone :設置與Eureka Server交互的地址,查詢服務和注冊服務都需要依賴這個地址。默認是
    eureka.client.serviceUrl.defaultZone=http://localhost:8075/eureka/

    啟動項目 訪問 : http://localhost:8075 從此頁面可以看出,還沒有發現任何服務

    服務端搭建完成

     

    客戶端搭建

    1.創建springboot 項目

    pom.xml 文件添加依賴

    <?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 http://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.0.3.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.boot_secutiry_jpa</groupId>
        <artifactId>login</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>login</name>
        <description>Demo project for Spring Boot</description>
    
        <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.boot</groupId>
    			<artifactId>spring-boot-starter</artifactId>
    		</dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <!--spring cloud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
            </dependency>
            <!--eureka-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
    
        </dependencies>
    
        <!--spring cloud 版本配置 -->
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Finchley.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    2.在springboot 程序啟動類上加上@EnableEurekaClient 該注解能**Eureka中的對注冊中心注冊服務實現,才能實現Controller中對服務信息的輸出。

    @SpringBootApplication
    @EnableEurekaClient
    public class LoginApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(LoginApplication.class, args);
        }
    
    }
    

    3.application.properties配置文件

    #端口
    server.port=8081
    #服務名稱
    spring.application.name=compute-login
    #在注冊中心中進行注冊
    eureka.client.serviceUrl.defaultZone=http://localhost:8075/eureka/
    #啟動服務發現的功能,開啟了才能調用其它服務
    spring.cloud.config.discovery.enabled=true
    #發現的服務的名字--對應注測中心的服務名字  對應的是服務端的名字
    spring.cloud.config.discovery.serviceId=compute-server

    然后啟動服務端 與客戶端

    訪問 : http://localhost:8075 可以看到服務已經注冊在里面了

    注:springboot 跟 springcloud  服務端 客戶端版本要一致 否則項目會報下面的錯誤 

    2019-02-13 15:38:02.393  INFO 7512 --- [           main] ConditionEvaluationReportLoggingListener : 
    
    Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
    2019-02-13 15:38:02.395 ERROR 7512 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 
    
    ***************************
    APPLICATION FAILED TO START
    ***************************
    
    Description:
    
    The bean 'dataSource', defined in BeanDefinition defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class], could not be registered. A bean with that name has already been defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class] and overriding is disabled.
    
    Action:
    
    Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
    
    Disconnected from the target VM, address: '127.0.0.1:14424', transport: 'socket'
    
    Process finished with exit code 1
    

     

     

     

    版權聲明:本文為boom_boom_booms原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/boom_boom_booms/article/details/89024380

    智能推薦

    在springboot項目基礎上 搭建springcloud之Eureka(服務注冊與發現)

    一、 新建springcloud項目(以Eclipse為例),注意新建springcloud的項目的位置,是在spring下面 二、next 。 填寫好該填的等等,如下圖: 三、注意:選擇springboot版本號,以及勾選eureka server 四、新建完成后的pom文件如下圖,修改一個依賴,添加一個依賴: 1、修改。springcloud版本與上圖中你所選擇的springboot版本兼容,...

    Springboot2.x整合Springcloud(第一章)服務的注冊與發現

    Spring Cloud(一)服務的注冊與發現(Eureka)        Spring Cloud是一個基于Spring Boot實現的云應用開發工具,它為基于JVM的云應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態管理等操作提供了一種簡單的開發方式。 Spri...

    SpringCloud-2.0-周陽(7. 服務注冊發現 - Consul)學習筆記

    上一篇 :6. 服務注冊發現 - ZooKeeper 文章目錄 1. 簡介 1.1 什么是 Consul 1.2 作用 1.3 下載地址 1.4 中文文檔 1.5 啟動 Consul 2. 服務提供者 Provider 3. 服務消費者 Consumer 4. 三個注冊中心異同點 4.1 背景 4.2 對比 4.2 圖表 1. 簡介 1.1 什么是 Consul Consul 官網 :https:...

    SpringCloud-2.0-周陽(6. 服務注冊發現 - ZooKeeper)學習筆記

    上一篇 :5. 服務注冊發現 - Eureka 下一篇 :7. 服務注冊發現 - Consul 文章目錄 1. 準備工作 2. 服務提供者 Provider 3. 服務消費者 Consumer 1. 準備工作 在 Linux 上部署 Zookeeper 我找的教程,也可以自行尋找 https://www.cnblogs.com/zhiyouwu/p/11546097.html 如果 Zookeep...

    最新springboot2.0集成springcloud注冊中心(第一章)

     這是我的新建的格式可供新手學習!   首先引入依賴  其次編寫代碼  編寫application.properties 接下來就能看到這樣的頁面就算成功啦,集成還是很簡單的,哈哈  ...

    猜你喜歡

    關于SpringBoot 2.0+SpringCloud+Eureka搭建注冊中心遇到的坑

    最近一周自己學著搭用springBoot+springCloud+Eureka搭建注冊中心總是遇到很多坑,最為致命的還是下面這個,不管換springBoot版本還是springCloud版本,都是一個吊樣,話不多少直接上代碼: 下面紅色部分為重點部分!!!!! 錯誤信息:   在網上找了很多博客一點卵用都沒有,還白白的浪費時間,最后還是在一節網上的公開課中找到了答案,出現的原因如下:ja...

    SpringCloud(一)使用Eureka實現服務注冊與發現

    SpringCloud(一)使用Eureka實現服務注冊與發現 Eureka服務端 SpringCloud項目基于SpringBoot,所以pom文件需要引入SpringCloud和SpringBoot的依賴。 啟動類: application.yml文件 bootstrap.yml這里的spring.application.name會作為顯示名稱出現在Eureka的控制臺頁面。 Eureka啟動...

    springcloud實戰之2 服務注冊與發現(eureka實現)

    服務注冊與發現 由于Spring Cloud為服務治理做了一層抽象接口,所以在Spring Cloud應用中可以支持多種不同的服務治理框架,比如:Netflix Eureka、Consul、Zookeeper。在Spring Cloud服務治理抽象層的作用下,我們可以無縫地切換服務治理實現,并且不影響任何其他的服務注冊、服務發現、服務調用等邏輯。 Spring Cloud Eureka是Sprin...

    hive 導出數據之一列多行,轉為一行多列

    需求:提取數據 說明:原數據是一列多行,需要轉化為一行多列 待查詢表為:temp_05 待查詢數據為: 待查詢數據如圖: 需要提取的數據表頭如下: 預定日期 昨日價格 前天價格 2018-02-01 2018-02-02 2018-02-03 2018-02-04 可用提數 SQL 數據如圖: 以下為嘗試過程 數據如圖: 數據如圖: 數據如圖: 數據如圖:...

    asp.net做一個簡易的聊天室

    要求: 結果: 關鍵代碼: Default.aspx Default.aspx.cs Default2.aspx Default2.aspx.cs Default3.aspx Default3.aspx.cs Default4.aspx...

    精品国产乱码久久久久久蜜桃不卡