Ni Blog

「拨开迷雾见月明」

实习项目-心跳检测报警

前言 目前所有报警在云服务器,想要改为在ICSC服务器(与硬件交互相关业务)实现当机器状态改变,根据不同机器,发送对应的报警目标(微信,企业微信,钉钉) 前系统流程 1. MQTT接收回调,如果为心跳则更新心跳 if(CallAccessControlMethodEnum.UPDATE_HEART.getCmd() .equals(accessMQTTM...

实习项目-MQTT实战

前言 学习MQTT协议过后,从代码中探索控制硬件流程 提前准备 部署依赖 <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> ...

实习项目-MQTT协议

前言 实习公司主要项目为物业项目,其中包含了物业所有相关业务,包括硬件设备例如大门,闸机,摄像头等控制。项目中需要使用MQTT协议进行控制 1 MQTT协议介绍 MQTT协议全称是(Message Queuing Telemetry Transport),即消息队列遥测传输协议。 是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,并且该协议构建于...

Docker Compose

前言 ​ 实习项目使用docker Compose + 云效进行部署,对服务器系统运维了解的第一步,后续将进一步学习k8s,再学习使用Opsdev,掌握多种技术,了解特点灵活使用 产生背景 使用Docker时步骤 定义Dockerfile文件 ...

策略模式的实践

前言 ​ 在实习中需要引入微信登录,并且分为多种登录模式,例如:小程序登录,PC用户名密码登录,PC微信扫码登录。每种不同的登录模式里实现的方法也都不同,就想到可以使用策略者模式可以灵活的根据情况进行选择不同的实现方法 策略模式介绍 什么是策略模式 策略模式是一种解决 改变 的方案,其核心是将问题剥离,把不会改变的和可变的内容区分开来。在发生改变时只需修改可...

关于实习中遇到的数据库设计问题

前言 ​ 在实习中接手一个需求,对服务进行加单操作,需要判断可以加单的最长时长,实现逻辑如下 获取加单的服务开始时间 获取该人大于加单开始时间的订单 计算其中时间有多少(没有的话最多7天) 还需要判断这段时间内该人是否休息,如果休息的话就结束在这个时间点 问题 ​ 数据库由另一人创建设计,在我写这个需求时,发现判断这段时间内该人是否休息的操作过于复杂,怀疑数据设计...

SimpleRateLimiter

前言 在项目中为了防止用户连续多次点击给系统带来负担,以及避免数据出错。需要对接口进行限流操作 实现技术 AOP Redis 实现 1. 对需要进行限流的接口进行标注 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RateLim...

EasyExcel底层逻辑

前言 ​ 遇到业务需求,需要通过Excel批量的进行导入数据。根据网上的资料进行对比,EasyExcel框架的性能比POI更强,可以在磁盘上进行操作,消耗的内存更小 实现技术 监听器 准备工作 1、创建一个自定义监听器实现ExcelListener接口 2、创建自定义转换器可以在把数据传给监听器之前根据字典进行转换 ...

Mybatis-Plus实现鉴权

前言 ​ 在实习中开发对后台进行开发时后台的使用用户有多种,需要针对不同的用户进行权限管理,例如:同部门的用户只能看到同部门的人员,部门下的角色只能操作,查看该部门信息 实现技术 Mybatis-Plus拦截器 注解 执行器 准备工作 1、权限注解根据注解获取被权限管理的所有Bean 2、存储权限内占位符名称,以及替换值 ...