3 某工程师$

尚未进行身份认证

Java Python 未来区块链? 一步一步慢慢来

等级
TA的排名 5w+

REPEATABLE-READ隔离级别 事务中无法读到其它事务提交了的最新数据

前言:业务要求一个简单的并发控制,使得一条数据只被确认一次,我的方案是 悲观锁,就是在事务中先对数据行加锁(MySQL InnoDB 行锁基于索引),判断是否已经确认过,未确认的情况下确认,已确认则事务提交释放锁。代码写完,结果发现未生效,就开始了满脑子问号的排查过程。业务代码结构如下: //不要这么做 //一没对异常进行处理 //二...

2020-01-18 14:51:16

Rocket MQ写入消息报错: service not available now, maybe disk full

前言:测试服的一台kafka好久没有接收到消息了,看了下日志,maybe disk full。。。。。问题分析:提示很明确嘛,磁盘占用问题。想来配置broker的时候有个占比参数diskMaxUsedSpaceRatio=75%,应该是说 磁盘占用到这个比例就开始报警了。一开始我以为是 消息数据占到了磁盘的75%,df -h 命令 看下磁盘的占用情况storePathRoot...

2019-12-09 19:24:06

一次OOM故障分析记录:HeapByteBuffer byte[] 占用了大量内存

现象:工作时遇到某个服务老是频繁重启,日志报错为OOM分析:出现OOM是因为整个堆内存不够用了,此时JVM首先尝试扩展更多的空间,其次GC尝试回收内存,前两种方法无果的情况下只能报OOM并退出 可能的情况:内存不够、内存泄漏尝试解决问题的步骤:加上JVM参数-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath= ,设置当出现OO...

2019-11-22 17:42:28

《Java性能优化权威指南》读书笔记(脑图)

2019-10-12 17:01:51

Ubuntu sudo:must be setuid root,失手改了usr目录的权限,在机房的血泪恢复全记录

前言:失手给了用户账号 /usr 目录的权限,结果 sudo 的时候报sudo:must be setuid root....,里面东西都部署好了,不想重装系统啊。遂,跑到机房一番挣扎,成功恢复。在恢复的过程中,发现很多的教程都只说了一部分,照着执行有很多坑。所以,试图用这篇讲解全部过程,并指出需要注意的地方。一、进入Ubuntu Recovery模式其实就是在进入系统前,这个页面上...

2019-09-12 10:46:14

Canal监听MySQL变化、将数据投递RocketMQ,并使用Java客户端消费MQ消息,部署、编码过程笔记

前言:最近项目需要监听MySQL数据变化,并将变化同步到ES中,自己捣鼓了下,利用了Canal、RocketMQ走通了流程,写个笔记记录下过程。一、Mysql开启bin log,Canal部署参考Canal官方文档https://github.com/alibaba/canal/wiki/QuickStartexample/instance.properties 部分配置说明:...

2019-08-22 16:29:44

《研磨设计模式》读书笔记之:桥接模式、访问者模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。桥接模式(Bridge):几点解释:桥接模式的本质在于 分离抽象与实现。 Java中的接口的作用在于 封装隔离,和桥接模式不谋而合。 我们在Java中面向接口编程,所以 Java中无处不桥接。访问者模式(Visitor):几点解释:访问者...

2019-07-31 17:35:14

《研磨设计模式》读书笔记之:装饰器模式、职责链模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。装饰器模式(Decorator):几点解释:装饰器模式的本质在于,透明的给对象增加新的功能,并且这些功能可以灵活的组合和增减。 如果没有了那个抽象类,其实就和代理模式的结构是一致的了,二者的区别已经在前面代理模式说过了。 装饰对象会持有一个实际的对...

2019-07-31 16:56:14

《研磨设计模式》读书笔记之:备忘录模式、享元模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。备忘录模式(Memento):几点解释:备忘录模式的目的在于在不破坏对象封装性的前提下,保存对象的部分或者全部的数据到对象之外,用于在需要的时候恢复对象到某一个备忘录的状态。 实现方式为 创建一个私有的内部类用于保存对象的数据,这个内部类会实现一个 ...

