拉取代碼,修改配置
首先訪問https://github.com/dromara/soul 對該倉庫進行star和watch,作為一個網關使用的新手,需要在后續關注soul的開發動向,把他更好的用在作業當中
隨后將該倉庫fork到自己的github中,方便自己后續進行代碼的學習和注釋,然后對自己fork的倉庫進行clone
git clone [email protected]:zhendiao/soul.git
然后將自己的代碼匯入到IDEA當中,首先觀察Soul專案的目錄結構

我們可以很明顯的猜到Soul-admin為該網關的管理控制臺專案,打開組態檔,雖然可以提供內置的H2資料庫作為資料源,但是為了使用方便,我們還是使用MySQL作為資料源,建議MySQL版本為mysql5,修改mysql的配置,無需手動創建資料庫,啟動之后自動創建了資料庫,

可以看到啟動之后的界面

網關核心層Soul-Bootstrap
soul-bootrap作為攔截外部請求的核心層,目前默認的資料同步方式為websocket配置,配置如下
soul :
file:
enabled: true
corss:
enabled: true
dubbo :
parameter: multi
sync:
websocket :
urls: ws://localhost:9095/websocket
同時注釋的代碼中也包含了其他諸如Zookeeper,nacos,http等同步方式,在后面幾天的嘗試中,會嘗試其他幾種方式
測驗專案
參考官網進行http(springboot)方式進行最簡單的代理環境搭建,首先新建一個springboot專案,配置如下
soul:
# Soul 針對 SpringMVC 的配置項,對應 SoulHttpConfig 配置類
http:
admin-url: http://127.0.0.1:9095 # Soul Admin 地址
context-path: /soulboot # 設定在 Soul 網關的路由前綴,例如說 /order、/product 等等,
# 后續,網關會根據該 context-path 來進行路由
app-name: soulboot # 應用名,未配置情況下,默認使用 `spring.application.name` 配置項
port: 7070 #你本專案的啟動埠
full: false # 設定true 代表代理你的整個服務,false表示代理你其中某幾個controller
server:
port: 7070
新建一個測驗controller
package org.dromara.soul.boot.controller;
import org.dromara.soul.client.springmvc.annotation.SoulSpringMvcClient;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/user")
public class HomeController {
@GetMapping("/get")
@SoulSpringMvcClient(path = "/user/get", desc = "獲得用戶詳細")
public String getUser(@RequestParam("id") Integer id) {
return "DEMO:" + id;
}
}
通過訪問soul-boostrap的埠搭配本專案的路由地址即可實作成功訪問

目前疑問
- 配置的埠為admin的埠,soul-bootstrap如何同步資料并代理的
歡迎搜索關注本人與朋友共同開發的微信面經小程式【大廠面試助手】和公眾號【微瞰技術】


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/248860.html
標籤:Java
上一篇:動態代理
