生产环境一个订单状态错误的排查与反思
摘要:--问题现象-- 生产环境上发现一个奇怪的现象:如果充电用户充入充电金额,金额在充电过程中耗尽,那么订单的状态是A(退款过程中);而如果用户充入充电金额,金额没有在充电过程中耗尽,那么订单的状态是B(订单关闭)。 这里简单描述一下这个订单状态变化的过程: 1.用户结束订单时,硬件返回状态,包含耗电量
阅读全文
posted @
2021-06-29 22:28
长江同学
阅读(207)
推荐(0) 编辑
《HeadFirstServletAndJsp》笔记一
摘要:SpringBoot很简洁易用,框架的作者对细节和通用的配置进行了封装,使得普通的用户能够使用简单的注解就能完成以前复杂的配置和逻辑功能。但细节的屏蔽对于我们了解原理并不是一件好事,框架用起来有多方便,在debug看源码的时候都是要还的。所以最近再次看这本《Head First Servlet An
阅读全文
posted @
2021-06-29 21:01
长江同学
阅读(53)
推荐(0) 编辑
Java泛型简介二
摘要:1.泛型擦除的理解 关于泛型,我们先看一个示例: public class TypeErasure { public static void main(String[] args) { List<String> stringList = new ArrayList<>(); List<Integer
阅读全文
posted @
2021-06-29 10:40
长江同学
阅读(77)
推荐(0) 编辑
Java泛型简介一
摘要:JDK5引入了泛型,可以在编译期提供类型安全监测。泛型和集合类的结合,是消灭重复代码的一大利器。对于一些通用的逻辑,我们并不关心它的真正类型是什么,只要输入--执行这一逻辑--输出即可满足我们的需求。对于类似的需求,继承和接口都有很大的局限性,于是泛型机制应运而生,它真正做到了类或方法与所使用对象的
阅读全文
posted @
2021-06-26 21:16
长江同学
阅读(642)
推荐(0) 编辑
在Windows环境下与Linux环境下快速计算文件Hash
摘要:在Windows中可以通过以下方式: certutil -hashfile yourfilename MD5 certutil -hashfile yourfilename SHA1 certutil -hashfile yourfilename SHA256 而在Linux下,命令为: md5su
阅读全文
posted @
2021-06-26 20:35
长江同学
阅读(372)
推荐(0) 编辑
JodaTime的使用
摘要:处理时间的场景在软件开发中很常见,JDK提供了Date和Calendar,然而这套API并不是很好用。这里推荐使用JodaTime来进行时间的处理。这里放上JodaTime的官网地址:https://www.joda.org/joda-time/ Maven中央库中的依赖: <!-- https:/
阅读全文
posted @
2021-06-25 23:09
长江同学
阅读(256)
推荐(0) 编辑
W3School-JavaScript笔记四
摘要:JavaScript 数组用于在单一变量中存储多个值。实例var cars = ["Saab", "Volvo", "BMW"];var car1 = "Saab";var car2 = "Volvo";var car3 = "BMW"; var cars=[car1,car2,car3];cons
阅读全文
posted @
2021-06-22 22:32
长江同学
阅读(78)
推荐(0) 编辑
W3School-JavaScript笔记三
摘要:JavaScript 只有一种数值类型。 书写数值时带不带小数点均可。var x = 3.14; // 带小数点的数值var y = 3; // 不带小数点的数值 超大或超小的数可通过科学计数法来写:实例var x = 123e5; // 12300000var y = 123e-5; // 0.0
阅读全文
posted @
2021-06-20 22:08
长江同学
阅读(44)
推荐(0) 编辑
W3School-JavaScript笔记二
摘要:JavaScript 函数语法JavaScript 函数通过 function 关键词进行定义,其后是函数名和括号 ()。函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)。 圆括号可包括由逗号分隔的参数:(参数 1, 参数 2, ...) 由函数执行的代码被放置在花括号中:{}funct
阅读全文
posted @
2021-06-19 22:43
长江同学
阅读(56)
推荐(0) 编辑
W3School-JavaScript笔记一
摘要:JavaScript 能够改变 HTML 内容getElementById() 是多个 JavaScript HTML 方法之一。 JavaScript 能够改变 HTML 内容<button type="button" onclick="document.getElementById('demo'
阅读全文
posted @
2021-06-19 10:43
长江同学
阅读(113)
推荐(0) 编辑
《MySQL是怎样运行的:从根儿上理解MySQL》笔记4
摘要:第四节:InnoDB记录结构 准备工作 到现在为止,MySQL对于我们来说还是一个黑盒,我们只负责使用客户端发送请求并等待服务器返回结果,表中的数据到底存到了哪里?以什么格式存放的?MySQL是以什么方式来访问的这些数据? MySQL服务器上负责对表中数据的读取和写入工作的部分是存储引擎,而服务器又
阅读全文
posted @
2021-06-18 11:13
长江同学
阅读(134)
推荐(0) 编辑
《MySQL是怎样运行的:从根儿上理解MySQL》笔记3
摘要:第三节:字符集和比较规则 字符集和比较规则简介 字符集 在计算机中只能存储二进制数据,那该怎么存储字符串呢?当然是建立字符与二进制数据的映射关系了,建立这个关系最起码要搞清楚两件事儿: 1.你要把哪些字符映射成二进制数据?也就是界定清楚字符范围。 2.怎么映射? 将一个字符映射成一个二进制数据的过程
阅读全文
posted @
2021-06-18 10:45
长江同学
阅读(152)
推荐(0) 编辑
推荐一个对比jar包依赖的工具
摘要:公司的后端开发使用了一套自研的基础框架,开发人员会根据业务不断地扩展这套框架,然后将jar包发布到私服nexus上,业务层的代码是基于这套自研的代码进行开发,所以一般会下载该框架的jar包到本地然后和本地最新的业务代码进行整合,从而形成一个新的业务代码的jar包。 整个业务代码-核心框架代码的结构如
阅读全文
posted @
2021-06-18 10:37
长江同学
阅读(2438)
推荐(0) 编辑
《MySQL是怎样运行的:从根儿上理解MySQL》笔记2
摘要:第二节:启动选项和系统变量 MySQL的服务器程序和客户端程序也有很多设置项,比如对于MySQL服务器程序,我们可以指定诸如允许同时连入的客户端数量、客户端和服务器通信方式、表的默认存储引擎、查询缓存的大小吧啦吧啦的设置项。对于MySQL客户端程序,我们之前已经见识过了,可以指定需要连接的服务器程序
阅读全文
posted @
2021-06-15 21:50
长江同学
阅读(283)
推荐(0) 编辑
《MySQL是怎样运行的:从根儿上理解MySQL》笔记1
摘要:第一节:认识MySQL 客户端/服务器架构 MySQL它的服务器程序直接和我们存储的数据打交道,然后可以有好多客户端程序连接到这个服务器程序,发送增删改查的请求,然后服务器就响应这些请求,从而操作它维护的数据。 每个客户端都需要提供用户名密码才能登录,登录之后才能给服务器发请求来操作某些数据。 我们
阅读全文
posted @
2021-06-14 09:43
长江同学
阅读(898)
推荐(0) 编辑
查询异步更新状态的一种思路
摘要:在物联网的软硬件系统中,常会有更新和查询硬件状态的场景。 类似系统中,普遍的流程为:用户触发系统发送指令(查询状态)--硬件接收指令--硬件更改状态--硬件返回指令--系统接收指令--展示给用户最新状态。一般情况下,我们会将系统发送指令(接口1),等待硬件完成状态更新后,将会发送查询状态结果的指令(
阅读全文
posted @
2021-06-14 09:32
长江同学
阅读(118)
推荐(0) 编辑
使用MySQL函数来提升工作效率
摘要:今天处理开发问题的时候,又像往常一样,需要用到UUID来组装数据。如果像往常一样,我可能会开一个工程,在main中用标准输出打印我需要个数的UUID,或者直接到网上找到在线的生成UUID的工具。 但其实,这些效率并不算高。我相信一个后端工程师,其实基本天天会跟MySQL打交道的,如果让MySQL这个
阅读全文
posted @
2021-06-12 22:19
长江同学
阅读(166)
推荐(0) 编辑
支付接口的接入思路和注意要点
摘要:系统中如果要接入支付功能,目前基本上有三个大的场景。第一个场景是,接入第三方聚合支付接口,也就是说,这个聚合接口帮你搞定了支付宝,微信,银联等支付渠道的打通,在我们自己的系统中,只需要跟这个聚合接口进行交互就能实现支付功能;第二个场景是,系统直接跟支付宝,微信,银联,或者银行进行对接,此时我们需要去
阅读全文
posted @
2021-06-11 22:14
长江同学
阅读(986)
推荐(0) 编辑
系统权限设计
摘要:权限设计在系统设计中无法回避,而且该模块处于牵一发而动全身基础地位,这里对设计思路简要分析。 首先,权限要区分开功能权限与数据权限。功能权限解决有没有的问题,而数据权限解决有多少的问题。而且权限设计思路会因为系统用户的结构形态不同而差异很大,这里只对一些基本的,通用的场景提供一个基本思路。 相比较而
阅读全文
posted @
2021-06-10 21:43
长江同学
阅读(382)
推荐(0) 编辑
对各种join的理解
摘要:最近使用left join,inner join时,发现对它们的理解并不到位,在此总结一下。 首先,对于left join,right join,inner join 以及outer join的区别,当ON条件之后在各自表中都有唯一约束时,可以参考 https://blog.csdn.net/wei
阅读全文
posted @
2021-06-09 21:38
长江同学
阅读(116)
推荐(0) 编辑
LinuxShell脚本笔记二
摘要:cat 读取多个文件 cat file1 file2 ... 输入信息与文件混合 echo 'this is message'|cat - filename cat -s filename # 将文本中多行空白行压缩为1行 cat filename|tr -s '\n' # 去除空白行 cat -n
阅读全文
posted @
2021-06-06 09:20
长江同学
阅读(69)
推荐(0) 编辑
LinuxShell脚本笔记一
摘要:大纲目录: Chapter 1: 初级任务,主要是掌握Bash中的基本概念与特性。Chapter 2: 常见重要命令Chapter 3: 文件相关Chapter 4: 文本处理Chapter 5: 网络相关Chapter 6: 数据备份,归档,压缩Chapter 7: 联网实践Chapter 8:
阅读全文
posted @
2021-06-06 09:18
长江同学
阅读(94)
推荐(0) 编辑
Dubbo基本知识点笔记
摘要:【需求】在大规模服务化之前,应用可能只是通过 RMI 或 Hessian 等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过 F5 等硬件进行负载均衡。 当服务越来越多时,服务 URL 配置管理变得非常困难,F5 硬件负载均衡器的单点压力也越来越大。 此时需要一个服务注册中心,
阅读全文
posted @
2021-06-06 09:14
长江同学
阅读(140)
推荐(0) 编辑
关系型数据库中好友关系的设计
摘要:接到需求,设计一群注册用户的好友关系,各自要能查询到自己的好友列表。最早想过用图数据库来进行好友关系存储,但身边没有成熟的案例,网上的资料也比较少。所以还是决定采用传统关系型数据库MySQL来进行设计。 好友关系,如果简单设计成一张表的话,随着注册用户的增多,好友关系势必会呈指数级增加,当系统中用户
阅读全文
posted @
2021-06-04 22:35
长江同学
阅读(804)
推荐(0) 编辑
生产环境MQTT消息响应缓慢的故障排查
摘要:生产环境的充电桩项目一直运行平稳,用户在H5页面上操作,扫描充电桩,而后可以支付,进入对应的界面可以控制该充电桩的放电、停电。 具体的控制流程为,用户在页面通过HTTPS协议与服务器进行交互,服务器接收到请求后,组装参数,发送消息到mqtt服务器(RabbitMQ),而后充电桩的Mqtt客户端即可收
阅读全文
posted @
2021-06-03 16:49
长江同学
阅读(1261)
推荐(0) 编辑