拉取代碼,修改配置
首先訪問https://github.com/dromara/soul 對該倉庫進(jìn)行star和watch,作為一個(gè)網(wǎng)關(guān)使用的新手。需要在后續(xù)關(guān)注soul的開發(fā)動向,把他更好的用在工作當(dāng)中
隨后將該倉庫fork到自己的github中渺绒。方便自己后續(xù)進(jìn)行代碼的學(xué)習(xí)和注釋。然后對自己fork的倉庫進(jìn)行clone
git clone git@github.com:zhendiao/soul.git
然后將自己的代碼導(dǎo)入到IDEA當(dāng)中胃榕,首先觀察Soul項(xiàng)目的目錄結(jié)構(gòu)
我們可以很明顯的猜到Soul-admin為該網(wǎng)關(guān)的管理控制臺項(xiàng)目。打開配置文件,雖然可以提供內(nèi)置的H2數(shù)據(jù)庫作為數(shù)據(jù)源萧恕,但是為了使用方便姑子,我們還是使用MySQL作為數(shù)據(jù)源乎婿,建議MySQL版本為mysql5。修改mysql的配置,無需手動創(chuàng)建數(shù)據(jù)庫街佑,啟動之后自動創(chuàng)建了數(shù)據(jù)庫谢翎。
可以看到啟動之后的界面
網(wǎng)關(guān)核心層Soul-Bootstrap
soul-bootrap作為攔截外部請求的核心層,目前默認(rèn)的數(shù)據(jù)同步方式為websocket配置舆乔,配置如下
soul :
file:
enabled: true
corss:
enabled: true
dubbo :
parameter: multi
sync:
websocket :
urls: ws://localhost:9095/websocket
同時(shí)注釋的代碼中也包含了其他諸如Zookeeper岳服,nacos,http等同步方式希俩。在后面幾天的嘗試中吊宋,會嘗試其他幾種方式
測試項(xiàng)目
參考官網(wǎng)進(jìn)行http(springboot)方式進(jìn)行最簡單的代理環(huán)境搭建,首先新建一個(gè)springboot項(xiàng)目,配置如下
soul:
# Soul 針對 SpringMVC 的配置項(xiàng),對應(yīng) SoulHttpConfig 配置類
http:
admin-url: http://127.0.0.1:9095 # Soul Admin 地址
context-path: /soulboot # 設(shè)置在 Soul 網(wǎng)關(guān)的路由前綴璃搜,例如說 /order拖吼、/product 等等。
# 后續(xù)这吻,網(wǎng)關(guān)會根據(jù)該 context-path 來進(jìn)行路由
app-name: soulboot # 應(yīng)用名吊档。未配置情況下,默認(rèn)使用 `spring.application.name` 配置項(xiàng)
port: 7070 #你本項(xiàng)目的啟動端口
full: false # 設(shè)置true 代表代理你的整個(gè)服務(wù)唾糯,false表示代理你其中某幾個(gè)controller
server:
port: 7070
新建一個(gè)測試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 = "獲得用戶詳細(xì)")
public String getUser(@RequestParam("id") Integer id) {
return "DEMO:" + id;
}
}
通過訪問soul-boostrap的端口搭配本項(xiàng)目的路由地址即可實(shí)現(xiàn)成功訪問
目前疑問
- 配置的端口為admin的端口怠硼,soul-bootstrap如何同步數(shù)據(jù)并代理的
歡迎關(guān)注和點(diǎn)贊