我的架构复盘
1、背景
我目前公司研发中心担任软件研发负责人,研发中心分为3组,总共有30多人。研发中心主要开发各类生产辅助工具,比如巡检、安全教育等系统。系统不对外,只在公司内部使用。
就我个人来说,作为研发负责人,管理职能自然少不了,也做一部分产品经理的工作,包括现场调研、用户访谈、流程梳理等。在架构方面,也承担一部分的架构工作,包括开发前期的容量估算、部署架构、中间价选型、数据库选型(工业场景,个别分、子公司对数据库有要求)等。当然也包括对上的技术架构的汇报。说来惭愧,除了汇报工作,其他架构工作只做了一两次。主要原因是各分、子公司除了业务不同外,用户规模都差不太多。做完第一个系统后,其他系统架构都参照模仿。
2、系统介绍
我简单说一下我们的巡检系统。需求相对简单,主要流程描述如下:在生产现场24小时生产,有专门的巡检工,每隔一个小时到固定的地点(巡检点),查看水、电、设备、环境温度等数据。在巡检点的附近,都挂着一个纸质表格,巡检工将查得的数据填入,并签字确认。如果数据异常,立即通过电话上报。
我们的巡检系统,就是将上面的流程实现,同时,加上了任务提醒、隐患统计、隐患核销等功能。巡检工手持巡检仪,到现场扫RFID卡片定位巡检点,完成巡检工作。顺便说一下,巡检仪是一个类似于手机的设备,里面跑安卓系统,我们的应用端就安装在巡检仪上。
技术架构如下图:

