From 1a5e3a734a07866c9a46e1b4e8267bcfbe7c6fe2 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 24 三月 2026 16:23:55 +0800 Subject: [PATCH] docs: add station v5 replace v4 design spec --- docs/superpowers/specs/2026-03-24-station-v5-replace-v4-design.md | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 159 insertions(+), 0 deletions(-) diff --git a/docs/superpowers/specs/2026-03-24-station-v5-replace-v4-design.md b/docs/superpowers/specs/2026-03-24-station-v5-replace-v4-design.md new file mode 100644 index 0000000..b86862d --- /dev/null +++ b/docs/superpowers/specs/2026-03-24-station-v5-replace-v4-design.md @@ -0,0 +1,159 @@ +# 杈撻�佺珯绾跨▼鐗堟湰鍚堝苟璁捐 + +## 1. 鐩爣 + +鏈鏀瑰姩鍙鐞嗚緭閫佺珯绾跨▼鐗堟湰鍚堝苟锛屾槑纭互 `ZyStationV5Thread` 鍏ㄩ噺鏇夸唬 `ZyStationV4Thread`銆� + +鐩爣濡備笅锛� + +- 杈撻�佺珯鍦ㄤ唬鐮佸眰鍙繚鐣� `ZyStationV5Thread` 杩欎竴鏉′富瀹炵幇銆� +- `device_config.thread_impl` 瀵硅緭閫佺珯缁熶竴鏀跺彛鍒� `ZyStationV5Thread`銆� +- 淇濈暀褰撳墠 V5 宸插叿澶囩殑鍒嗘涓嬪彂銆佽建杩硅褰曘�乣routeVersion` 鍗忓悓銆佸牭濉為噸瑙勫垝涓庣幆绾胯瘑鍒涓恒�� +- 鍒犻櫎 `ZyStationV4Thread` 鍙婂叾娈嬬暀鏃ч�昏緫锛屼笉淇濈暀杩愯鏃跺吋瀹瑰垎鏀�� + +## 2. 闈炵洰鏍� + +浠ヤ笅鍐呭涓嶅湪鏈鑼冨洿鍐咃細 + +- 涓嶆敼 `ZyStationV3Thread`銆� +- 涓嶆敼 `ZyStationV4RealConnect`銆乣ZyStationV4FakeSegConnect` 鐨勭被鍚嶆垨鍗忚瀹炵幇銆� +- 涓嶉噸鏋� `StationSegmentExecutor` 鐜版湁鍒嗘绠楁硶涓庣姸鎬佹祦杞�� +- 涓嶆敼鍓嶇 `deviceConfig` 椤甸潰浜や簰褰㈠紡锛岄櫎闈炰负缂栬瘧閫氳繃蹇呴』鑱斿姩銆� +- 涓嶇粺璁℃暟鎹簱閲岀幇鏈夊灏戞潯 `ZyStationV4Thread` 閰嶇疆锛岀洿鎺ュ仛骞傜瓑杩佺Щ銆� + +## 3. 鐜扮姸 + +褰撳墠杈撻�佺珯绾跨▼瀛樺湪浠ヤ笅鐘舵�侊細 + +- [ServerBootstrap.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/ServerBootstrap.java) 鍚屾椂鏀寔 `ZyStationV4Thread` 鍜� `ZyStationV5Thread` 涓や釜 Devp 鐗堟湰鍒嗘敮銆� +- [ZyStationConnectDriver.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/network/ZyStationConnectDriver.java) 鐪熷疄璁惧鍜� fake 璁惧閮芥妸 `ZyStationV4Thread` 涓� `ZyStationV5Thread` 瑙嗕负鍚屼竴鍗忚鏃忋�� +- [ZyStationV4Thread.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/thread/impl/ZyStationV4Thread.java) 宸茬粡涓嶅啀璧拌嚜鏈夊垎娈典富閾捐矾锛屽疄闄呴�氳繃鎵ц鍣ㄤ笅鍙戯紝浣嗙被鍐呬粛娈嬬暀鏃х増鍒嗘瀹炵幇銆� +- [ZyStationV5Thread.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/thread/impl/ZyStationV5Thread.java) 鏄� V4 鐨勫姛鑳借秴闆嗭紝闄ゅ叡鐢ㄧ殑鐘舵�佽鍙栥�佸缓鍛戒护銆佷笅鍙戞棩蹇楀锛岃繕鎵挎媴鍫靛閲嶈鍒掋�佺幆绾胯瘑鍒笌鏇村畬鏁寸殑浼氳瘽鍗忓悓銆� + +鍩轰簬褰撳墠浠g爜锛宍V5` 宸茬粡鏄洿鍚堢悊鐨勫敮涓�鍩虹嚎锛岀户缁繚鐣� `V4` 鍙細閫犳垚鐗堟湰杈圭晫娣蜂贡銆� + +## 4. 閫夋嫨鏂规 + +閲囩敤鈥滀互 V5 涓哄敮涓�鐗堟湰鈥濈殑鏂规锛� + +- 鍒犻櫎 `ZyStationV4Thread`銆� +- 鍚姩鍏ュ彛鍙繚鐣� `ZyStationV5Thread` 浣滀负杈撻�佺珯鏂扮増鏈疄鐜般�� +- 杩炴帴椹卞姩瀵规柊鐗堟湰鍙瘑鍒� `ZyStationV5Thread`銆� +- 閫氳繃 SQL 杩佺Щ鎶婃棫閰嶇疆鍊� `ZyStationV4Thread` 缁熶竴鏀规垚 `ZyStationV5Thread`銆� + +涓嶉噰鐢ㄢ�滆繍琛屾椂鍏煎 V4/V5 鍙岄厤缃�尖�濈殑鏂规锛屽洜涓鸿繖浼氱户缁繚鐣欏弻鐗堟湰鍋囪薄锛屼笌鈥淰5 鍏ㄩ噺鏇夸唬 V4鈥濈殑鐩爣鍐茬獊銆� + +## 5. 璁捐 + +### 5.1 杩愯瀹炵幇 + +杈撻�佺珯杩愯閾捐矾缁熶竴涓猴細 + +1. `device_config.thread_impl = ZyStationV5Thread` +2. `ServerBootstrap` 涓� Devp 鍒涘缓璁惧绾跨▼鏃跺彧瀹炰緥鍖� `ZyStationV5Thread` +3. `ZyStationV5Thread` 璐熻矗锛� + - 璁惧杩炴帴涓庣姸鎬佽鍙� + - 浠� `MessageQueue` 鑾峰彇杈撻�佺珯浠诲姟 + - 濮旀墭鍒嗘鎵ц鍣ㄥ鐞� `MOVE` 鍛戒护 + - 閫氳繃 `sendCommand` 瀹為檯涓嬪彂鍛戒护骞惰褰� `BasStationOpt` +4. `StationSegmentExecutor` 缁х画璐熻矗锛� + - 璺緞鍒囨 + - 棣栨鍜屽悗缁垎娈电殑閲嶈瘯涓嬪彂 + - 鍩轰簬褰撳墠浣嶇疆鍒ゆ柇鎻愬墠涓嬪彂鏃舵満 + - 澶勭悊涓柇銆佽秴鏃躲�佸牭濉炪�佸畬鎴� + - 鏇存柊 trace 鍜� move coordinator + +### 5.2 V4 娓呯悊 + +鍒犻櫎 `ZyStationV4Thread` 鏁翠釜绫伙紝鑰屼笉鏄彧鍒犳畫鐣欐柟娉曘�傚師鍥犳槸鏈鐩爣宸蹭粠鈥滄竻鐞� V4 娈嬬暀鈥濆崌绾т负鈥淰5 鍏ㄩ噺鏇夸唬 V4鈥濓紝淇濈暀绫绘枃浠跺彧浼氬舰鎴愰敊璇殑鍙敤鎬ф殫绀恒�� + +### 5.3 鍚姩涓庤繛鎺ュ垎鏀敹鍙� + +闇�瑕佸悓姝ユ敹鍙d互涓嬩唬鐮佸垎鏀細 + +- [ServerBootstrap.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/ServerBootstrap.java) + - 鍒犻櫎 `ZyStationV4Thread` 鍒嗘敮 + - Devp 鐗堟湰鍒ゆ柇鍙繚鐣� `ZyStationThread`銆乣ZyStationV3Thread`銆乣ZyStationV5Thread` + +- [ZyStationConnectDriver.java](/Users/xiejunjie/IdeaProjects/zy-wcs-master/src/main/java/com/zy/core/network/ZyStationConnectDriver.java) + - 鐪熷疄璁惧杩炴帴鏃跺彧瀵� `ZyStationV5Thread` 璧� `ZyStationV4RealConnect` + - fake 璁惧杩炴帴鏃跺彧瀵� `ZyStationV5Thread` 璧� `ZyStationV4FakeSegConnect` + - 閿欒鎻愮ず涓嶅啀鎻愬埌 `ZyStationV4Thread` + +杩欓噷鍗忚瀹炵幇绫诲悕浠嶄繚鎸� `V4`锛屽洜涓哄畠琛ㄨ揪鐨勬槸 PLC/杩炴帴鍗忚鏃忥紝鑰屼笉鏄嚎绋嬬増鏈�傜嚎绋嬬増鏈悎骞朵笉瑕佹眰鍚屾閲嶅懡鍚嶅崗璁疄鐜般�� + +### 5.4 閰嶇疆杩佺Щ + +鏂板涓�鏉″箓绛� SQL 鑴氭湰锛屾妸鏃� Devp 閰嶇疆缁熶竴杩佺Щ鍒� `ZyStationV5Thread`锛� + +- 鏉′欢锛歚device_type = Devp` 涓� `thread_impl = ZyStationV4Thread` +- 鍔ㄤ綔锛氭洿鏂� `thread_impl = ZyStationV5Thread` + +璇ヨ剼鏈笉渚濊禆浜嬪墠缁熻锛屽厑璁哥┖璺戙�� + +## 6. 閾捐矾妫�鏌� + +### 6.1 杈撳叆 + +- Devp 璁惧閰嶇疆涓殑 `thread_impl` +- 杩愯鏃惰繘鍏ヨ緭閫佺珯绾跨▼鐨� `StationCommand` + +### 6.2 澶勭悊娴佺▼ + +- 鍚姩鏃舵寜缁熶竴鍚庣殑 `thread_impl` 鍒涘缓 `ZyStationV5Thread` +- 绾跨▼璇诲彇璁惧鐘舵�併�佹秷璐逛换鍔°�佹瀯閫犲懡浠ゆ垨璋冪敤閲嶈鍒掑叆鍙� +- 鍒嗘鎵ц鍣ㄦ墽琛屽垎娈典笅鍙戜笌鐘舵�佹帹杩� + +### 6.3 鐘舵�佸彉鍖� + +- 浠g爜缁撴瀯浠� V4/V5 鍙岀嚎绋嬬増鏈敹鍙d负 V5 鍗曠増鏈� +- 鏁版嵁搴撻厤缃�间粠 `ZyStationV4Thread` 鏀跺彛涓� `ZyStationV5Thread` +- `routeVersion`銆乣traceVersion`銆佸牭濉為噸瑙勫垝鐘舵�併�丷edis key 涓嶅彉 + +### 6.4 杈撳嚭 + +- 杈撻�佺珯杩愯琛屼负浠ュ綋鍓� `ZyStationV5Thread` 涓哄噯 +- 鏂颁换鍔¤建杩逛腑鐨� `threadImpl` 灏嗙ǔ瀹氭樉绀轰负 `ZyStationV5Thread` + +### 6.5 涓婁笅娓稿奖鍝� + +- 涓婃父 `StationOperateProcessUtils` 缁х画閫氳繃 `StationThread` 鎺ュ彛璋冪敤锛屼笉闇�瑕佹敼鎺ュ彛 +- 涓嬫父璁惧杩炴帴浠嶄娇鐢ㄧ幇鏈� `V4` 鍗忚瀹炵幇绫伙紝涓嶅鍔犳柊鐨勫崗璁垎鏀� +- V3銆佸墠绔建杩归〉闈€�佸垎娈佃建杩规暟鎹粨鏋勪笉闇�瑕佹敼鍔� + +## 7. 椋庨櫓涓庝繚鎶� + +### 7.1 椋庨櫓 + +- 濡傛灉鍙垹浠g爜鍒嗘敮銆佷笉鏀规暟鎹簱閰嶇疆锛屾棫 `thread_impl = ZyStationV4Thread` 浼氬湪鍚姩鏃跺け鏁堛�� +- 濡傛灉鍚屾椂鏀圭嚎绋嬬増鏈拰鍗忚绫诲悕锛屼細鎵╁ぇ鑼冨洿骞舵彁楂樺洖褰掗闄┿�� + +### 7.2 淇濇姢 + +- 鐢� SQL 杩佺Щ鍏堟敹鍙i厤缃�硷紝鍐嶅垹闄� V4 鍚姩鍒嗘敮銆� +- 淇濇寔鍗忚瀹炵幇绫讳笉鍔紝闄愬埗鍙樻洿鑼冨洿銆� +- 涓嶆敼 `StationSegmentExecutor` 鐨勬棦鏈夎涓猴紝閬垮厤鎶婄増鏈悎骞跺拰绠楁硶璋冩暣鑰﹀悎銆� + +## 8. 楠岃瘉 + +鑷冲皯鎵ц浠ヤ笅楠岃瘉锛� + +1. 鏂囨湰妫�绱㈢‘璁よ繍琛屾椂浠g爜涓嶅啀鎶� `ZyStationV4Thread` 褰撴垚鍙惎鍔ㄥ垎鏀�� +2. 鏂囨湰妫�绱㈢‘璁� `ZyStationConnectDriver` 鐨勬柊鐗堟湰璇嗗埆鍙繚鐣� `ZyStationV5Thread`銆� +3. 鏂囨湰妫�绱㈢‘璁や粨搴撳唴涓嶅啀鏈変笟鍔′唬鐮佸紩鐢� `ZyStationV4Thread`锛岃縼绉� SQL 涓殑鏃у�煎紩鐢ㄩ櫎澶栥�� +4. 鎵ц `mvn -q -DskipTests compile` 杩涜缂栬瘧鏍¢獙銆� +5. 濡傜幆澧冨厑璁革紝琛ュ厖涓�娆� `mvn -q -DskipTests package` 鎵撳寘鏍¢獙銆� + +## 9. 瀹炴柦娓呭崟 + +- 鍒犻櫎 `src/main/java/com/zy/core/thread/impl/ZyStationV4Thread.java` +- 淇敼 `src/main/java/com/zy/core/ServerBootstrap.java` +- 淇敼 `src/main/java/com/zy/core/network/ZyStationConnectDriver.java` +- 鏂板涓�鏉� Devp `thread_impl` 杩佺Щ SQL + +## 10. 鍋囪涓庢湭楠岃瘉鍓嶆彁 + +- 鐢ㄦ埛纭閲囩敤 鈥淰5 鍏ㄩ噺鏇夸唬 V4鈥濓紝涓嶄繚鐣欒繍琛屾椂鍏煎銆� +- 鐢ㄦ埛纭涓嶉渶瑕佺粺璁℃暟鎹簱閲岀幇鏈夊灏戞潯 V4 閰嶇疆銆� +- 褰撳墠鏈獙璇佹暟鎹簱瀹為檯鏁版嵁鍒嗗竷锛岃縼绉昏剼鏈寜骞傜瓑鏂瑰紡璁捐銆� +- 褰撳墠鏈獙璇佹墦鍖呯幆澧冩槸鍚﹀畬鏁达紝缂栬瘧鍜屾墦鍖呯粨鏋滈渶鍦ㄥ疄鏂介樁娈靛疄闄呮墽琛屽悗纭銆� -- Gitblit v1.9.1