背景:日常开发中分布式锁是一个常用的工具,通常我们都是手动在代码里获取-释放锁,我们每次都需要写重复的代码,且易出现锁忘记释放的情况。因此封装了一个基于Redis的分布式锁实现。
MySQL 加锁处理分析(转载)
转载自何登成的 《MySQL 加锁处理分析》
由于原作者的博客图片无法展示,特转载并补充对应的原图。
背景
MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因。
注:MySQL是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍,都是基于InnoDB存储引擎,其他引擎的表现,会有较大的区别。
Feign官方文档翻译
Feign 让编写java http客户端变简单
Fegin是一个java调用HTTP的客户端binder,其灵感来自于Retrofit、JAXRS-2.0和WebSocket。Feign的首要目标是降低将Denominator统一的绑定到HTTP的复杂性,而无需关心是否为RESTfull.
自定义注解@Validated(兼容dubbo方法与普通方法)
背景:最近尝试在项目内使用dubbo validation,但是遇到了一些问题,具体描述请看:启用dubbo validation后hessian反序列化异常解决方案
启用dubbo validation后hessian反序列化异常解决方案
关于String内的indexOf方法的一些疑问
今天浏览了一下java里的String类,发现一个静态方法有点意思,就是我们常用的indexOf(String str)的底层实现,先看下代码调用链。
算法时间复杂度计算方法
Restful Api 实战设计指南
原文地址:Restful Api 实战设计指南
基本原则
关注点分离
关注点分离(Separation of concerns,SOC)是对只与“特定概念、目标”(关注点)相关联的软件组成部分进行“标识、封装和操纵”的能力,即标识、封装和操纵关注点的能力。是处理复杂性的一个原则。由于关注点混杂在一起会导致复杂性大大增加,所以能够把不同的关注点分离开来,分别处理就是处理复杂性的一个原则,一种方法。– 维基百科
- 大问题拆分成个个小问题
- 万能接口拆分成独立的小接口
ssh连接超时问题解决方案
ssh连接超时问题解决方案:
1.修改server端的etc/ssh/sshd_config
ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接 www.2cto.com
ClientAliveCountMax 3 #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应