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

拉取代碼,修改配置

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

git clone git@github.com:zhendiao/soul.git

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

能夠看到啓動以後的界面
filegithub

網關核心層Soul-Bootstrap

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的端口搭配本項目的路由地址便可實現成功訪問
file數據庫

目前疑問

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

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

file
file

相關文章
相關標籤/搜索