记录搭建自己应用中心

记录搭建自己应用中心

  • 应用架构
    • 主应用-管理中心
    • 系统文件系统
    • 子应用
  • 日志系统
    • 日志系统前端
    • 日志系统后端
  • 用户系统
    • 接入使用
    • 暂未完成
  • 研发管理
    • 需求面板
    • 消息推送
    • 任务分配
    • 应用发布

应用架构

一直想做个试试,这是一个简易版的,主要是整合下知识的,依赖包构建,微服务,微前端,等等。
目前是设计的这么多
在这里插入图片描述

主应用-管理中心

主应用实现应用的管理。新建,logo,名称等等。这里图片换了资源,没正常显示。创建应用后,会获取appId和登录令牌。作为其他插件/依赖包的使用。
在这里插入图片描述
目前只展示了用户,后面计划为,应用的分析,受欢迎页面分析,来源分析,版本信息,迭代周期,以及应用告警等等。

系统文件系统

文件系统使用的是minio ,调用minio的签署,获取带有时间的直传链接,前端直接上传。

子应用

所有的子应用由分支下的base分支基础上开发。base分支完成了,除具体业务以外的功能,如登录。所有子应用可单独登录,信息保持一致,因为统一id。

日志系统

日志系统 通过编写依赖包的形式,实现应用快速接入。
目前的web依赖包为@dmhsq_monitor/web
后面可能会搞nodejs的

主要依赖下面三个包

在这里插入图片描述
分别是核心库,处理库,工具库。
使用rollup构建

处理库是上报前的数据的一些处理,如
在这里插入图片描述
在这里插入图片描述
核心库主要是 处理上报,初始化监控,停止监控,消息队列处理,等等。
在这里插入图片描述
使用脚步快速的构建和发布
在这里插入图片描述

日志系统前端

构建一个微前端的子应用,处理当是微前端形式启动的时候,隐藏菜单栏和顶部栏目,显示的应用信息通过主应用的 共享过去。

