SpringCloud實戰之初級入門(一)— eureka註冊中心

寫在前面

我在軟件行業浸泡了近十年時間,一直在做OA以及平臺方面研發,帶了幾年團隊,近兩年玩過貿易、金融,現在是一名自由職業者。

近年來互聯網創業浪潮一波趕過一波,技術也隨着業務的提升一步步向前進,從單機模式到多機部署再到soa服務化,再到近兩年微服務炙手可熱;憑心而論,這些軟件架構有優劣之分嗎?我個人認爲是沒有的,之所以會有這些的架構演變,完全是因爲通過互聯網,大家的業務越做越大,越做越複雜,用戶量也越來越多,準確的說之所以有這麼多高級的軟件架構,完全是因爲被業務量、用戶量所倒逼出來的。

如今還有單機模式的互聯網應用嗎?我想也應該是有的,比如廣大的個人站長們,難道他們的模式就不代表先進的生產力嗎?我不覺得,反而我覺得他們是互聯網中最有活力的存在,軟件只是工具,業務纔是核心,只有越來越大的業務纔有更先進的工具,你讓站長們剛剛開始就上微服務,豈不是本末道置,總之一句話,請遵循業務規則,並重視業務,節約成本,要知道適合自己的纔是最好的。

BB了這麼多,最後分享一個問題,我們學微服務框架有用嗎?當然有用,雷軍說:“站在風口上,豬也會飛”,想想以前互聯網中小企業因爲技術而限制業務發展也是頭疼,現在好了,spring全家桶幫我們解決了中小企業一直來的技術問題,現在有很多中小企業,甚至包括一線大廠也開始對其使用,爲了老婆的迪奧,孩子的奧利奧,加油,學吧!

對於我自己來說,身處互聯網時代卻沒有積極擁抱互聯網,不失爲遺憾。抱着學習的態度做了這個實戰教程,希望自己能重拾初心,也希望能與廣大網友共勉,共進步。

1.資料目錄

Spring Cloud中文學習網:https://springcloud.cc/
Spring Cloud英文學習網:http://cloud.spring.io/spring-cloud-static/spring-cloud.html

2.環境介紹

工程環境:mac os + jdk 1.8.0_x + maven2 + sts 3.9.x + git
工程依賴:springboot 2.1.1 + springCloud Greenwich.RC2

3.eureka註冊中心

3.1 創建工程

第一步:通過sts創建一個spring starter project

在這裏插入圖片描述

第二步:點擊“next”,出現如下界面,選擇Cloud Discovery下的Eureka Server:
在這裏插入圖片描述
第三步:點擊“finish”,等待sts下載各個相關的jar包即可,最終形成效果如下圖:
在這裏插入圖片描述

3.2 啓動工程

簡單的幾個步驟,來啓動eureka註冊中心

  1. 我們改變一下server port,改一下application.properties後綴,爲applicaiton.yml,加入server:port: 9000,改這個是一個習慣問題,不改也可以用。
  2. MircoServiceEurekaApplication加入“@EnableEurekaServer”,這個得解釋一下,後面的教程中不再解釋這些,這個註解從字面上理解是開啓eureka server,實際上就是通過這個註解告訴我們要啓動的應用,而Spring Cloud已經幫我們把這個eureka集成好了,我們配置配置就可以使用了,這也是爲什麼Spring Cloud能成爲業界主流的原因。
  3. 正常啓動就行了,看一下啓動後的界面。

4.親測的注意事項

  • eureka是需要依賴springboot的父工程,在微服務中一般是單獨做爲工程啓動的,注意不要與業務工程產生混淆,如果需要公司級的依賴關係,可以在“<dependencyManagement>”加入如下代碼:
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-parent</artifactId>
				<version>${springboot.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
  • springboot的版本與springCloud的版本是配套的且一一對應的,兩者的版本要兼容。
  • eureka在spring建工程時規定的jdk版本是1.8.0或者11,如果出現tomcat無法啓動,一定要檢查一下jdk版本。
  • @EnableEurekaServer配置後無法啓動的情況也是jdk版本問題,總之使用jdk1.8.0就對了,不要使用過高的版本,我就用過jdk10啓動過,傻呼呼的啓了幾個小時。
  • 啓動後發現eureka界面無法訪問,一般是springboot與springCloud的版本不兼容,當然如果不加@EnableEurekaServer的話界面也是無法訪問的。

5.eureka註冊中心集羣高可用

註冊中心的重要性,不言而喻,既然是中心,那麼說明要負擔很多任務,如何把註冊中心配置成高可用的呢?現在我們就來學習一下,一個工程啓動多個eureka註冊中心。

springboot在啓動可以指定參數,指定你要使用的配置文件類型,一般來說我們分爲開發、測試、生產三個環境,但是如果我們要在一個工程裏面啓動三個一樣類型的環境怎麼做呢?

首先我不建議在微服務項目中大家繼續使用如下規則:
application.yml
application-test.yml
application-dev.yml
application-pro.yml
最後在在application.yml中指定你要使用的環境。

我們先看一下我一般定義的命名規則:
{app-name}-{node-x}-dev.yml
{app-name}-{node-x}-test.yml
{app-name}-{node-x}-pro.yml

其中app-name代表你的應用名稱,一般建議與spring.application.name一致。
node代表是否集羣服務。
x可以自己定義,可以是數字,也可以是ip。
最後是開發、測試、生產環境的區分。

接着上面的例子,我們把例子中的application.yml名稱改爲eureka-node-1-test.yml,然後複製兩個分別命名爲eureka-node-2-test.yml,最後是eureka-node-3-test.yml。如圖示:
在這裏插入圖片描述
然後我們修改eureka-server-node-1-test.yml的內容如下:

server:
  port: 9001
  
spring: 
  application:
    name: eureka-server #給你的微服務應用起一名字
    
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:9002/eureka/,http://localhost:9003/eureka/

接着按同樣的方式依次將node-2和node-3中的port修改爲9002,9003,將defaultZone的把除自己之外的兩個地址修改。然後打開debug config,在Arguments裏面加入如下參數:
在這裏插入圖片描述

最後我們複製兩個,然後依次啓動這三個服務,這樣我們的eureka server的集羣部署就完成了。最終效果如圖所示:在這裏插入圖片描述

至此我們的eureka集羣就完成了。

6.結語

首先,這是我第一次寫教程類文章,爲了區別與其他教程,我準備不講任何概念,我覺得能玩到spring cloud這步的“猿類”們,基本上對軟件架構、各種理念都有了解,而且基本上都有自己的理解。對此不理解的朋友們,請自行百度一下相關的概念。

我更希望更多剛接觸spring cloud的朋友們,能通過你的手指去感知它,而不是僅僅存在聽別人說,聽別人講,或者自己臆想的東西。在編程領域能動手的絕不動口,我以前的一個導師就說過,同樣的程序寫二十遍,基本上能學的東西都融會貫通了。

好了,第一篇文章廢話有點多,後面不會有了。?

7.一點點重要的事情

發佈了12 篇原創文章 · 獲贊 5 · 訪問量 5748
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章