- 博客(20)
- 收藏
- 关注
原创 幂等请求
项目中请求如何做的幂等对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。重复的场景有可能是:黑客拦截了请求,重放前端/客户端因为某些原因请求重复发送了,或者用户在很短的时间内重复点击了。网关重发….本文讨论的是如何在服务端优雅地统一处理这种情况,如何禁止用户重复点击等客户端操作不在本文的讨论范畴。利用唯一请求编号去重你可能会想到的是,只要请求有唯一的请求编号
2020-12-08 20:58:24
734
原创 CAP和BASE理论
CAP 理论CAP 理论/定理起源于 2000 年,由加州大学伯克利分校的 Eric Brewer 教授在分布式计算原理研讨会(PODC)上提出,因此 CAP 定理又被称作 布鲁尔定理(Brewer’s theorem)2 年后,麻省理工学院的 Seth Gilbert 和 Nancy Lynch 发表了布鲁尔猜想的证明,CAP 理论正式成为分布式领域的定理。简介CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性)
2020-11-25 13:07:55
143
原创 解决elementui table合计不显示的问题
解决elementui table合计不显示的问题有时候需要在table的底部有合计,这时候官方给的是在table里设置,show-summary就可以了但是给table加了一个固定高度话,就没有了,打开控制台可以看到这个合计是存在的于是乎,在vue的生命周期updatedthis.$nextTick(() => { this.$refs['table'].doLayout();}) 还要给table里加ref=“table”可以不使用固定高度,用max-height没问题
2020-11-24 18:03:21
1222
1
原创 static关键字有5种用法
static关键字有5种用法说到static,静态变量和静态方法大家随口就来,因为他们在实际开发中应用很广泛,但他们真正在使用的时候会存在很多问题,而且它的使用不只那两种:静态变量静态方法静态代码块静态内部类静态导入接下来我们看一下这些用法。静态变量静态变量属于类,内存中只有一个实例,当类被加载,就会为该静态变量分配内存空间。跟 class 本身在一起存放在方法区中永远不会被回收,除非 JVM 退出。(方法区还存哪些东西可以看看:Java虚拟机运行时数据区域)静态变量的使用方式:【
2020-11-16 13:35:56
242
原创 List去除重复数据的五种方式
List去除重复数据的五种方式以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据1.使用LinkedHashSet删除arraylist中的重复数据LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事:删除重复数据保持添加到其中的数据的顺序Java示例使用LinkedHashSet删除arraylist中的重复项。在给定的示例中,numbersList是包含整数的arraylist,其中一些是重复的数字。
2020-11-16 13:11:11
2205
原创 Java String类 分析
Java String类 分析一、String类:想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Serializable,Comparable<String>,CharSquence{ /** The Value is used for character storage */ private final char value[];
2020-11-15 20:25:51
189
原创 高并发下的接口幂等性解决方案
高并发下的接口幂等性解决方案一、背景我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。例如:前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;发送消息,也应该只发一次,同样的短信发给用户,用户会哭的; 创建业务订单,一次业务请求只能创建一个,创建多个就会出大问题。二、幂等性概念幂等(idempotent、idempotence)是一个数学与计算机学
2020-11-15 20:12:10
111
原创 从Url中获取某一参数的参数值
从Url中获取某一参数的参数值下面代码时从url中获取参数名为name的参数值var getQuery = function(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return (r[2]); return null; };}
2020-11-15 16:31:26
414
原创 nginx刷新后404
解决方法在文件中的nginx.conf文件中修改,代码如下server { listen YYYY; //自己设置的端口号 server_name 192.168.XXX.XXX; //在黑窗口下ipconifg后出现的IPv4地址复制 location /{ root E:/website_wap/dist/; //项目打包后的路径 index index.html index.htm; try_files $uri
2020-06-19 14:43:28
446
原创 使用nvm安装/管理多个nodejs版本
使用nvm安装/管理多个nodejs版本前言ionic和angular版本更新比较快,老的项目和最新的项目对nodejs的版本依赖不同运行旧的ionic项目可能需要nodejs 6.x版本,运行新的项目需要8.x,如何同时安装多个nodejs版本是本文介绍的内容,之前在这里介绍过如何安装和卸载nodejs安装多版本之前,请先去控制面板卸载本机的nodejs下载nv...
2019-12-04 13:57:56
633
原创 数据库驱动包的选用
com.mysql.jdbc.Driver 是 mysql-connector-java 5中的 com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的1、JDBC连接Mysql5 com.mysql.jdbc.Driver: driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://...
2019-10-24 13:50:37
165
原创 企业架构的演变
0x01 写在前面的话这几年来,随着中国互联网的不断发展,各种新型技术和框架层出不穷。作为一名Java 软件开发工程师,在外企的这两年来,也许日子过得太过于安逸,导致不知外面世界已发生了怎样翻天覆地的变化。如今走出来,看到外面的世界,才发现自己的技术已经落后了好多。而近些年来,越来越多的线上线下培训机构也不断造就了越来越多的程序员,这就导致我们程序员这个行业所受到的压力和挑战也越来越大。但是我...
2019-10-20 11:00:32
320
原创 线程的生命周期
我们知道线程是操作系统能够进行运算调度的最小单位,在java中的线程其实就是对操作系统的中的线程进行了封装。我们今天就来说说Java线程的生命周期,也就线程的生老病死!Java的线程生命周期有六种状态:New(初始化状态)Runnable(可运行/运行状态)Blocked(阻塞状态)Waiting(无时间限制的等待状态)Timed_Waiting(有时间限制的等待状态)Termin...
2019-10-15 11:17:45
95
原创 经典问题之乐观锁和悲观锁及使用场景
悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java synchronized 就属于悲观锁的一种实现,每次线程要修改数据时都先获得锁,保证同一时刻只有一个线程能操作数据,其他线程则会被b...
2019-10-13 11:22:53
145
原创 深入浅出spring aop 核心概念
深入浅出spring aop 核心概念先给出一个比较专业的概念定义:Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。Joint point(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。Po...
2019-10-09 20:14:18
163
1
原创 JAVA8 十大新特性详解
JAVA8 十大新特性详解 前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : Loca...
2019-08-29 08:54:15
137
原创 抽象类与接口
抽象类与接口含有 abstract 修饰符 class 即为抽象类,抽象类不能创建实际对象,含有抽象方法的抽象类必须定义为 abstract class。抽象类可以说成是一种特殊的抽象类,接口中的所有方法都必须是抽象的,接口中的方法定义默认为 public abstract 类型,接口中的成员产量类型默认为 public static final。两者的区别:a. 抽象类可以有构造方法,接...
2019-08-29 08:43:15
267
转载 RPC
虽然现在非常火的RPC技术以SpringCloud和Dubbo(x)为主流,但是如果做接口调用,还是逃不了要用一些较传统的技术。前几天在做接口调用时恰巧用到了WebService的相关技术(8,9两节是真实的开发),正好都在这里写一写。1. RPC相关基础1.1 什么是RPC----| RPC(Rem...
2019-08-27 14:41:19
149
原创 单例模式
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3...
2019-08-24 15:31:54
72
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人