木子三金

JAVA JVM 程序 架构 框架 区块链


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

@RedisLock基于Redis的分布式锁注解

发表于 2019-12-16 | 分类于 实用工具 | 阅读次数:

背景:日常开发中分布式锁是一个常用的工具,通常我们都是手动在代码里获取-释放锁,我们每次都需要写重复的代码,且易出现锁忘记释放的情况。因此封装了一个基于Redis的分布式锁实现。

阅读全文 »

MySQL 加锁处理分析(转载)

发表于 2019-12-10 | 分类于 mysql | 阅读次数:

转载自何登成的 《MySQL 加锁处理分析》

由于原作者的博客图片无法展示,特转载并补充对应的原图。

背景

MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因。

注:MySQL是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍,都是基于InnoDB存储引擎,其他引擎的表现,会有较大的区别。

阅读全文 »

Feign官方文档翻译

发表于 2019-07-04 | 分类于 spring | 阅读次数:

Feign 让编写java http客户端变简单

Fegin是一个java调用HTTP的客户端binder,其灵感来自于Retrofit、JAXRS-2.0和WebSocket。Feign的首要目标是降低将Denominator统一的绑定到HTTP的复杂性,而无需关心是否为RESTfull.

阅读全文 »

自定义注解@Validated(兼容dubbo方法与普通方法)

发表于 2019-05-31 | 分类于 dubbo | 阅读次数:

背景:最近尝试在项目内使用dubbo validation,但是遇到了一些问题,具体描述请看:启用dubbo validation后hessian反序列化异常解决方案

阅读全文 »

启用dubbo validation后hessian反序列化异常解决方案

发表于 2019-04-26 | 分类于 问题记录 , dubbo | 阅读次数:

现象

启用dubbo参数验证,当在provider端开启验证validation=”true”。调用接口时,若接口参数为对象类型,对象属性验证失败,客户端会报org.hibernate.validator.internal.metadata.descriptor.ConstraintDescriptorImpl’ could not be instantiated异常的解决方案。

阅读全文 »

字符串匹配算法之KMP模式

发表于 2018-12-20 | 分类于 数据结构 | 阅读次数:

这篇文章主要是介绍KMP模式匹配算法,在正式介绍KMP之前我们先看一下普通模式匹配,由普通模式匹配在进一步的推导KMP模式会更容易理解。

阅读全文 »

关于String内的indexOf方法的一些疑问

发表于 2018-12-14 | 分类于 java | 阅读次数:

今天浏览了一下java里的String类,发现一个静态方法有点意思,就是我们常用的indexOf(String str)的底层实现,先看下代码调用链。

阅读全文 »

算法时间复杂度计算方法

发表于 2018-11-14 | 分类于 数据结构 | 阅读次数:

时间复杂度定义

在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n) = O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。

这样用大写O()来体现算法的时间复杂度的记法,我们称之为大O记法。

阅读全文 »

Restful Api 实战设计指南

发表于 2018-11-07 | 分类于 协议 | 阅读次数:

原文地址:Restful Api 实战设计指南

基本原则

关注点分离

关注点分离(Separation of concerns,SOC)是对只与“特定概念、目标”(关注点)相关联的软件组成部分进行“标识、封装和操纵”的能力,即标识、封装和操纵关注点的能力。是处理复杂性的一个原则。由于关注点混杂在一起会导致复杂性大大增加,所以能够把不同的关注点分离开来,分别处理就是处理复杂性的一个原则,一种方法。– 维基百科

  • 大问题拆分成个个小问题
  • 万能接口拆分成独立的小接口
阅读全文 »

ssh连接超时问题解决方案

发表于 2018-11-01 | 分类于 问题记录 , linux | 阅读次数:

ssh连接超时问题解决方案:
1.修改server端的etc/ssh/sshd_config
ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接 www.2cto.com
ClientAliveCountMax 3 #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应

阅读全文 »
12…4

木子三金

每天进步一点点!

36 日志
20 分类
58 标签
简书
© 2019 木子三金
京ICP备17015067号