Spring Boot 輕量替代框架 Solon 的架構筆記 - new

Solon 是一個微型的Java開發框架。項目從2018年啓動以來,參考過大量前人做品;歷時兩年,4000屢次的commit;內核保持0.1m的身材,超高的跑分,良好的使用體驗。支持:RPC、REST API、MVC、WebSocket、Socket 等多種開發模式。java

Solon 強調:剋制 + 簡潔 + 開放的原則;力求:更小、更快、更自由的體驗。react

所謂更小:

內核0.1m,最小開發單位0.2m(相比Dubbo、Springboot項目包,小到能夠乎略不計)git

所謂更快:

本機helloworld測試,Qps可達12萬之多。可參考:《helloworld_wrk_testweb

所謂更自由:(代碼操控自由)

// 除了註解模式以外,還能夠按需手動
//
//手動獲取配置(Props 爲 Properties 加強版)
Props db = Solon.cfg().getProp("db");

//手動獲取容器裏的Bean
UserService userService = Aop.get(UserService.class);

//手動監聽http post請求
Solon.global().post("/user/update", x-> userService.updateById(x.paramMap()));

//手動添加個RPC服務
Solon.global().add("/rpc/", HelloService.class, true);

//手動獲取一個RPC服務消費端
HelloService helloService = Nami.builder().create(HelloService.class);

架構筆記:

一、緣起統一的處理架構想法

RPC、Rest api、MVC、SocketD;Http、Socket、WebSocket。不一樣的架構模式、不一樣的通信信號,統一處理......而且小巧api

關於HTTP信號提供者,Servlet 或 NoServlet 均可以。如 JlHttp(NoServlet)、Jetty(Servlet)、reactor-netty......緩存

二、關於應用啓動的內在過程

串行的處理過程(含三個事件擴展點 + 兩個函數擴展點),代碼直接、沒有什麼模式。易明websocket

三、請求的處理過程透視(由簡至敏演化)

(a)簡版,經典的模型

(b)延展版,也沒什麼特別

(c)詳情版,應該仍是熟悉的味道。(Solon的統一處理模型,讓Http、Socket、WebSocket 最終迴歸爲熟悉的味道)

(d)總體鏈路版

  • Solon 的事務、緩存控制是基於 Action interceptor 實現
  • Solon 的驗證器是基於 Action before trigger 實現

四、Ioc & Aop 內部結構透視

附:

相關文章
相關標籤/搜索