2019-07-31 15:55:43

《研磨设计模式》读书笔记之:策略模式、状态模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。策略模式(Strategy):几点解释:多个if、elif 相连的代码我们实际开发中肯定经常遇到,如果 if、elif的方法体都很大,那就可以考虑使用策略模式,抽象出统一的接口,并将方法体的逻辑剥离出来封装为接口的不同实现类。这样做扩展性得到了提高。...

2019-07-30 11:24:09

《研磨设计模式》读书笔记之:组合模式、模板方法模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。组合模式(Composite):几点解释:树形结构中有叶子节点,组合节点(包含其他节点),组合模式通过抽象出一个高层的父类,来对外提供统一的外观。这样,客户端就可以使用同一个引用类型来操作不同的节点对象。抽象父类中集合了所有类型的子类节点所需要的功能,...

2019-07-29 16:19:10

《研磨设计模式》读书笔记之:命令模式、迭代器模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。命令模式(Commad):几点解释:命令模式中分为三个角色:Invoker、Commad、Receiver。客户端调用Invoker,Invoker持有Commad对象并转调其对应方法,而Commad持有Receiver对象并转调其对应方法。因此这三层...

2019-07-29 12:21:04

《研磨设计模式》读书笔记之:代理模式、观察者模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。代理模式(Proxy):几点解释:代理类实现了和原始类相同的接口,并且持有原始类的一个实例。客户端使用的是代理类的实例,代理类再向原始类实例发起相应的调用。这样就可以在调用原始类实例的方法前后做一些控制。 本质:控制对象的访问。也可以增添一些功能。...

2019-07-28 17:50:13

《研磨设计模式》读书笔记之:生成器模式、原型模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。生成器模式(Builder):几点解释:标准的构建器分为 Director和Builder 两个部分。Director中封装了相对固定的构建步骤,而变化的部分封装到具体的 Builder对象中。Director在执行具体的构建步骤时,会在需要的时候从...

2019-07-26 15:12:10

《研磨设计模式》读书笔记之:工厂方法模式、抽象工厂模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。工厂方法模式(FactoryMethod):几点解释:简单工厂是由客户端调用静态方法得到具体实现的一个引用;工厂方法模式中的工厂方法一般不提供给客户端使用,这也是图中声明为 protect 的原因,由具体的子类来实现工厂方法,返回一个具体对象的引用,这...

2019-07-26 11:01:52

《研磨设计模式》读书笔记之:适配器模式、单例模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。适配器模式(Adaptor):几点解释:本质:功能已经实现了,但是接口不匹配,中间加一层适配器类,通过转调的方式,将已有的功能匹配到特定的接口上。 客户端使用的是 接口A, 功能A,同时已经存在了功能B,只是接口和客户端使用的 A接口不一致。此时,不...

2019-07-25 16:30:15

《研磨设计模式》读书笔记之:简单工厂、外观模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。简单工厂:几点解释:客户端通过调用 Factory.createAImpl() 方法来创建A的实例 工厂一般只需要一个,不需要有实例,所以将构造方法设为私有,不允许创建实例 Factory.createAImpl() 可以带参数,通过传入不同的参...

2019-07-25 13:22:36

MySQL系列-优化之explain执行计划详解

https://blog.csdn.net/ufo___/article/details/80951869#commentsedit

2019-07-23 17:18:23

记一次 Spring Boot 中 @Transactional事务中使用内置锁限制总数失效的BUG

前言:业务需要,最多只能绑定5个,目前不考虑集群,单体服务下的内容第一版代码:@Transactional(rollbackFor = {CommonException.class}, propagation = Propagation.REQUIRED) public Object bindCommonUsedPatient(CommonUsedPatientRequest c...

2019-07-19 17:53:36

转:Ubuntu下查看实时网络流量的几种方法

原文链接:https://blog.csdn.net/weixin_39198406/article/details/79267687#commentsedit本帖总结了ubuntu下常用的网络查看/监控工具,包括nethogs,ethstatus,bmon,Netspeed。1. nethogsnethogs可以查看实时进程网络占用。安装: sudo apt install net...

2019-06-25 18:28:59

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。