流式圖表拒絕增刪改查之框架搭建過程
前言
作為一名練習(xí)時長兩年半的夾娃工程師,常年浸泡在增刪改查的業(yè)務(wù)代碼里,每當(dāng)金三銀四來臨該迭代自己簡歷的時候,面對自己的項目經(jīng)歷都十分窘迫。突然有天學(xué)弟問我在實習(xí)公司一直做縫縫補(bǔ)補(bǔ)的工作或者是一些基于封裝好的RBAC(基于角色的權(quán)限管理系統(tǒng))做業(yè)務(wù)的增刪改查,眼下又要找工作了不知道咋寫項目經(jīng)驗。
無論是功能、技術(shù)棧、設(shè)計都平淡無奇,問我咋整,我打開塵封已久的簡歷一看,操,我不也一樣嗎。

當(dāng)時快畢業(yè)那會也是有點焦慮,難的項目看不懂簡單的項目看不上,難受的一批,于是決定自己搞個比較有意思的項目,起碼能用一些新穎的技術(shù)棧,給迷茫的大學(xué)生一點小小的思路。
流式圖表,顧名思義,使用流式數(shù)據(jù)做計算繪做成圖表,上游向流式圖表服務(wù)注冊并寫入數(shù)據(jù),流式圖表服務(wù)建立監(jiān)聽鏈接,監(jiān)聽到數(shù)據(jù)處理并推送給前端,使圖表流動起來。
只是突然萌生了這個想法,代碼只是完成了一半,看能不能做起來,希望能堅持搞完吧。
技術(shù)方案
- java8 + springboot2.0 + mybatis-plus搭建整體框架
- mysql業(yè)務(wù)層數(shù)據(jù)庫
- redis數(shù)據(jù)計算暫存層數(shù)據(jù)庫、模塊間消息通知、分布式鎖
- kafka流式數(shù)據(jù)組件
- guava線程池實現(xiàn)消費鏈接管理
- websocket即時通知前端數(shù)據(jù),使用netty優(yōu)化webservice
- 支持分布式擴(kuò)展
- 暫時決定采用拉的模式(主要怕前端數(shù)據(jù)擠壓),前端代碼到時候?qū)懖幌氯ゾ驼胰藥兔?..
不使用flink這種大數(shù)據(jù)引擎是因為對剛畢業(yè)的同學(xué)可能有點吃力,不是我不會,等做完了有時間精力就用flink引擎改造。
數(shù)據(jù)庫設(shè)計
CREATE TABLE `STREAM_CONFIG` ( `id` bigint NOT NULL AUTO_INCREMENT, `conf_id` char(100) CHARACTER, `name` char(100) CHARACTER NOT NULL DEFAULT '' COMMENT '流式數(shù)據(jù)源名稱', `conn_config` text COMMENT '流式數(shù)據(jù)源配置', `fields` text COMMENT '流式數(shù)據(jù)源字段信息', `is_del` int NOT NULL DEFAULT '0', `ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '記錄創(chuàng)建時間', `utime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '記錄創(chuàng)建時間', `use_count` int DEFAULT NULL, UNIQUE KEY `conf_id (`conf_id`) USING BTREE, PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
CREATE TABLE `CHART` ( `id` bigint NOT NULL AUTO_INCREMENT, `chart_id` char(100) CHARACTER, `name` char(100) CHARACTER NOT NULL DEFAULT '' COMMENT '流式圖表名稱', `field_id` text COMMENT '流式圖表使用的窗口字段id', `is_del` int NOT NULL DEFAULT '0', `ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '記錄創(chuàng)建時間', `utime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '記錄創(chuàng)建時間', `use_count` int DEFAULT NULL, UNIQUE KEY `chart_id (`chart_id`) USING BTREE, PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
基礎(chǔ)模塊
- matrix-common 公共依賴、工具類、常量、
- matrix-core 管理消費鏈接、消費邏輯
- matrix-message 服務(wù)間通信組件
- matrix-socket 推送模塊,負(fù)責(zé)與前端交互
- matrix-web 數(shù)據(jù)庫增刪改查
寫項目最爽的階段一是剛開始起一個很吊的名字,二是完成時的成就感,先起一個很猛的名字。代開IDEA直接開擼。
用maven搭建一個多模塊項目,parent項目pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<modules>
<module>matrix-common</module>
<module>matrix-core</module>
<module>matrix-web</module>
<module>matrix-socket</module>
<module>matrix-message</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.3</version>
</parent>
<groupId>com.uptown</groupId>
<artifactId>matrix</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
其他的先不貼了,整的匆忙得調(diào)整到最合理的情況再展示出來,未來連更幾波。
整體流程

最終效果

以上就是流式圖表拒絕增刪改查之框架搭建過程的詳細(xì)內(nèi)容,更多關(guān)于流式圖表框架搭建的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
spring boot--從controller到DAO操作
這篇文章主要介紹了spring boot--從controller到DAO操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
Spring?MVC實現(xiàn)GET請求接收Date類型參數(shù)
這篇文章主要介紹了Spring?MVC實現(xiàn)GET請求接收Date類型參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