这是目前巡检系统的架构图,向背景中说的一样,我们大部分系统都采用雷同的架构。服务数量最多的时候也不超过10个。各个服务用docker部署,需要查错时,登录docker,下载日志,然后人眼搜索。
服务间的相互调用几乎没有,使用的单体数据库,也不存在事务问题。nginx中配置各服务的访问规则,nginx未做保活。开发采用springboot框架,dao层使用mybatis,也有个别系统使用jpa的。系统部署在各分、子公司内部机房。
以上系统到现在为止相对稳定,除了功能升级外,技术上未出现大的升级改造。
3、思考
目前技术圈,“三高”几乎是日常讨论的话题,好像不做个高并发都不好意思跟人打招呼,这也是我目前考虑个人问题的原因。
另外,项目中也没有埋点,没有监控数据分析用户行为。
相关文章:
我的架构复盘
1、背景 我目前公司研发中心担任软件研发负责人,研发中心分为3组,总共有30多人。研发中心主要开发各类生产辅助工具,比如巡检、安全教育等系统。系统不对外,只在公司内部使用。 就我个人来说,作为研发负责人…...
LangChain+LLM实战---LangChain中的6大核心模块
模型(Models) LLMs 大型语言模型,将文本字符串作为输入,并返回文本字符串作为输出。 聊天模型 聊天模型通常由语言模型支持,但它们的API更加结构化。这些模型将聊天消息列表作为输入,并返回聊天消息。 文本…...
【Android】Android Framework系列---CarPower电源管理
Android Framework系列—CarPower电源管理 智能座舱通常包括中控系统、仪表系统、IVI系统 、后排娱乐、HUD、车联网等。这些系统需要由汽车电源进行供电。由于汽车自身的特殊供电环境(相比手机方便的充电环境,汽车的蓄电池如果没有电是需要专业人士操作…...
io测试【FPGA】
按钮: 按钮是区分输入输出的, LED配置成输入,是不会亮的。 //timescale 1s/1ns // 【】是预编译,类似C语言的#include // 这是FPGA原语 //晶振时钟 1ns//类型声明 module LED //跟PLC的FB功能块一样,使用前需要实…...
vue项目中页面跳转传参的方法
在Vue项目中,你可以使用路由(vue-router)来实现页面跳转并传递参数。下面是一些常用的方法: 使用路由的params属性: 在目标页面的路由配置中,设置props: true来启用参数传递。在源页面中,使用th…...
论文速递 TMC 2023 | RoSeFi: 一种利用商用WiFi设备进行稳健的久坐行为监测系统
注1:本文系“最新论文速览”系列之一,致力于简洁清晰地介绍、解读最新的顶会/顶刊论文 TMC 2023 | RoSeFi: 一种利用商用WiFi设备进行稳健的久坐行为监测系统 原文链接:https://ieeexplore.ieee.org/abstract/document/10269067 本文提出了一种稳健的久坐行为监测系统RoSeFi。…...
Day 12 python学习笔记
模块 内置模块 sys模块 概述:Python 的 sys 模块提供访问解释器使用或维护的变量,和与解释器进行交互的函数。通俗来讲,sys 模块为程序与 Python 解释器的交互,提供了一系列的函数和变量,用于操控 Python 运行时的环境…...
DBA笔记(1)
目录 1、rpm yum 命令的使用,参数的含义 rpm命令: yum命令: 2、上传镜像至虚拟机搭建本地yum源 3、chown chomd 命令每一个参数的含义 chown命令: chmod命令: 4、fdisk partd 硬盘分区命令用法 fdisk命令&am…...
C++设计模式_15_Proxy 代理模式
Proxy 代理模式也是属于“接口隔离”模式,通过增加一层间接层来解决问题的模式。 文章目录 1. 动机( Motivation)2. 模式定义3. 结构( Structure )4. 代码演示Proxy 代理模式4.1 常规方法4.2 Proxy 代理模式 5. 要点总结6. 其他参考 1. 动机( Motivation) 在面向对…...
Go学习第十四章——Gin请求与响应
Go web框架——Gin请求与响应 1 响应1.1 String1.2 JSON(*)1.3 HTML(*)1.4 XML1.5 文件(*) 2 请求2.1 请求参数查询参数 (Query)动态参数 (Param)表单参数 (PostForm)原始参数 (GetRawData) 2.2 请求头2.3 …...
【多线程面试题十】、说一说notify()、notifyAll()的区别
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:说一说notify()、notify…...
【Element UI】解决 el-button 禁用状态下,el-tooltip 提示不生效问题
文章目录 问题描述解决方法 问题描述 关键代码: <el-tooltipcontent"一段提示内容"placement"bottom"effect"light":disabled"count > 100" ><el-buttontype"text"class"dl-button":dis…...
C++单元测试GoogleTest和GoogleMock十分钟快速上手(gtestgmock)
C单元测试GoogleTest和GoogleMock(gtest&gmock) 环境准备 下载 git clone https://github.com/google/googletest.git # 或者 wget https://github.com/google/googletest/releases/tag/release-1.11.0安装 cd googletest cmake CMakeLists.txt make sudo make instal…...
Starknet的去中心化路线图
1. 引言 StarkWare正以2条路线在迈向去中心化: planningimplementation 以让Starknet协议 走向 去中心化proof-of-stake协议。 Starknet向以太坊发送STARK proofs来验证其状态变更。 一年前Starknet就在做去中心化规划,相关提案见: Sim…...
python基础语法(十二)
目录 标准库认识标准库使用 import 导入模块代码示例: 字符串操作剑指offer 58, 翻转单词顺序题目题目做法代码 leetcode 796, 旋转字符串题目题目做法 leetcode 2255, 统计是给定字符串前缀的字符串数目题目题目做法 代码示例: 文件查找工具 感谢各位大佬对我的支持,如果我的文…...
【开源】基于SpringBoot的农村物流配送系统的设计和实现
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理:2.2.2 位置信息管理:2.2.3 配送人员分配:2.2.4 路线规划:2.2.5 个人中心:2.2.6 退换快递处理:…...
【2024秋招】2023-9-16 贝壳后端开发一面
1 秒杀系统 1.1 如何抗住高并发 1.2 数据一致性你是怎么处理,根据场景来说明你的设计思路 1.3 你们当时系统的架构是怎么样的 秒杀表做节点隔离, 1.4 为了保证数据一致性,引入了redission的锁,你是为了抗住高并发而去为了引入…...
BI是什么?想要了解BI需要从哪些方面入手?
企业为了执行数字化战略,实行数字化转型,实现数据价值,除了需要相关数字化技术及理念、人才等,还需要借助数字化相关应用,例如商业世界中广受企业欢迎的ERP、OA、CRM等业务信息系统,以及上升势头非常迅猛的…...
软件测试---等价类划分(功能测试)
能对穷举场景设计测试点-----等价类划分 等价类划分 说明:在所有测试数据中,具有某种共同特征的数据集合进行划分分类: 1)有效等价类 2)无效等价类步骤:1)明确需求 2)确定有效和无…...
javascript原生态xhr上传多个图片,可预览和修改上传图片为固定尺寸比例,防恶意代码,加后端php处理图片
//前端上传文件 <!DOCTYPE html> <html xmlns"http://www.w3.org/1999/xhtml" lang"UTF-8"></html> <html><head><meta http-equiv"Content-Type" content"text/html;charsetUTF-8;"/><title…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
