Spring Cloud Alibaba+Nacos搭建微服務架構

1. Spring Cloud Alibaba 簡介

   Spring Cloud Alibaba是阿里巴巴爲分佈式應用提供的一站式解決方案,可以更方便快捷地搭建分佈式平臺,nacos擁有着替換eureka server ,spring cloud config等組件的目標和意圖,旨在可以更簡便快速地去管理服務、註冊服務、管理配置。html

2. Spring Cloud Alibaba +Nacos搭建微服務架構

集成nacos

1. 啓動nacos server

nacos 官方學習文檔: https://nacos.io/zh-cn/docs/quick-start.html
下載nacos: https://github.com/alibaba/nacos/releases 
也可使用以下命令安裝並編譯項目:java

git clone https://github.com/alibaba/nacos.git cd nacos/ mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U 

項目構建完畢後,會在\nacos\distribution\target\ 目錄下生成對應的包:
在這裏插入圖片描述git

在這裏插入圖片描述

進入到/nacos/bin 目錄下 D:\Program Files\nacos\distribution\target\nacos-server-1.4.2-SNAPSHOT\nacos\bin:
在這裏插入圖片描述
執行命令 startup.cmd -m standalone, 以單例模式啓動nacos服務器:github

cd D:\Program Files\nacos\distribution\target\nacos-server-1.4.2-SNAPSHOT\nacos\bin d: startup.cmd -m standalone 

啓動成功後,會出現以下logo:
在這裏插入圖片描述
訪問: http://192.168.31.166:8848/nacos/index.html, 用戶名和密碼都是nacos,登陸成功後,就能夠看到以下的nacos首頁:
在這裏插入圖片描述web

2. 微服務客戶端集成spring cloud alibaba +nacos server

  本身建的項目至關於一個微服務客戶端,在本例中就是一個nacos客戶端,要想將服務註冊到nacos server中,咱們須要作三件事spring

1)在pom.xml文件中添加依賴

nacos客戶端依賴:apache

<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> 

pom.xml文件完整配置:bootstrap

<?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 https://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.3.8.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.exam.springcloud</groupId> <artifactId>spring-cloud-alibaba</artifactId> <version>0.0.1-SNAPSHOT</version> <name>spring-cloud-alibaba</name> <description>project for Spring Boot</description> <properties> <java.version>1.8</java.version> <spring.cloud.alibaba.version>2.2.1.RELEASE</spring.cloud.alibaba.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!--引入nacos client依賴--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> <!--引入spring cloud alibaba 的下載地址--> <dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring.cloud.alibaba.version}</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)在application.properties|application.yml| bootstrap.yml(選一便可)添加nacos客戶端配置

在項目中添加properties配置, 各配置的做用和含義相似於eureka的配置, 以下做出解釋:bash

#指定微服務服務名稱 spring.application.name= user #指定nacos服務地址 spring.cloud.nacos.server-addr=localhost:8848 #指定註冊中心地址 spring.cloud.nacos.discovery.server-addr=${spring.cloud.nacos.server-addr} #暴露全部web端點 management.endpoints.web.exposure.include=* 
3) 開啓服務發現註冊

在應用的啓動類上添加註解 @EnableDiscoveryClient服務器

經過以上步驟添加好配置後,接下來啓動服務,若是註冊成功了,會在控制板上看到新建的user服務已經註冊到nacos上去。
在這裏插入圖片描述
再次查看nacos服務列表,能夠看到user服務已經註冊到nacos 註冊中心上去。
在這裏插入圖片描述

若是還有其餘服務,那麼採用相同的方式進行註冊便可。

3. 微服務的使用

   因爲Spring Cloud Alibaba是基於Spring boot進行集成的,服務間的調用仍然可使用RestTemplate+ribbon進行調用,或者使用Feigin組件來實現服務間的調用, 如下文章可以幫助理解服務發現、服務註冊一級服務調用。

文章列表:Eureka服務發現註冊詳解使用Ribbon+RestTemplate來實現微服務間的調用從零開始搭建Feign客戶端

相關文章
相關標籤/搜索