Solon 是一個微型的Java開發架構。項目從2018年啟動以來,參考過大量前人作品;曆時兩年,4000多次的commit;核心保持0.1m的身材,超高的跑分,良好的使用體驗。支援:RPC、REST API、MVC、WebSocket、Socket 等多種開發模式。
Solon 強調:克制 + 簡潔 + 開放的原則;力求:更小、更快、更***的體驗。
所謂更小:
核心0.1m,最小開發機關0.2m(相比Dubbo、Springboot項目包,小到可以乎略不計)
所謂更快:
本機helloworld測試,Qps可達12萬之多。可參考:《helloworld_wrk_test》
所謂更***:(代碼操控***)
// 除了注解模式之外,還可以按需手動
//
//手動擷取配置(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);
架構筆記:
1、緣起統一的處理架構想法
RPC、Rest api、MVC、SocketD;Http、Socket、WebSocket。不同的架構模式、不同的通訊信号,統一處理......并且小巧

關于HTTP信号提供者,Servlet 或 NoServlet 都可以。如 JlHttp(NoServlet)、Jetty(Servlet)、reactor-netty......
2、關于應用啟動的内在過程
串行的處理過程(含三個事件擴充點),代碼直接、沒有什麼模式。易明
3、請求的處理過程透視(由簡至敏演化)
(a)簡版,經典的模型
(b)延展版,也沒什麼特别
(c)詳情版,應該還是熟悉的味道。(Solon的統一處理模型,讓Http、Socket、WebSocket 最終回歸為熟悉的味道)
(d)整體鍊路版
- Solon 的事務、緩存控制是基于 Action interceptor 實作
- Solon 的驗證器是基于 Action before trigger 實作
4、Ioc & Aop 内部結構透視
附:
- 項目位址:https://gitee.com/noear/solon