我的架构复盘

news2025/2/26 8:15:46

1、背景

我目前公司研发中心担任软件研发负责人,研发中心分为3组,总共有30多人。研发中心主要开发各类生产辅助工具,比如巡检、安全教育等系统。系统不对外,只在公司内部使用。

就我个人来说,作为研发负责人,管理职能自然少不了,也做一部分产品经理的工作,包括现场调研、用户访谈、流程梳理等。在架构方面,也承担一部分的架构工作,包括开发前期的容量估算、部署架构、中间件选型、数据库选型(工业场景,个别分、子公司对数据库有要求)等。当然也包括对上的技术架构的汇报。说来惭愧,除了汇报工作,其他架构工作只做了一两次。主要原因是各分、子公司除了业务不同外,用户规模都差不太多。做完第一个系统后,其他系统架构都参照模仿。

2、系统介绍

我简单说一下我们的巡检系统。需求相对简单,主要流程描述如下:在生产现场24小时生产,有专门的巡检工,每隔一个小时到固定的地点(巡检点),查看水、电、设备、环境温度等数据。在巡检点的附近,都挂着一个纸质表格,巡检工将查得的数据填入,并签字确认。如果数据异常,立即通过电话上报。

我们的巡检系统,就是将上面的流程实现,同时,加上了任务提醒、隐患统计、隐患核销等功能。巡检工手持巡检仪,到现场扫RFID卡片定位巡检点,完成巡检工作。顺便说一下,巡检仪是一个类似于手机的设备,里面跑安卓系统,我们的应用端就安装在巡检仪上。

技术架构如下图:
在这里插入图片描述
这是目前巡检系统的架构图,向背景中说的一样,我们大部分系统都采用雷同的架构。服务数量最多的时候也不超过10个。各个服务用docker部署,需要查错时,登录docker,下载日志,然后人眼搜索。

服务间的相互调用几乎没有,使用的单体数据库,也不存在事务问题。nginx中配置各服务的访问规则,nginx未做保活。开发采用springboot框架,dao层使用mybatis,也有个别系统使用jpa的。系统部署在各分、子公司内部机房。

以上系统到现在为止相对稳定,除了功能升级外,技术上未出现大的升级改造。

3、思考

目前技术圈,“三高”几乎是日常讨论的话题,好像不做个高并发都不好意思跟人打招呼,这也是我目前考虑个人问题的原因。
另外,项目中也没有埋点,没有监控数据分析用户行为。

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

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

相关文章

高级深入--day44

Scrapy 和 scrapy-redis的区别 Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件)。 pip install scrapy-redis Scrapy-redis提供了下面四种组件&a…

STM32G030F6P6 芯片实验 (一)

STM32G030F6P6 芯片实验 (一) 淘宝搞了几片, 没试过 G系列, 试试感觉. 先搞片小系统版: 套 STM32F103C8T6小系统板格式. 原理图: (1) Ref 有点跳, 从 STM32F103C8T6 系统板改的, 没重编号. (2) Type-C 纯给电, 砍了 16pin的, 直接换 6pin的。 (3) 测试LED放 B2。 (4) 测试底…

Java基于SpringBoot+Vue的网上图书商城管理系统(附源码,教程)

文章目录 1. 简介2 技术栈3 系统功能4系统设计4.1数据库设计 5系统详细设计5.1系统功能模块5.1系统功能模块5.2管理员功能模块 源码下载地址 1. 简介 本次设计任务是要设计一个网上图书商城,通过这个系统能够满足网上图书商城的管理功能。系统的主要功能包括首页、…

javascript中各种风骚的代码

