高性能網關Soul源碼調試環境搭建

拉取代碼,修改配置

首先訪問https://github.com/dromara/soul 對該倉庫進行star和watch,作爲一個網關使用的新手。需要在後續關注soul的開發動向,把他更好的用在工作當中
隨後將該倉庫fork到自己的github中。方便自己後續進行代碼的學習和註釋。然後對自己fork的倉庫進行clone

git clone [email protected]:zhendiao/soul.git

然後將自己的代碼導入到IDEA當中,首先觀察Soul項目的目錄結構
file
我們可以很明顯的猜到Soul-admin爲該網關的管理控制檯項目。打開配置文件,雖然可以提供內置的H2數據庫作爲數據源,但是爲了使用方便,我們還是使用MySQL作爲數據源,建議MySQL版本爲mysql5。修改mysql的配置,無需手動創建數據庫,啓動之後自動創建了數據庫。
file

可以看到啓動之後的界面
file

網關核心層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的端口搭配本項目的路由地址即可實現成功訪問
file

目前疑問

  • 配置的端口爲admin的端口,soul-bootstrap如何同步數據並代理的

歡迎搜索關注本人與朋友共同開發的微信面經小程序【大廠面試助手】和公衆號【微瞰技術】

file
file

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章