首先訪問https://github.com/dromara/soul 對該倉庫進行star和watch,做爲一個網關使用的新手。須要在後續關注soul的開發動向,把他更好的用在工做當中
隨後將該倉庫fork到本身的github中。方便本身後續進行代碼的學習和註釋。而後對本身fork的倉庫進行clonemysql
git clone git@github.com:zhendiao/soul.git
而後將本身的代碼導入到IDEA當中,首先觀察Soul項目的目錄結構
咱們能夠很明顯的猜到Soul-admin爲該網關的管理控制檯項目。打開配置文件,雖然能夠提供內置的H2數據庫做爲數據源,可是爲了使用方便,咱們仍是使用MySQL做爲數據源,建議MySQL版本爲mysql5。修改mysql的配置,無需手動建立數據庫,啓動以後自動建立了數據庫。
git
能夠看到啓動以後的界面
github
soul-bootrap做爲攔截外部請求的核心層,目前默認的數據同步方式爲websocket配置,配置以下web
soul : file: enabled: true corss: enabled: true dubbo : parameter: multi sync: websocket : urls: ws://localhost:9095/websocket
同時註釋的代碼中也包含了其餘諸如Zookeeper,nacos,http等同步方式。在後面幾天的嘗試中,會嘗試其餘幾種方式面試
參考官網進行http(springboot)方式進行最簡單的代理環境搭建,首先新建一個springboot項目,配置以下spring
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
新建一個測試controllersql
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的端口搭配本項目的路由地址便可實現成功訪問
數據庫
歡迎搜索關注本人與朋友共同開發的微信面經小程序【大廠面試助手】和公衆號【微瞰技術】bootstrap