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

    智能推薦

    LeetCode-47.全排列Ⅱ、深度優先搜索

    深度優先搜索 深度優先搜索(DFS)就是在每一步時對每一種可能的選擇一條道走到底,然后再回過頭嘗試另外一種選擇。 深度優先搜索的關鍵是要考慮“當前這一步”該如何做,至于“下一步”該怎么做和當前這一步的解決方法是一樣的。在進行當前步的選擇之前要確定已經做出的選擇列表,然后在剩余可供選擇的每一種可能進行遍歷,對于每一種選擇將選擇結果以及選擇狀態代入下一步...

    分母為0怎么除????---java后端處理 與 sql處理

    (一)java處理 (二)SQL處理 結果:后端處理與sql處理達到的效果一直!誰的效率更明顯,暫時未知!...

    知識點最全的數據庫面試題

    來源:https://zhuanlan.zhihu.com/p/150959652 13道sql,基本上覆蓋了所有sql的核心點。 要求寫出一下SQL語句 1、查詢位于“華東”或“華南”地區的供應商的ID、公司名稱、地區、城市和電話字段的值 a. 地區=”華東” OR a.地區=”華南”; 2、查詢&l...

    面向切面編程(AOP)知識總結

    目錄 1.存在問題 2.AOP的概念 3.AOP應用范圍 3.AOP實現方式 4.應用舉例 5.結束語 本文在學習【老張的哲學】系列文章AOP相關章節后,自己歸納總結的筆記。 1.存在問題 最近,其它項目小組在開發的過程中遇到了一個問題,在日志記錄時,用戶明明點擊的是更新操作,可翻看記錄時卻發現是查詢操作,起初是一頭霧水,后面跟蹤該更新操作的代碼后才發現,在日志記錄時確實是寫著查詢,說到這里,大家...

    猜你喜歡

    集合中出現的問題

    1.Java集合框架的長處? 2.集合框架中的泛型有什么長處? 3.Java集合框架的基礎接口有哪些? 4.為何Map接口不繼承Collection接口? 5.Iterater和ListIterator之間有什么差別? 6.fail-fast與fail-safe有什么差別? 7.在迭代一個集合的時候,怎樣避免ConcurrentModificationException?8.在Java中,Hash...

    三元運算符引起的bug

    三元運算符引起的bug 前言 延伸 總結 前言 今天測試提交了一個bug,跟蹤發現了一段代碼,初看還沒什么問題,簡易后的代碼: 這段代碼想要實現的功能是返回 細看發現后面使用的是三元運算符,這就是造成這個bug的元兇。 解決方案:使用括號括起來。 延伸 在做這個例子的時候,使用ideal,習慣性的使用sonar掃描: 這里很明顯的提醒這里表達式有問題。 總結 三元運算符格式:expression1...

    利用dom4j來生成xml

    xml比較常用,處理xml的方式也比較多。現在就聊聊如何用dom4j來生成xml吧 先看看效果。。。 上傳代碼: 大概說下主要步驟吧:   1.創建document對象,創建root根節點,然后通過根節點繼續生成節點。其中也可以給該節點添加屬性,復制等。   2.創建輸出流,將該對象輸出到xml文件中去。需要設置好路徑和文件名等。...

    Android輪播圖原理思路分析+實現方案

    來自:http://blog.csdn.net/wubihang/article/details/52512597 ListView的headerView設置為輪播圖之后結合上/下拉刷新/加載的模式成為現在大多數APP的一個必須具備的功能,對于許多初學者來說想要實現輪播圖這樣一個集線程睡眠、自動處理、替換過程中刷新UI界面的組合功能非常困難,沒有思路,感覺無從下手,去搜索各種實現方案,發現目前充斥...

    Lambda的編寫和使用---java8編程實戰

    目錄 1.使用匿名類來表示不同的行為來實現行為參數,代碼有點啰嗦,解決這個問題的新工具--Lambda表達式。 2.Lambda的概念 3.Lambda語法測試  4.在程序中如何使用Lambda表達式 1.使用匿名類來表示不同的行為來實現行為參數,代碼有點啰嗦,解決這個問題的新工具--Lambda表達式。       Lambda可以讓你很簡潔地表示一個行...

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