拉取代碼,修改配置
首先訪問(wèn)https://github.com/dromara/soul 對(duì)該倉(cāng)庫(kù)進(jìn)行star和watch,作為一個(gè)網(wǎng)關(guān)使用的新手。需要在后續(xù)關(guān)注soul的開(kāi)發(fā)動(dòng)向,把他更好的用在工作當(dāng)中
隨后將該倉(cāng)庫(kù)fork到自己的github中。方便自己后續(xù)進(jìn)行代碼的學(xué)習(xí)和注釋。然后對(duì)自己fork的倉(cāng)庫(kù)進(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)的管理控制臺(tái)項(xiàng)目。打開(kāi)配置文件,雖然可以提供內(nèi)置的H2數(shù)據(jù)庫(kù)作為數(shù)據(jù)源,但是為了使用方便,我們還是使用MySQL作為數(shù)據(jù)源,建議MySQL版本為mysql5。修改mysql的配置,無(wú)需手動(dòng)創(chuàng)建數(shù)據(jù)庫(kù),啟動(dòng)之后自動(dòng)創(chuàng)建了數(shù)據(jù)庫(kù)。
可以看到啟動(dòng)之后的界面
網(wǎng)關(guān)核心層Soul-Bootstrap
soul-bootrap作為攔截外部請(qǐng)求的核心層,目前默認(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等同步方式。在后面幾天的嘗試中,會(huì)嘗試其他幾種方式
測(cè)試項(xiàng)目
參考官網(wǎng)進(jìn)行http(springboot)方式進(jìn)行最簡(jiǎn)單的代理環(huán)境搭建,首先新建一個(gè)springboot項(xiàng)目,配置如下
soul:
# Soul 針對(duì) SpringMVC 的配置項(xiàng),對(duì)應(yīng) SoulHttpConfig 配置類(lèi)
http:
admin-url: http://127.0.0.1:9095 # Soul Admin 地址
context-path: /soulboot # 設(shè)置在 Soul 網(wǎng)關(guān)的路由前綴,例如說(shuō) /order、/product 等等。
# 后續(xù),網(wǎng)關(guān)會(huì)根據(jù)該 context-path 來(lái)進(jìn)行路由
app-name: soulboot # 應(yīng)用名。未配置情況下,默認(rèn)使用 `spring.application.name` 配置項(xiàng)
port: 7070 #你本項(xiàng)目的啟動(dòng)端口
full: false # 設(shè)置true 代表代理你的整個(gè)服務(wù),false表示代理你其中某幾個(gè)controller
server:
port: 7070
新建一個(gè)測(cè)試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;
}
}
通過(guò)訪問(wèn)soul-boostrap的端口搭配本項(xiàng)目的路由地址即可實(shí)現(xiàn)成功訪問(wèn)
目前疑問(wèn)
- 配置的端口為admin的端口,soul-bootstrap如何同步數(shù)據(jù)并代理的
歡迎關(guān)注和點(diǎn)贊