天天看點

記錄Spring cloud alibaba Nacos學習前言

Spring cloud alibaba微服務

  • 前言
    • 技術選型
    • Nacos
      • Nacos與Eureka的功能差異
      • Nacos快速搭建
        • 下載下傳
        • 啟動
        • 注冊服務

前言

由于本人目前所在的公司的項目随着需求越來越多,使用者量越來越龐大,項目結構變得極為複雜,難以維護。在這種背景條件下,公司的架構師開始決定使用Spring cloud微服務來重構之前的項目,是以趁這個機會,好好了解一下Spring cloud alibaba微服務的各種元件以及如何快速上手。

技術選型

通過對市面上目前主流的微服務方案進行了解,我們最終确定了以下的微服務元件來實作:

  • 采用Nacos作為服務的注冊中心及配置中心
  • 采用Open-Feign作為服務之間的遠端調用
  • 采用Ribbon作為用戶端負載均衡
  • 采用Gate-way網關作為所有請求的入口
  • 采用Sentinel作為流量控制,服務降級,熔斷
  • 采用Seata 來控制分布式事務

Nacos

Nacos 緻力于幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實作動态服務發現、服務配置、服務中繼資料及流量管理。

Nacos 幫助您更靈活和容易地建構、傳遞和管理微服務平台。 Nacos 是建構以“服務”為中心的現代應用架構 (例如微服務範式、雲原生範式) 的服務基礎設施。

Nacos與Eureka的功能差異

記錄Spring cloud alibaba Nacos學習前言

根據上面的圖表,我們可以很清楚的了解到,Nacos相比于Eureka,除了可以作為服務的注冊中心之外,還可以作為服務的配置中心,并給開發者提供了一套友善易用的管理界面,使用者可以通過登陸Nacos管理界面很友善的對各個服務進行操作和配置。

Nacos快速搭建

下載下傳

  • 通過從gitub上下載下傳源碼方式
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
ls -al distribution/target/

// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
           
  • 您可以從 最新穩定版本 下載下傳 nacos-server-$version.zip 包。
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
  cd nacos/bin
           

啟動

進入Nacos安裝包的bin目錄:

  • Linux/Unix/Mac啟動指令:
sh startup.sh -m standalone
  • windows啟動指令:
cmd startup.cmd -m standalone

standalone 代表單機啟動模式,非叢集模式

mac@bogon local % cd nacos 
mac@bogon nacos % cd bin
mac@bogon bin % sh startup.sh standalone
/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin/java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Djava.ext.dirs=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/ext:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/lib/ext -Xloggc:/usr/local/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/plugins/health,/usr/local/nacos/plugins/cmdb,/usr/local/nacos/plugins/mysql -Dnacos.home=/usr/local/nacos -jar /usr/local/nacos/target/nacos-server.jar  --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/usr/local/nacos/conf/ --logging.config=/usr/local/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /usr/local/nacos/logs/start.out
mac@bogon bin % 
           

控制台列印如上代碼,代表nacos本地啟動成功,我們可以在浏覽器位址欄輸入

http://localhost:8848/nacos

打開nacos管理界面:

使用者名預設:nacos,密碼預設:nacos

注冊服務

nacos啟動完畢後,我們可以将我們的項目注冊到nacos上,由nacos為我們管理服務。

Springboot項目配置一般有三闆斧:引依賴、加注解、配置檔案 三個步驟。Nacos也不例外:

  1. 在pom.xml檔案引入Nacos的依賴包
<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
			<version>2.2.2.RELEASE</version>
		</dependency>
           
  1. 在啟動類上添加注解

    @EnableDiscoveryClient

  2. 在配置檔案中添加一下配置
spring:
  application:
    name: 這裡填寫服務的應用名稱
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
           

注意:上面的server-addr根據實際情況進行配置,一般開發環境可以配置自己本地的Nacos,端口号預設為8848

配置完成後,啟動我們的Springboot項目,然後打開浏覽器nacos管理界面,我們可以看到項目配置檔案中的服務名對應的服務已經注冊上去了。至此,nacos的啟動與配置就已經部署完畢。

繼續閱讀