if (window.__POWERED_BY_WUJIE__) {let app: any;window.__WUJIE_MOUNT = () => {app = createApp(App);app.use(ElementPlus);app.use(pinia);app.use(router);app.mount("#app");const globalStore = useGlobalStore();globalStore.$reset();nextTick(() => {if (window.$wujie) {const { token, userInfo, nowApp, appList } = window.$wujie.props;// xxxx 处理主应用共享的数据}});};window.__WUJIE_UNMOUNT = () => {app.unmount();};window.__WUJIE.mount();
}`

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看上报的数据

  monitor.report({type: 'custom',name: 'userAction',data: { action: 'buttonClick', page: 'home' },});

在这里插入图片描述

日志系统后端

数据存在mongodb。由于需要任何地方都可以掉,所以对上报接口放通了跨域。
在这里插入图片描述

数据定义。

import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';export type AppLogDocument = AppLog & Document;@Schema()
export class AppLog {@Prop({ required: true })appId: string;@Prop({ default: Date.now })createdAt?: Date;@Prop({ default: Date.now })updatedAt?: Date;@Prop({ default: false })isRead?: boolean;@Prop({ required: true })type: string;@Prop({ required: true })name: string;@Prop({ required: true })day: string;@Prop({ required: true })timestamp: number;@Prop({ required: true })id: string;@Prop({ type: Object })data: any;@Prop({ type: Object })sdk: any;@Prop({ type: Object })device: any;@Prop({ required: true })ip: string;@Prop({ type: Object })browser;@Prop({ required: true })sessionId: string;
}export const AppLogSchema = SchemaFactory.createForClass(AppLog);AppLogSchema.index({ appId: 1, timestamp: 1, type: 1, day: 1, name: 1 });

在这里插入图片描述

用户系统

接入使用

快速的接入微信扫码登录。
使用依赖包,@dmhsq_app/vue

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后查询登录状态,做轮询。
在这里插入图片描述

扫码后会显示具体的应用的logo的名称,以及提示登录。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
换个账号登录。用户的头像默认和应用头像一致。
在这里插入图片描述
在这里插入图片描述
这里的用户会新增。

暂未完成

后端服务已经完成了,注销,踢下线,暂时没想到别的管理,用户还是应该交由具体应用具体使用。后续用户管理的依赖包,会整合后端服务,比如修改用户信息,注销,踢人下线等等。

研发管理

需求面板

还没开始,主要是参考jira的设计,实现面板管理,拖动,消息推送。

消息推送

实现为调用应用设置的推送接口url。

任务分配

其实也是一个消息推送。

应用发布

结合面板,面板上线后,可选更新版本,大版本,迭代版本,补丁版本,来更新版本号。结合git来实现标签tag的创建,方便回滚,应用发布分,构建,发布两个步骤。工作流形式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网工第6版】第5章 网络互联⑦

目录 ▲ 路由协议OSPF ◎ OSPF简介 ◎ OSPF特点 本章重要程度:☆☆☆☆☆ ▲ 路由协议OSPF ◎ OSPF简介 OSPF(Open Shortest Path First,开放式最短路径优先协议)是目前应用最广泛的路由协议。 OSPF是一种内部网关协议IGP,也是链路状态路由协议&am…

5.3 Dify:低代码平台,适用于企业快速部署合规AI应用

Dify作为一款开源低代码平台,已成为企业快速构建和部署合规AI应用的首选工具。Dify通过整合后端即服务(Backend-as-a-Service, BaaS)、大型语言模型操作(LLMOps)以及直观的视觉化界面,显著降低了AI应用开发…

AI 编程工具:Augment Code

Meet Augment Agent: Your AI pair programmer that deeply understands your codebase, and learns as you work Augment 是开发人员AI平台,它可以帮助您理解代码、调试问题,并更快地发布,因为它了解您的代码库。使用聊天、Next Edit和Augme…

vc++ 如何调用poco库

1. 下载并安装 Poco 库 你可以从 Poco 的官方网站(POCO C Libraries - Simplify C Development )下载其源代码压缩包。下载完成后,按照下面的步骤进行编译和安装: 解压源代码:把下载的压缩包解压到指定目录。配置编译…

浅谈OpenAIClaude LLM Tools的额外配置

前言 https://platform.openai.com/docs/guides/function-calling?api-modechat&strict-modedisabled#additional-configurationshttps://docs.anthropic.com/en/docs/build-with-claude/tool-use/overview#forcing-tool-use tool_choice “none” 就是不用tools&#x…

SystemWeaver详解:从入门到精通的深度实战指南

SystemWeaver详解:从入门到精通的深度实战指南 文章目录 SystemWeaver详解:从入门到精通的深度实战指南一、SystemWeaver环境搭建与基础配置1.1 多平台安装全流程 二、新手必学的十大核心操作2.1 项目创建全流程2.2 建模工具箱深度解析 三、需求工程与系…

力扣DAY68 | 热100 | 寻找两个正序数组的中位数

前言 困难 ○ 这题搞了3天实在太难了,本质就是每次排除k/2个数,直到找到第k个数。 题目 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为…

Linux常见故障:排查思路与错误分析指南

引言 当Linux系统"生病"时,它不会说话但却会通过各种症状"求救"🆘!本文将带你建立系统化的故障排查思维,从磁盘到内存,从网络到服务,全方位掌握Linux系统的"把脉问诊"技巧。…

深度解析:从12306看混合云架构下的高并发系统设计

作为曾参与12306余票查询系统高并发升级的技术从业者,笔者注意到公众对于12306底层技术常存在认知盲区。为破解这一迷思,特此分享十年前的架构解密文献(该技术之前名叫 gemfire 现已晋升为Apache顶级项目Geode,代码库详见&#xf…

华为Pura X的智控键:让折叠机体验更上一层楼的设计

还记得Mate 70系列刚出那会,我体验了下智控键,那时候就觉得这个“把快捷方式做进电源键”的交互方式非常惊艳,没想到在Pura X上,这种便捷体验感更上了一层楼。 智控键:折叠屏手机的天选快捷方式? 传统折叠…

springboot如何管理多数据源?

静态多数据源管理 配置多个数据源 :创建多个数据源的配置类,通常使用 @ConfigurationProperties 注解来绑定配置文件中的数据源属性,并通过 @Bean 注解定义多个 DataSource Bean 。例如: 配置类: @Configuration public class DataSourceConfig {@Bean(name = "prima…

谷歌终止新冠疫情时期结构化数据支持:SEO影响与应对策略

2025年4月,谷歌悄然宣布将于7月31日起停止支持新冠疫情时期的“特殊公告”(SpecialAnnouncement)结构化数据。这一举措标志着谷歌正式结束一项在疫情期间推出的实验性功能,对依赖该结构化数据的网站管理员和SEO从业者来说&#xf…

常见游戏引擎介绍与对比

Unreal Engine (UE4/UE5) 主语言:C Unreal Engine 主要使用 C 作为开发语言。C 提供了高性能的底层控制,适用于需要精细调优的 AAA 级游戏。C 在 Unreal 中用于开发核心游戏逻辑、物理引擎等性能要求较高的部分。 脚本语言:蓝图(B…

【C++】继承----下篇

文章目录 前言一、实现一个不能继承的类二、友元与继承三、继承与静态成员四、多继承以及菱形继承问题1.继承模型:2.菱形继承的问题3.虚拟继承解决数据冗余和二义性的原理4.虚拟继承的原理 五、继承的总结和反思1.继承和组合 总结 前言 各位好呀!今天呢我们接着讲继…

洛谷 B3647:【模板】Floyd 算法

【题目来源】 https://www.luogu.com.cn/problem/B3647 【题目描述】 给出一张由 n 个点 m 条边组成的无向图。 求出所有点对 (i,j) 之间的最短路径。 【输入格式】 第一行为两个整数 n,m,分别代表点的个数和边的条数。 接下来 m 行,每行三…

netlist

在电子设计自动化(EDA)中,网表(Netlist) 是描述电路设计连接关系的核心数据结构,本质上是电路元件(如逻辑门、晶体管、模块)及其互连关系的 文本化或结构化表示。它是从抽象设计&…

Cadence学习笔记之---原理图设计基本操作

目录 01 | 引 言 02 | 环境描述 03 | 原理图工具介绍 04 | 原理图设计基本操作 05 | 生成页间引用 06 | 元件自动编号 07 | 结 尾 01 | 引 言 书接上回,在前文中讲述了怎样制作常用的库元件,如电阻、二极管,IC器件,以及怎…

【华为HCIP | 华为数通工程师】821—多选解析—第十七页

多选835、IS-IS协议所使用的NSAP地址主要由哪几个部分构成? A、AREA ID B、SEL C、DSCp D、SYSTEM ID 解析:NSAP地址:网络服务访问点(Network Service Access Point)是 OSI 协议中用于定位资源的地址。NSAP 的地址结构如图所示,它由 IDP(Initial Domain …

Linux系统中命令设定临时IP

1.查看ip ---ifconfig 进入指定的网络接口 ifconfig ens160 建立服务器临时IP ifconfig ens160 ip地址 network 系统进行重启后,临时IP将会消失 ip address add ip地址 dev 服务器 ---添加临时ip ip address delete ip地址 dev 服务器 ---删除临时ip 设置ip&a…

深度学习之卷积神经网络入门

一、引言 在深度学习蓬勃发展的今天,卷积神经网络(Convolutional Neural Network,简称 CNN)凭借其在图像识别、计算机视觉等领域的卓越表现,成为了人工智能领域的核心技术之一。从手写数字识别到复杂的医学影像分析&a…