1.判断数值符号是否相同 function numericSymbolsIsEqual(x: number, y: number): boolean {return (x ^ y) > 0}console.log(numericSymbolsIsEqual(1, 1))console.log(numericSymbolsIsEqual(-1, 1))console.log(numericSymbolsIsEqual(1, -1))console.log(numericSymbols…

利用STM32CubeMX和keil模拟器,3天入门FreeRTOS(0) —— 创建工程

前言 (1)FreeRTOS是我一天过完的,由此回忆并且记录一下。个人认为,如果只是入门,利用STM32CubeMX是一个非常好的选择。学习完本系列课程之后,再去学习网上的一些其他课程也许会简单很多。 (2&am…

spring-代理模式

代理模式 一、概念1.静态代理2.动态代理 一、概念 ①介绍 二十三种设计模式中的一种,属于结构型模式。它的作用就是通过提供一个代理类,让我们在调用目标 方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用。让不…

Centos虚拟机安装配置与MobaXterm工具及Linux常用命令

目录 一、Centos操作系统 1.1 Centos介绍 1.2 Centos虚拟机安装 1.3 配置centos的镜像 1.4 虚拟机开机初始设置 1.4.1 查看网络配置 1.4.2 编辑网络配置 二、MobaXterm工具 2.1 MobaXterm介绍 2.2 MobaXterm安装 2.3 切换国内源 三、Linux常用命令和模式 3.1 …

leetCode 260.只出现一次的数字 ||| + 位运算

260. 只出现一次的数字 III - 力扣(LeetCode) 给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。你必须设计并实现线性时间复杂度的算法且…

微信小程序 人工智能志愿者服务活动报名系统uniAPP+vue

基于java语言设计并实现了人工智能志愿者服务APP。该APP基于B/S即所谓浏览器/服务器模式,应用SpringBoot框架与HBuilder X技术,选择MySQL作为后台数据库。系统主要包括用户、志愿活动、活动报名、活动签到、服务职责、服务排行等功能模块。 本文首先介绍…

C++之回调函数使用和不使用using、typedef、function定义总结(二百五十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

prometheus服务发现

Consul简介 ◼ 一款基于golang开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理 的功能 ◼ 提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能 部署 curl -LO https://releases.hashicorp…

单片机与进制数

目录 一:数字系统的由来 A:二进制 1: 基础概念 2: 二进制运算 3:二进制的计算 B:八进制 1:基础概念 C:16进制表 四:单片机中的进制数 一:数字系统的由来 1:远古时代:结绳计数 2:非位置化数字系统: 罗马数字 非位置化数字系统: 一个符号在不同的位置只会表达同样的意思…

Gitee 发行版

Gitee 发行版 1、Gitee 发行版管理2、项目仓库中创建发行版本3、项目中导入3.1 gradle配置3.2 dependencies执行正常,包没有下载 1、Gitee 发行版管理 Gitee 发行版(Release)管理 2、项目仓库中创建发行版本 按照Gitee官网操作就行 3、项目…

N-130基于springboot,vue校园社团管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plus 本系…

Linux 下 12 个最佳 Notepad++ 替代品

Notepadd 是一款完全免费的源代码编辑器,旨在替代 Windows 上的记事本 – 基于 Scintilla 用 C 编写,并实现 Win32 API 和 STL,以确保程序尺寸小且执行速度快 – 这些特性使其成为一个家族开发者中的名字。遗憾的是,没有适用于 Li…

Jetpack:021-Jetpack中的滑动列表

文章目录 1. 概念介绍2. 使用方法2.1 函数参数2.2 列表成员 3. 示例代码4. 内容扩展5. 内容总结 我们在上一章回中介绍了Jetpack中底部导航栏相关的内容,本章回中主要介绍 滑动列表。闲话休提,让我们一起Talk Android Jetpack吧! 1. 概念介绍…

【Git】HEAD detached from xxx 问题及解决方案

问题背景 最近用git的时候遇到了一个问题,场景是这样的。 我有一个分支main,其中有两个commit A和B,A是最新commit,B是历史commit。我先切到B看了看之前的代码,然后切到A,并进行了一些代码修改&#xff0…

H5游戏源码分享-跑酷游戏熊出没

H5游戏源码分享-跑酷游戏熊出没 <!DOCTYPE html> <html manifest"manifest.mf"><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><meta http-equiv"Content-Type" content"…

一、灵动mm32单片机_开发环境的搭建(Keil)

1、安装Keil MDK。 略。 2、安装芯片对应的Pack包。 (1)这里以MM32F0130单片机为例。 (2)进入灵动微电子官网。上海灵动微电子股份有限公司 (3)点击“支持”→“KEILPacl”。 (3)点击下载Pack包。 (4)下载后&#xff0c;解压下载的压缩包&#xff0c;找到对应的Pack包&…

PostgreSQL InvalidMessage Cache 同步机制

文章目录 背景InvalidMessages 基本类型InvalidMessages 数据结构概览共享内存 的 "ring-buffer" 结构Backend 本地的 InvalidMessages管理SharedInvalCatalogMsgSharedInvalCatcacheMsgSharedInvalRelcacheMsgSharedInvalSnapshotMsgSharedInvalSmgrMsgSharedInvalR…