自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

arthur.dy.lee的专栏

你得到你想要的了么?

  • 博客(566)
  • 资源 (71)
  • 问答 (1)
  • 收藏
  • 关注

原创 Kafka架构原理(三)

本文介绍了整体架构(涉及到的名词如controller,broker,zk,log,topic,partition等)、网络模型,存储模型和文件系统,高可用模型及幂等,如何实现exactly-once

2023-05-03 17:10:56 2493

原创 Java性能优化

一、JVM内存模型多核时代的到来,基于高速缓存的存储交互很好的解决了处理器与内存之间的矛盾,也引入了新的问题:缓存一致性问题。在多处理器系统中,每个处理器有自己的高速缓存,而他们又共享同一块内存(下文成主存,main memory 主要内存),当多个处理器运算都涉及到同一块内存区域的时候,就有可能发生缓存不一致的现象。为了解决这一问题,需要各个处理器运行时都遵循一些协议,在运行时需要将...

2017-11-14 22:45:49 11001

原创 《从Paxos到zookeeper分布式一致性原理与实践》笔记

《从Paxos到zookeeper分布式一致性原理与实践》笔记一、概念ACID: Automaticy、consistency、isolation、 DurabilityCAP: consistency、 Availability、 Partition toleranceBASE: Basically Available、 Soft state、 Eventually consistent二、一致性

2017-09-21 23:12:34 14029 2

转载 基于Redis的分布式锁到底安全吗?

网上有关Redis分布式锁的文章可谓多如牛毛了,不信的话你可以拿关键词“Redis 分布式锁”随便到哪个搜索引擎上去搜索一下就知道了。这些文章的思路大体相近,给出的实现算法也看似合乎逻辑,但当我们着手去实现它们的时候,却发现如果你越是仔细推敲,疑虑也就越来越多。实际上,大概在一年以前,关于Redis分布式锁的安全性问题,在分布式系统专家Martin Kleppmann和Redis的作者antire...

2017-07-14 00:08:43 5015

原创 kafka常见问题QA(六)

kafka常见QA,kafka常见面试问题

2023-05-03 17:55:31 1940 1

原创 Kafka和其它中间件共同的优化(五)

kafka和其它中间件共同的优化

2023-05-03 17:47:39 882

原创 kafka快的原因(四)

kafka为什么这么快, 5个点:顺序读写、网络模型、存储原理、partition分片、日志压缩

2023-05-03 17:39:58 988

原创 kafka简介和使用场景(一&二)

文章分以下几个部分:kafka基础名词、使用说明、场景、原理、架构、快的原因、其它中间件共同的优化措施、面试QA等

2023-05-03 16:59:30 1134

原创 Raft一致性算法(精简和扩展)

⼀ 致性算法在构建可信赖的⼤规模软件系统中扮演着重要的⾓⾊。强领导⼈:和其他⼀致性算法相⽐,Raft 使⽤⼀种更强的领导能⼒形式。⽐如,⽇志条⽬只从领导⼈发送给其他 的服务器。这种⽅式简化了对复制⽇志的管理并且使得 Raft 算法更加易于理解。领导选举:Raft 算法使⽤⼀个随机计时器来选举领导⼈。这种⽅式只是在任何⼀致性算法都必须实现的⼼跳机制 上增加了⼀点机制。在解决冲突的时候会更加简单快捷。

2023-04-17 20:45:51 663

转载 Raft一致性算法(目前找到的最好的翻译)

Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。一项用户研究的结果表明,对于学生而言,Raft 算法比 Paxos 算法更加容易学习。

2023-04-17 19:25:02 101

转载 Java线程池实现原理及其在美团业务中的实践

线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。而本文描述线程池是JDK中提供的ThreadPoolExecutor类。降低资源消耗。

2023-03-20 19:03:42 214

转载 一个最不可思议的 MySQL 死锁分析

MySQL 死锁分析

2023-02-23 21:11:33 170

转载 epoll原理

epoll原理

2023-02-07 20:39:13 135

原创 Netty原理示图

Netty: Channel它表示一个开放的连接,进行IO操作。基本的 I/O 操作( bind() 、 connect() 、 read() 和 write() )依赖于底层网络传输所提供的原语。

2023-01-07 09:12:05 669

原创 CPU100%排查 & Java线程死锁

CPU100%排查 & Java线程死锁

2022-12-11 23:13:27 176

原创 秒杀设计逻辑

