一祖今、本地部署Nacos
Nacos本地部署可以參考:http://www.iocoder.cn/Nacos/install/?self
二校坑、搭建SpringCloud項(xiàng)目
示例代碼: https://github.com/wyc192273/soul-learn-project/tree/main/sofa-demo
- 搭建了簡單的SpringCloud服務(wù)后,需要在項(xiàng)目中引入如下依賴:
<!-- 引入 Soul 針對(duì) Spring Cloud 的集成的依賴 -->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>soul-spring-boot-starter-client-springcloud</artifactId>
<version>${soul.version}</version>
</dependency>
- 修改application.yaml文件千诬,添加如下配置
soul:
springcloud:
admin-url: http://localhost:9095
context-path: /springcloud
full: true
# adminUrl: 為你啟動(dòng)的soul-admin 項(xiàng)目的ip + 端口耍目,注意要加http://
# contextPath: 為你的這個(gè)mvc項(xiàng)目在soul網(wǎng)關(guān)的路由前綴,這個(gè)你應(yīng)該懂意思把大渤? 比如/order 制妄,/product 等等,網(wǎng)關(guān)會(huì)根據(jù)你的這個(gè)前綴來進(jìn)行路由.
# full: 設(shè)置true 代表代理你的整個(gè)服務(wù)泵三,false表示代理你其中某幾個(gè)controller
- 在實(shí)現(xiàn)類上添加@SoulSpringCloudClient注解
@GetMapping("/get")
@SoulSpringCloudClient(path = "/user/get", desc = "獲得用戶詳細(xì)")
public String getUser(@RequestParam("id") Integer id) {
return "DEMO:" + id;
}
-
設(shè)置SpringCloud插件
需要設(shè)置soul的SpringCloud插件為開啟狀態(tài)耕捞,訪問http://localhost:9095/#/system/plugin
image.png -
啟動(dòng)項(xiàng)目,去http://localhost:9095/#/plug/springCloud看烫幕,發(fā)現(xiàn)注冊成功了
image.png
二俺抽、網(wǎng)關(guān)接入SpringCloud
在網(wǎng)關(guān)項(xiàng)目中pom引入如下依賴:
<!--soul springCloud plugin start-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>soul-spring-boot-starter-plugin-springcloud</artifactId>
<version>${last.version}</version>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>soul-spring-boot-starter-plugin-httpclient</artifactId>
<version>${last.version}</version>
</dependency>
<!--soul springCloud plugin end-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
- 如果你使用
eureka
作為 springCloud的注冊中心新增如下配置:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
在網(wǎng)關(guān)的yaml文件中 新增如下配置:
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/ # 你的eureka地址
instance:
prefer-ip-address: true
- 如果你使用
nacos
作為 springCloud的注冊中心新增如下配置:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
在網(wǎng)關(guān)的yaml文件中 新增如下配置:
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 # 你的nacos地址
重啟網(wǎng)關(guān)
三、調(diào)用SpringCloud接口
image.png
image.png
調(diào)用都成功返回