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的功能差異
根據上面的圖表,我們可以很清楚的了解到,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也不例外:
- 在pom.xml檔案引入Nacos的依賴包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
- 在啟動類上添加注解
@EnableDiscoveryClient
- 在配置檔案中添加一下配置
spring:
application:
name: 這裡填寫服務的應用名稱
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
注意:上面的server-addr根據實際情況進行配置,一般開發環境可以配置自己本地的Nacos,端口号預設為8848
配置完成後,啟動我們的Springboot項目,然後打開浏覽器nacos管理界面,我們可以看到項目配置檔案中的服務名對應的服務已經注冊上去了。至此,nacos的啟動與配置就已經部署完畢。