秒杀

2022-12-11 23:08:24 479

原创 高并发高可用

高并发高可用

2022-12-11 22:45:19 385

原创 《深入分布式缓存-从原理到实践》笔记

《深入分布式缓存-从原理到实践》笔记

2022-12-11 22:39:34 476

原创 java中几种常用枚举类的使用

java中几种常用枚举类的使用

2022-10-14 16:50:03 173

原创 MyBatis-Plus多节点多线程批量插入(insertBatch) 唯一主键ID冲突(Duplicate entry ‘xxxx‘ for key ‘PRIMARY‘)

mybatis plus 解决雪花主键重复问题

2022-09-21 17:40:41 1753

原创 解决数据库连接池HikariCP问题

解决HikariCP communications link fail问题

2022-06-21 10:27:31 4166

原创 java lambda表达式List<Bean>转Map<String,List<Bean>>或转Map<String,Bean>

java lambda表达式List<Bean>转Map<String,List<Bean>>或转Map<String,Bean>

2022-05-20 17:10:44 1366 1

原创 mybatis嵌套结果使用

mybatis嵌套结果查询写法

2022-05-10 00:47:47 858

原创 mac用brew安装hbase

mac下安装hbase

2022-05-03 22:41:19 1682 3

原创 Excel学习笔记

Excel培训学习笔记

2022-03-26 17:27:03 469

原创 datagrip连接mysql数据库失败

刚下载的datagrip连接mysql数据库失败,但navicat连接是正常的。

2022-01-29 17:09:12 9545 3

原创 UTCTimeUtils

