• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • SpringCloud學習筆記(二):建立注冊中心,注冊微服務

    標簽: spring  eureka  java

    SpringCloud學習筆記(二):建立注冊中心,注冊微服務

    注冊中心

    上一篇文章中我們新建了一個簡單的微服務工程,在一個常規的項目中,會有十幾個甚至更多的這樣的微服務來構成一個完整的系統,微服務之間通過接口互相傳遞數據。那么,按照往常的思維,微服務之間的接口URL只能通過硬編碼的方式來寫進代碼里了,這樣顯然大大增加了代碼的維護難度,一個接口的地址、參數產生了變化,可能會影響到多個微服務對其的調用,這時SpringCloud帶著eureka組件應運而生了,SpringCloud首先要解決的,就是這個URL的問題。每個微服務都將在eureka上注冊,eureka將分配一個微服務ID給每一個微服務,這個微服務ID在eureka體系中可以實現替代URL中主機名的作用。

    建立注冊中心

    我們首先在IDEA中新建一個模塊或者新建一個Maven項目,我這里是選擇新建一個模塊,先點擊項目結構設置(Ctrl+Alt+Shift+S)
    項目結構設置
    接下來配置項目模塊(Moudules),單擊左上角的+號,選擇New Moudule新建一個模塊。
    模塊設置
    模塊依賴選擇Maven,下一步,填寫Maven項目信息
    填寫信息
    點擊下一步,修改一下項目的目錄位置,不然會被放在第一個項目的目錄下
    修改目錄位置
    打開新模塊下的pom.xml,在其中加入如下代碼:

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.6.RELEASE</version>
        </parent>
        <dependencyManagement>
            <dependencies>
                <!-- 導入Spring Cloud的依賴管理 -->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Finchley.SR1</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
        <dependencies>
            <!--springboot 整合eureka服務端-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    

    eureka注冊中心自身也是一個微服務,是基于SpringBoot的,因此我們同樣需要編寫啟動類,以啟動eureka服務。在java文件夾下新建runner包,在包下面新建一個eurekaApp類,代碼如下:

    package runner;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @SpringBootApplication
    @EnableEurekaServer //聲明這是一個Eureka服務
    public class eurekaApp {
    
        public static void main(String[] args) {
            SpringApplication.run(eurekaApp.class, args);
        }
    }
    

    最后在resource文件夾下,新建一個application.yml,配置一下SpringBoot需要的參數以及eureka需要的參數,注冊中心就可以啟動了,代碼如下:

    #服務端口號
    server:
      port: 9090
    
    #服務名稱
    spring:
      application:
        name: app-eureka-center
    
    eureka:
      instance:
        #注冊中心地址
        hostname: localhost
    
    #客戶端調用地址
      client:
        serviceUrl:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
        #是否將自己注冊到Eureka服務中
        register-with-eureka: false
        #是否從Eureka中獲取注冊信息
        fetch-registry: false
    

    設置完這些參數以后就可以運行啟動類中的入口方法了,等待項目加載完成,在瀏覽器中訪問localhost:9090就可以看到如下圖所示的注冊中心頁面了
    注冊中心
    從圖中我們可以看見Instances currently registered with Eureka下面的表格還沒有數據,這是因為我們還沒有任何的服務被注冊到Eureka中,接下來我們要做的就是注冊一個微服務到注冊中心。

    注冊微服務

    把微服務注冊到注冊中心是非常簡單的一件事情,我們只需要在原先的微服務模塊中新增一個依賴,yml文件中添加幾行配置,然后在啟動類上加一個注解就可以實現將微服務注冊到注冊中心了。

    首先我們先打開上一個模塊(microservicefirst)的pom.xml,在依賴中新增下面這個依賴:

    <!--springboot 整合eureka客戶端-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        <version>2.0.2.RELEASE</version>
    </dependency>
    

    然后打開resource目錄下的application.yml文件,在底下新增如下幾行配置

    #服務注冊到eureka注冊中心的地址
    eureka:
      instance:
        instance-id: ${spring.application.name}###${server.port} #指定實例id
      client:
        service-url:
        #注冊中心地址
          defaultZone: http://localhost:9090/eureka/
    #需要注冊到注冊中心
        register-with-eureka: true
    #是否需要從eureka上檢索服務
        fetch-registry: false
    

    最后修改runner啟動類上的注解,新增在類上新增一行注解:

    @EnableEurekaClient//啟動Eureka客戶端,標記這個服務是Eureka的客戶端服務
    

    啟動這個微服務模塊,等待模塊啟動完成之后再次訪問localhost:9090,就可以看到在列表下新增了一個微服務,我們的微服務在注冊中心上注冊成功了。

    注冊服務成功
    上面那一大串紅字是由于Eureka長時間沒有接收到微服務心跳啟動了自動保護機制,暫時先不用去理會它。至此,我們的微服務就注冊到注冊中心上了,接下來我們將了解如何從注冊中心獲取微服務提供的接口。

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

    智能推薦

    微服務學習SpringCloud之注冊中心界面配置 actuator

    寫在前面:后續的文章都是基于第一篇文章進行更新,我是按照SpringCloud學習順序進行文章編寫,因為項目只有一個項目,需要了解SpringCloud前面skill的可以看一下前面SpringCloud體系。 現在存在的問題: 問題1  主機名稱:服務名稱修改 在我們的監控界面會出現 左邊的DESKTOP-這是我們主機名,為了不顯示這個東西我們可以進行這樣配置 在服務提供者的...

    微服務(SpringCloud)介紹 -- 之注冊中心

    微服務 SpringCloud介紹 Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, in...

    SpringCloud-微服務-注冊中心Eureka

      有的時候會出現注解無法使用的問題,需要設置SpringCloud的版本 運行效果:   9月2號補充:  想到的問題:如果我們不通過IP,而只是通過服務名調用服務。那么當注冊中心蕩掉了的話,那就不能調用服務了。那么該怎么辦呢? 解決的方法: 1.只把注冊中心當作用于監控微服務的工具,放棄通過服務名調用微服務,而是通過其它的途徑調用微服務(例如Nginx等)【暫時還...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    猜你喜歡

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

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