欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

流式圖表拒絕增刪改查之框架搭建過(guò)程

 更新時(shí)間:2023年04月12日 14:58:11   作者:在下uptown  
這篇文章主要為大家介紹了流式圖表拒絕增刪改查之框架搭建過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

作為一名練習(xí)時(shí)長(zhǎng)兩年半的夾娃工程師,常年浸泡在增刪改查的業(yè)務(wù)代碼里,每當(dāng)金三銀四來(lái)臨該迭代自己簡(jiǎn)歷的時(shí)候,面對(duì)自己的項(xiàng)目經(jīng)歷都十分窘迫。突然有天學(xué)弟問我在實(shí)習(xí)公司一直做縫縫補(bǔ)補(bǔ)的工作或者是一些基于封裝好的RBAC(基于角色的權(quán)限管理系統(tǒng))做業(yè)務(wù)的增刪改查,眼下又要找工作了不知道咋寫項(xiàng)目經(jīng)驗(yàn)。

無(wú)論是功能、技術(shù)棧、設(shè)計(jì)都平淡無(wú)奇,問我咋整,我打開塵封已久的簡(jiǎn)歷一看,操,我不也一樣嗎。

當(dāng)時(shí)快畢業(yè)那會(huì)也是有點(diǎn)焦慮,難的項(xiàng)目看不懂簡(jiǎn)單的項(xiàng)目看不上,難受的一批,于是決定自己搞個(gè)比較有意思的項(xiàng)目,起碼能用一些新穎的技術(shù)棧,給迷茫的大學(xué)生一點(diǎn)小小的思路。

流式圖表,顧名思義,使用流式數(shù)據(jù)做計(jì)算繪做成圖表,上游向流式圖表服務(wù)注冊(cè)并寫入數(shù)據(jù),流式圖表服務(wù)建立監(jiān)聽鏈接,監(jiān)聽到數(shù)據(jù)處理并推送給前端,使圖表流動(dòng)起來(lái)。

只是突然萌生了這個(gè)想法,代碼只是完成了一半,看能不能做起來(lái),希望能堅(jiān)持搞完吧。

技術(shù)方案

  • java8 + springboot2.0 + mybatis-plus搭建整體框架
  • mysql業(yè)務(wù)層數(shù)據(jù)庫(kù)
  • redis數(shù)據(jù)計(jì)算暫存層數(shù)據(jù)庫(kù)、模塊間消息通知、分布式鎖
  • kafka流式數(shù)據(jù)組件
  • guava線程池實(shí)現(xiàn)消費(fèi)鏈接管理
  • websocket即時(shí)通知前端數(shù)據(jù),使用netty優(yōu)化webservice
  • 支持分布式擴(kuò)展
  • 暫時(shí)決定采用拉的模式(主要怕前端數(shù)據(jù)擠壓),前端代碼到時(shí)候?qū)懖幌氯ゾ驼胰藥兔?..

不使用flink這種大數(shù)據(jù)引擎是因?yàn)閷?duì)剛畢業(yè)的同學(xué)可能有點(diǎn)吃力,不是我不會(huì),等做完了有時(shí)間精力就用flink引擎改造。

數(shù)據(jù)庫(kù)設(shè)計(jì)

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)建時(shí)間',
  `utime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '記錄創(chuàng)建時(shí)間',
  `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)建時(shí)間',
  `utime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '記錄創(chuàng)建時(shí)間',
  `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 管理消費(fèi)鏈接、消費(fèi)邏輯
  • matrix-message 服務(wù)間通信組件
  • matrix-socket 推送模塊,負(fù)責(zé)與前端交互
  • matrix-web 數(shù)據(jù)庫(kù)增刪改查

寫項(xiàng)目最爽的階段一是剛開始起一個(gè)很吊的名字,二是完成時(shí)的成就感,先起一個(gè)很猛的名字。代開IDEA直接開擼。

用maven搭建一個(gè)多模塊項(xiàng)目,parent項(xiàng)目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)整到最合理的情況再展示出來(lái),未來(lái)連更幾波。

整體流程

最終效果