import java.time.Instant;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.ZoneOffset;import java.time.ZonedDateTime;import java.time.format.DateTimeFormatter;public class UTCTimeUtils { private static final String .

2022-01-20 15:32:34 192

原创 redisson.yml配置备份

redisson.yml的singleServerConfig配置

2022-01-20 15:20:33 2575 1

原创 Mac 安装Mysql和Redis

Mac 安装Mysql和Redis一、Mysql安装brew install [email protected]添加环境变量echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> /Users/sh07093ml/.bash_profilesource ~/.bash_profile 启动brew services start [email protected]连接mysql -u root修改密码set password for r

2021-12-26 22:39:24 660

原创 centos7安装docker

#添加阿里源cd /etc/yum.repos.d/mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.reposudo yum clean allsudo yum makecache# 删除dockeryum remove doc

2021-02-09 21:59:26 164

转载 mybatis统计每条SQL的执行时间

方案一:切面编程@Aspect此方案主要是通过环绕切面的方式将mapper包下的接口方法,然后前后计算时间差即可。这就是典型的AOP知识,不过这种计算比较粗糙,但是也是个办法。具体方法如下:@Aspect@Component@Slf4jpublic class MapperAspect { @AfterReturning("execution(* cn.xbmchina.mybatissqltime.mapper.*Mapper.*(..))") public void logS

2021-01-30 16:45:30 2857

原创 JVM参数

分类 参数 默认值 描述 备注 通用 堆通用参数 -Xms128M 物理内存的1/64(<1GB) 设置java程序启动时堆内存128M。默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制。 生产环境 -Xms 与 -Xmx 最好一样,避免抖动 -Xmx256M 物理内存的1/4(<1GB) 设置最大堆内存256M。默认(MaxHeapFreeRatio参数可

2020-11-13 09:33:28 262

转载 领域驱动设计在互联网业务开发中的实践

领域驱动设计在互联网业务开发中的实践2017年12月22日作者: 文彬 子维文章链接12254字25分钟阅读至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD)。在互联网开发“小步快跑,迭代试错”的大环境下,DDD似乎是一种比较“古老而缓慢”的思想。然而,由于互联网公司也逐渐深入实体经济,业务日益复杂,我们在开发中也越来越多地遇到传统行业软件开发中所面临的问...

2020-11-01 00:58:49 223

转载 常见的Java 问题排查方法

常见的Java 问题排查方法以下是Java应用在运行时常见的一些问题,总结了运行时黑盒方式的一些排查方法,也希望看到的同学能给予补充,无论是补充碰到的问题,还是补充解决方法。类装载的相关问题 写过Java代码的同学估计都碰到过ClassNotFoundException/NoClassDefFoundError/NoSuchMethodException(还有一个常见的ClassCastException就不在这里说了)。 当碰到ClassNotFoundException/NoClassD..

2020-10-29 17:17:11 766

转载 看Hadoop底层算法如何优雅的将大规模集群性能提升10倍以上?【四】

目录一、前情概要二、背景引入三、问题凸现四、Hadoop的优化方案一、前情概要这篇文章给大家聊聊Hadoop在部署了大规模的集群场景下,大量客户端并发写数据的时候,文件契约监控算法的性能优化。看懂这篇文章需要一些Hadoop的基础知识背景,还不太了解的兄弟,可以先看看之前的文章:兄弟,用大白话告诉你小白都能看懂的Hadoop架构原理。二、背景引入先给大家引入一个小的背景,假如多个客户端同时要并发的写Hadoop HDFS上的一个文件,大家觉得这个事儿能成吗?明显不可以接受

2020-09-29 17:21:49 200

转载 Hadoop如何将TB级大文件的上传性能优化上百倍【三】

目录一、写在前面二、原始的文件上传方案三、大规模分布式系统对大文件上传的性能优化(1)Chunk缓冲机制(2)Packet数据包机制(3)内存队列异步发送机制四、总结一、写在前面上一篇文章,我们聊了一下Hadoop中的NameNode里的edits log写机制。主要分析了edits log写入磁盘和网络的时候,是如何通过分段加锁以及双缓冲的机制,大幅度提升了多线程并发写edits log的吞吐量,从而支持高并发的访问。如果没看那篇文章的同学,可以回看一下:大规模

2020-09-29 17:20:36 407

转载 大规模集群下Hadoop NameNode如何承载每秒上千次的高并发访问【二】

目录一、写在前面二、问题源起三、HDFS优雅的解决方案:(1)分段加锁机制+内存双缓冲机制(2)多线程并发吞吐量的百倍优化(3)缓冲数据批量刷磁盘+网络优化一、写在前面上篇文章我们已经初步给大家解释了Hadoop HDFS的整体架构原理,相信大家都有了一定的认识和了解。如果没看过上篇文章的同学可以看一下:《兄弟,用大白话告诉你小白都能听懂的Hadoop架构原理》这篇文章。本文我们来看看,如果大量客户端对NameNode发起高并发(比如每秒上千次)访问来修改元数据,此时

2020-09-29 17:18:18 1386

转载 兄弟,用大白话告诉你小白都能看懂的Hadoop架构原理【一】

一、前奏Hadoop是目前大数据领域最主流的一套技术体系,包含了多种技术。包括HDFS(分布式文件系统),YARN(分布式资源调度系统),MapReduce(分布式计算系统),等等。有些朋友可能听说过Hadoop,但是却不太清楚他到底是个什么东西,这篇文章就用大白话给各位阐述一下。假如你现在公司里的数据都是放在MySQL里的,那么就全部放在一台数据库服务器上,我们就假设这台服务器的磁盘空间有2T吧,大家先看下面这张图。现在问题来了,你不停的往这台服务器的MySQL里...

2020-09-29 17:03:12 199

原创 微信红包算法

红包算法思路随机,额度在0.01和(剩余平均值2)之间。例如:发100块钱,总共10个红包,那么平均值是10块钱一个,那么发出来的红包的额度在0.01元~20元之间波动。当前面3个红包总共被领了40块钱时,剩下60块钱,总共7个红包,那么这7个红包的额度在:0.01~(60/72)=17.14之间。注意:这里的算法是每被抢一个后,剩下的会再次执行上面的这样的算法这样算下去,会超过最开始的全部金额,因此到了最后面如果不够这么算,那么会采取如下算法:保证剩余用户能拿到最低1分钱即可。如果前面的人手气

2020-08-05 10:52:48 1005

原创 设计模式简单汇总

4.3、设计模式4.3.1 设计模式6准则:solid单一职责原则(Single Responsibility Principle,SRP)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。简单地说,就是保持单纯,别想那么多,做好一件事就好了。反过来,如果一个类承担的职责过多,就等于把这些职责耦合在一起开闭原则(Open Close Principle)对修改关闭,对扩展开放里氏替换原理(Liskov Substitution Principle)子类

2020-08-04 16:24:56 169

mybatis-generator中文注释并带分页-改进版3

jar包,直接替换eclipse->plugin下的 org.mybatis.generator.core_1.3.4.201608190045.jar包即可 如果版本不同的话,那么用外面的*.class文件找到相对应的目录替换jar包里的class就行。 这里也放了未编译的*.java文件供参考。里面配置是mysql, 使用的话,可以参数博客: http://blog.csdn.net/paincupid/article/details/52645610

2017-07-19

mybatis-generator中文注释并带分页-改进版2

jar包,直接替换eclipse->plugin下的 org.mybatis.generator.core_1.3.4.201608190045.jar包即可 如果版本不同的话,那么用外面的*.class文件找到相对应的目录替换jar包里的class就行。 这里也放了未编译的*.java文件供参考。里面配置是mysql, 使用的话,可以参数博客: http://blog.csdn.net/paincupid/article/details/52645610

2017-07-08

springFramwork-5.0.0.M5

spring framework -5.0.0.M5 jar包: spring-beans-5.0.0.M5,spring-context-5.0.0.M5,spring-core-5.0.0.M5等.

2017-04-19

qshell-v1.8.1

七牛云上传批量上传用的,压缩包里包括:Linux (32、64位,arm平台) Windows (32、64位) Mac OSX (32、64位)

2016-12-30

Packt.Java.EE.7.Performance.Tuning.and.Optimization

Packt.Java.EE.7.Performance.Tuning.and.Optimization.pdf 英文版的哦

2016-12-26

Java+Performance+Tuning

Java+Performance+Tuning 作者:Jack Shirazi

2016-12-26

mybatis-generator中文注释并带分页

jar包,直接替换eclipse->plugin下的 org.mybatis.generator.core_1.3.4.201608190045.jar包即可 如果版本不同的话,那么用外面的*.class文件找到相对应的目录替换jar包里的class就行。 这里也放了未编译的*.java文件供参考。 使用的话,可以参数博客: http://blog.csdn.net/paincupid/article/details/52645610

2016-09-24

jrebel-6.4.3-crack.rar

jrebel-6.4.3,eclipse的插件,可以不重启tomcat的情况下,动态的添加方法,还支持远程调试。

2016-08-16

MyBatis Generator -1.3.3 - 增强版

MyBatis Generator -1.3.3 - 增强版,带分页和中文注释

2016-07-26

mysql-connector-odbc-5.3.6-win32.msi

power designer 64位的不支持mysql连接,需要安装mysql-connector-odbc-5.3.6-win32.msi

2016-07-22

SQLyog.Ultimate.v11.1.1.0_64bit

SQLyog.Ultimate.v11.1.1.0_64bit

2016-06-15

代码覆盖率插件 eclipse clover3

代码覆盖率插件 eclipse clover3,内更新使用说明。

2016-05-17

Effective.Java.Joshua.Bloch.第二版文字版无注释

Effective.Java.Joshua.Bloch.第二版文字版无注释

2016-04-26

effective_Java_Second_Edition英文原版文字版

effective_Java_Second_Edition英文原版文字版 超清

2016-04-26

深入理解Java虚拟机(第二版)【手打版】

深入理解Java虚拟机(第二版)【手打版】

2016-04-25

fastjson-1.2.5

fastjson-1.2.5 源码,fastjson-1.2.4源码,还有fastjson-1.2.4.jar

2015-12-22

SpringMVC+Mybatis

SpringMVC+Mybatis+Maven+Bonecp+EclipseSTS, Mapper使用MapperScannerConfigurer方式

2015-09-26

starUML之时序图

里面有starUML时序图画法,有实例,刚开始用的时候,找不到方法参数的显示,在这里面也有的。

2015-09-21

visualvm-1.3.8

visualvm 1.3.8 多国语言版,支持中文。下载解压后,记得在visualvm_138\etc目录下,修改visualvm.conf文件,将visualvm_jdkhome前面的#注释去掉,然后加入你自己JDK的绝对变量visualvm_jdkhome="D:\Program Files\Java\jdk1.8.0_45"。最后在D:\Program Files\visualvm_138\bin下执行exe文件就行了。

2015-08-12

javascript语言精华原书代码

Douglas Crockford写的《JavaScript语言精粹》一书的原书代码。

2015-06-24

SONY-索尼-SRS-RA5000使用说明书

SONY_索尼_SRS-RA5000使用说明书

2022-11-07

TiDB in action.pdf 介绍Tidb原理和最佳实践

TiDB in action, TiDB-in-action, 原网站url链接https://book.tidb.io/。介绍tidb的一些原理和最佳实践。由于想要离线看,所以生成pdf,原网站pdft的链接失效,无法下载。本pdf导出时间为 2022.10.16

2022-10-16

JVM分享,包含JVM的优化目标、优化原则、JVM组成、内存区域划分、垃圾回收算法、垃圾回收器、FullGC触发时机等等.

JVM的内容分享,包含JVM的优化目标、优化原则、JVM组成、内存区域划分、垃圾回收算法、垃圾回收器、FullGC触发时机、对象布局、元空间存储、GC调优

2022-05-06

RocketMQ 分享。目录:RocketMQ作用和特性、架构、存储模型、高可靠、事务、延时消息、消息重试、消息堆积能力

RocketMQ 分享。目录:RocketMQ作用和特性、架构、存储模型、高可靠、事务、延时消息、消息重试、消息堆积能力

2022-04-15

阿里idea代码格式化文件Aliyun Code Conventions.xml

idea阿里代码格式化文件Aliyun Code Conventions.xml,通过idea->editor->scheme中的 Import Scheme-> IntelliJ IDEA code style XML导入

2021-01-11

mariadb-10.4.6和编译它所需要的依赖

编译mariadb-10.4.6和编译它所需要的依赖。cmake-3.14.5.tar.gz libevent-2.1.10-stable.tar.gz mariadb-10.4.6.tar.gz mysql_install_db.rar。具体方法详见:https://blog.csdn.net/paincupid/article/details/96354655

2019-07-19

sslscan-1.11.0-rbsec.tar.gz

sslscan-1.11.0-rbsec.tar.gz sslscan-1.11.0-rbsec.tar.gz

2019-07-19

sslscan-1.10.2-4.el7.psychotic.x86_64.rpm

sslscan-1.10.2-4.el7.psychotic.x86_64.rpm sslscan-1.10.2-4.el7.psychotic.x86_64.rpm

2019-07-19

mariadb-10.4.6.tar.gz

mariadb-10.4.6.tar.gz 有时候会有下载不下来的情况,所以分享到这里了。

2019-07-08

mariadb-10.3.16.tar.gz

mariadb-10.3.16.tar.gz 有时候会有下载不下来的情况,所以分享到这里了。

2019-07-08

centos7复制虚拟机后ssh无法登陆

vmware: 解决centos7复制虚拟机后ssh无法登陆问题,复制sshd_config文件到 /etc/ssh文件夹下即可。

2019-06-09

openssl+openssh离线安装包

openssl+openssh离线升级包, openssl 1.0.2s, openssh-8.0, centos7.2

2019-06-04

openssl-openssh.rar

openssl+openssh离线升级包, openssl 1.0.2s, openssh-8.0, centos7.2

2019-06-04

spring-IOC-AOP调用大致过程(源码分析)

spring version: 5.0.0; jdk: 1.8 IOC大致调用顺序(IOC调用的AOP标签解析)

2018-08-12

coreJava240问与答面试题

240-core-java-interview-questions-and-answers,coreJava240问与答面试题. 不过是英文的哦,想下载的朋友要注意了。1) what are static blocks and static initalizers in Java ? .......................................................... 9 2) How to call one constructor from the other constructor ? ............................................... 9 3) What is method overriding in java ? ........................................................................................ 9 4) What is super keyword in java ? ................................................................................................. 9 5) Difference between method overloading and method overriding in java ? ............... 9 6) Difference between abstract class and interface ? ............................................................ 10 7) Why java is platform independent? ................................................................................... 10 8) What is method overloading in java ? .............................................................................. 10 9) What is difference between c++ and Java ? ................................................................. 10 10) What is JIT compiler ? .............................................................................................................. 10

2018-04-20

atom-amd64-1.25.0.tar.gz

atom-amd64-1.25.0.tar.gz, 这个是直接解压的,不用安装。

2018-03-19

atom-amd64-1.25.0.deb

atom-amd64-1.25.0.deb 国内下载很慢,特下载下来,下载能快点,版本是1.25.上传时间:2018.03.18

2018-03-18

ubuntu安装mysql,以及mysql的主从备份

ubuntu安装mysql,以及mysql的主从备份, ubuntu版本: 17.04

2018-03-14

zookeeper-3.4.10自配置

windows下伪集群, 解压目录:D:\ProgramData\zookeeper-3.4.10\zk1

2017-07-20

zookeeper-3.4.10.tar.gz

zookeeper-3.4.10.tar.gz

2017-07-19

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除