以上就是流式圖表拒絕增刪改查之框架搭建過(guò)程的詳細(xì)內(nèi)容,更多關(guān)于流式圖表框架搭建的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • spring事務(wù)異?;貪L實(shí)例解析

    spring事務(wù)異?;貪L實(shí)例解析

    這篇文章主要介紹了spring事務(wù)異?;貪L實(shí)例解析,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Spring中存取Bean的相關(guān)注解舉例詳解

    Spring中存取Bean的相關(guān)注解舉例詳解

    這篇文章主要給大家介紹了關(guān)于Spring中存取Bean的相關(guān)注解,在沒有使用注解獲取對(duì)象之前,我們需要在配置文件中通過(guò)添加bean來(lái)將對(duì)象存儲(chǔ)到Spring容器中,這對(duì)于我們來(lái)說(shuō)是比較麻煩的,需要的朋友可以參考下
    2023-10-10
  • Spring定時(shí)任務(wù)注解@Scheduled詳解

    Spring定時(shí)任務(wù)注解@Scheduled詳解

    這篇文章主要介紹了Spring定時(shí)任務(wù)注解@Scheduled詳解,@Scheduled注解是包org.springframework.scheduling.annotation中的一個(gè)注解,主要是用來(lái)開啟定時(shí)任務(wù),本文提供了部分實(shí)現(xiàn)代碼與思路,需要的朋友可以參考下
    2023-09-09
  • SpringBoot利用EasyExcel實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)

    SpringBoot利用EasyExcel實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)

    EasyExcel是一個(gè)基于Java的、快速、簡(jiǎn)潔、解決大文件內(nèi)存溢出的Excel處理工具,它能讓你在不用考慮性能、內(nèi)存的等因素的情況下,快速完成Excel的讀、寫等功能看,本文就將介紹如何利用EasyExcel實(shí)現(xiàn)導(dǎo)出數(shù)據(jù),需要的朋友可以參考下
    2023-07-07
  • 淺談Java基準(zhǔn)性能測(cè)試之JMH

    淺談Java基準(zhǔn)性能測(cè)試之JMH

    JMH是Java Microbenchmark Harness的簡(jiǎn)稱,一個(gè)針對(duì)Java做基準(zhǔn)測(cè)試的工具。想準(zhǔn)確的對(duì)一段代碼做基準(zhǔn)性能測(cè)試并不容易,因?yàn)镴VM層面在編譯期、運(yùn)行時(shí)對(duì)代碼做很多優(yōu)化,當(dāng)代碼塊處于整個(gè)系統(tǒng)中運(yùn)行時(shí)并不一定會(huì)生效,產(chǎn)生錯(cuò)誤的基準(zhǔn)測(cè)試結(jié)果,這個(gè)問題就是JMH要解決的
    2021-06-06
  • 淺談Java分布式架構(gòu)下如何實(shí)現(xiàn)分布式鎖

    淺談Java分布式架構(gòu)下如何實(shí)現(xiàn)分布式鎖

    這篇文章主要介紹了淺談Java分布式架構(gòu)下如何實(shí)現(xiàn)分布式鎖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • java加密枝術(shù)深入理解

    java加密枝術(shù)深入理解

    java.security包中的MessageDigest類提供了計(jì)算消息摘要的方法,本文將詳細(xì)介紹,需要了解的朋友可以參考下
    2012-11-11
  • java實(shí)現(xiàn)消息隊(duì)列的兩種方式(小結(jié))

    java實(shí)現(xiàn)消息隊(duì)列的兩種方式(小結(jié))

    本文主要介紹了兩種java實(shí)現(xiàn)消息隊(duì)列的方式,利用Spring消息模板發(fā)送消息和Apache ActiveMQ官方實(shí)例發(fā)送消息,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • XFire構(gòu)建web service客戶端的五種方式

    XFire構(gòu)建web service客戶端的五種方式

    本篇文章主要介紹了XFire構(gòu)建web service客戶端的五種方式。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • springboot 實(shí)現(xiàn)Http接口加簽、驗(yàn)簽操作方法

    springboot 實(shí)現(xiàn)Http接口加簽、驗(yàn)簽操作方法

    這篇文章主要介紹了springboot 實(shí)現(xiàn)Http接口加簽、驗(yàn)簽操作,服務(wù)之間接口調(diào)用,通過(guò)簽名作為安全認(rèn)證來(lái)保證API的安全性,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09

最新評(píng)論