自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

topsion的博客

技术生活的分享与收藏

  • 博客(48)
  • 资源 (5)
  • 收藏
  • 关注

原创 Spring为什么加了事务却没生效

Spring 事务传播机制 ​ Spring针对事务的管理是通过动态代理实现的,那么事务要进行传播首先必须要是被代理的方法之间,这是Spring事务传播的前提。比如:如果在同一个service里两个方法:方法A,方法B上都加了Transactional()并且用方法A直接调用了方法B此时方法B上的注解Transactional并不生效(具体原因会新增文章说明跟动态代理的机制有关)。//...

2019-11-26 10:22:10 236

原创 5. MySQL基于索引的优化

建表语句如下:mysql> create table T (ID int primary key,k int NOT NULL DEFAULT 0, s varchar(16) NOT NULL DEFAULT '',index k(k))engine=InnoDB;idks1001‘aa’2002‘bb’3003‘cc’...

2018-12-14 23:18:37 154

原创 4.MySQL索引初探之索引数据结构

经常听到别人讲数据库就像书的目录一样,是为了提高查询效率,那么区别又是什么? 一、索引的常见模型1. 哈希表2. 有序数组3. 搜索树(InnoDB采用的是N叉B+树InnoDB引擎使用的数据结构后边重点介绍)二、各模型分析1.哈希表模型图解如图所示:跟java中的hashMap数据结构一致(1).图中,User2 和 User4 根据身份证号算出来的值...

2018-12-08 17:05:39 345

翻译 番茄架构-Tomato Architecture

好的架构应该是适合的而不是流行的

2023-07-01 23:44:58 182

原创 docker里的mongo error: WT_ERROR: non-specific WiredTiger error“}解决方法

docker mongodb

2023-02-21 10:08:44 949

原创 深入理解JVM-Jvm垃圾回收二三事

了解jvm中的GC实现

2022-06-02 11:11:38 212

原创 关于写博客

blog

2022-05-03 22:38:24 575

原创 消除if-else之为Enum添加行为实现策略模式

枚举类实现策略模式

2022-02-16 16:52:21 155

原创 利用Hexo GitHub Page和 travis CI搭建播客

最新,github pages hexo travis CI搭建blog问题说明

2022-01-13 21:42:01 425 2

原创 Mysql执行计划另外一个工具optimizer trace

在 MySQL 5.6 及之后的版本中,我们可以使用 optimizer trace 功能查看优化器生成执行计划的整个过程。有了这个功能,我们不仅可以了解优化器的选择过程,更可以了解每一个执行环节的成本,然后依靠这些信息进一步优化查询。举例SET optimizer_trace="enabled=on";SELECT * FROM person WHERE NAME >'name84059' AND create_time>'2020-01-24 05:00:00';SELECT *

2021-12-16 11:58:58 715

原创 为什么SOLID原则仍然是现代软件架构的基石

概述最近20年软件设计发生了天翻地覆的变化,但是SOLID原则至今仍然是软件设计的最佳实践。SOLID 原则对于对于创建高质量软件是久经测试的标题。但是在现代多范式编程(函数式编程等)和云计算兴起的年代,它依然能够坚挺吗?我将通过如下文章解释SOLID代表了什么,为什么它依然适用现代软件,并且分享一些例子来解释。什么是SOLIDSOLID是Robert C. Martin在2000年提取出来的一系列原则。它被建议去作为面向对象(OO)编程质量的特殊思考方式。总得来讲SOLID在这几个方面:代码如何切

2021-11-28 23:19:53 359

原创 字段注入和构造器注入同时存在Mockitio不能mock字段注入的bean

问题描述混合使用字段注入和构造器注入后,当采用mockitio来进行mock字段注入的bean时该字段一直为null代码示例private final ServiceA serviceA@Autowiredprivate ServiceB serviceBpublic CurrentService(ServiceA serviceA){ this.serviceA = serviceA}上述示例的中的ServiceB在使用mockitio 测试想要stub掉serviceB时一直会空

2021-09-16 15:44:38 1179

原创 开发工具实践

Idea2020.3出现Cannot resovel symbol '***' 但是该类实际存在描述解决方法描述Idea2020.3出现Cannot resovel symbol ‘***’ 但是该目标类文件实际存在。解决方法如图:File -> Invalidate Caches / Restart

2021-05-28 11:13:41 74

原创 袁隆平院士去世感想

今天听闻噩耗,袁隆平院士我们称之为袁老去世了享年91岁,朋友圈也随机炸锅了,大家都在缅怀,悼念。不得不说袁老对人类的贡献是伟大的,他是一个高尚的人,纯粹的人,脱离了低级趣味的人。找到了能够为之奋斗一生的事业,并在历史的篇章中留下了属于自己的篇章。我虽然还在自己家的一亩三分地上挣扎,但是偶尔还是会仰望星空,怎么说呢保持激情,不要锤头丧气就是很好的生活状态。...

2021-05-22 16:27:34 13734

原创 Netty中的Reactor实现

一. 各种IO对应的实现BIO:Thread-Per-ConnectionNIO:ReactorAIO: Proactor二. I/O多路复用(技术术语:Reactor):当多条连接共用一个阻塞对象后,进程只需要在一个阻塞对象上等待,而无需再轮训所有连接,常见的实现方式有select,epoll,kqueue等。当某条连接有新的数据可以处理时,操作系统会通知进程,进程从阻塞状态返回,开始进行业务处理。Reactor是一种开发模式,Reactor中文翻译为:反应堆。不是物理上的核反应堆,

2021-05-15 21:13:19 192

原创 Elasticsearch 踩坑记之深度分页

问题原因用from+size的话,from + size 默认不能超过1万条数据。如采用如下查询语句:GET /_search?size=5&from=10000会报错。使用scroll的话,尽管能读取许多数据,但是查询出来的结果都是无序的。解决方法对于深度分页,到底有没有比较理想的解决方案,既能拉取比较多的数据,拉取的数据也都是有序的?那么你可以了解下search_after。参考链接https://discuss.elastic.co/t/search-after-in-s

2021-02-20 13:43:43 156

原创 关于博客更新

博客同步更新以前写好一篇博客,是几个平台相互copy。原来可以一键同步发布,操作方式

2021-02-20 13:34:18 84

原创 缓存雪崩,缓存击穿,缓存穿透都是什么?

一. 缓存雪崩“雪崩来临的时候没有一片雪花是无辜的”。缓存雪崩就是大范围甚至于整个redis提供的缓存服务不可用了,进而导致所有的请求都直接到了数据库,甚至于击垮整个服务链路。造成整个服务不可用。出现原因:给缓存设置了过期时间,且大范围的缓存数据的过期时间一致。redis服务宕机。解决方案:提前预案:给redis过期时间加随机值预防大面积的缓存同时过期失效。redis集群高可用可用,哨兵机制。兜底方案:3. 服务熔断,服务降级。监控到缓存服务不可用时直接返回,或者限制流量

2020-11-05 00:44:59 241

原创 四年仍是菜鸡

写代码工作已经四年了,今年有幸和郑大大在一起工作。第一个OKR已经过去了,聊了一下暴漏出来自己的在通往一个专业的coder途径上需要的待改进项。勤思考,多问问why,掌握主动思考才能更加专注于某个技术或者业务中去,才会对技术或者业务有更深入的了解。“Talk is cheap. Show me the code.” get到一门技术点,能够尽可能使用现有资源去实现它或者能写出一个详尽的可行的技术文档。加强技术文档的输出,能够有全局的技术文档总结输出学会使用google,多看看英语技术文档。《cle

2020-10-14 23:14:00 70

原创 慢sql排查流程

查看数据库服务慢查询日志是否开启show variables like 'slow_query_log';on:开启 off:关闭开启慢查询set global slow_query_log=on;设置没有开启索引的SQL语句记录到慢查询日志set global log_queries_not_using_indexes=on;设置超过多久时间的sql记录到慢查...

2020-03-16 17:39:43 1312

原创 jar包发布到maven依赖的本地仓库

命令:mvn install:install-file -Dfile=E:\workcode\demo\demo.jar -DgroupId=com.demo -DartifactId=demo -Dversion=0.0.6 -Dpackaging=jar命令解释-Dfile=E:\workcode\demo\demo.jar 本地的jar包DgroupId=com.demo 要发布...

2020-02-16 13:34:00 185

原创 class.forName()和classLoader的区别

class.forName()和classLoader的区别Class.forName 和 classLoader都可以对类进行加载。ClassLoader就是遵循双亲委派机制调用启动类的类加载器:通过一个类的全限定名来描述此二进制字节流。获取到二进制流后放入jvm当中。Class.forName()实际上也是调用ClassLoader来实现的。区别Class.forName()会对加载...

2020-01-13 08:36:40 186 1

原创 centos在线安装docker-compose

参考链接https://www.cnblogs.com/YatHo/p/7815400.html

2019-10-08 22:41:05 168

原创 阿里ecs上利用docker安装redis集群遇到的错误

搭建链接执行第三步创建docker容器时:for port in `seq 7000 7005`; do \ docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} \ -v /data/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf ...

2019-04-07 11:03:28 324

原创 java并发包java.util.concurrent提供的基础工具类

java并发包java.util.concurrent提供的基础工具类 一. 同步结构提供了比synchronized更加高级的同步结构:countDownLatch、CyclicBarrier、Semaphore等,可以实现更加丰富的多线程操作。Semaphore:作为资源控制器限制同时进行工作的线程数量,java版本的信号量实现。通过Semaphore实现车站调度demo...

2019-03-13 22:33:07 307

原创 mysql如何做到高并发读写之MVCC

MVCC(Multi Version Concurrency Control):多版本并发控制。该概念牵扯到InnoDB的锁的概念:InnoDB包含两类锁:1. 共享锁(读锁) 2.排他锁(写锁)行锁级别意向共享锁(表读锁)4. 意向排他锁(表写锁)意向共享锁和意向排他锁都是InnoDB默认加上的。读读之间不互斥,读写互斥,写写互斥。InnoDB行锁是通过给索引上的索引项加锁来实现...

2019-03-12 13:39:15 1009

原创 关于消息队列使用过程中的问题

为什么使用消息队列?解耦,异步,削峰消息队列有什么缺点?系统可用性降低RabbitMQ如何保证高可用,基于主从模式。RabbitMQ有三种模式:单机模式,普通集群模式,镜像集群模式 (高可用)镜像集群模式高可用:创建的queue无论是数据还是queue里的消息都会存在于多个实例上,就是说,每个RabbitMQ节点都有这个queue的一个完整镜像。包含queue的全部数据的...

2019-02-26 23:13:32 157

原创 6.MySQL出现选错索引的情况

一. 设置MySQL慢查询日志输出set long_query_time = 0; -- 开启慢查询日志记录select * from t force index(a) where a between 10000 and 20000; -- 强制走索引二. 出现选错索引的情况因为估算扫描行数付出的代价选错索引优化器的逻辑:优化器选择索引的目的,是找到一个最优的执行方案,并用最小的代价...

2019-01-09 00:59:57 632

原创 装修记录

装修记录 记录起始日期:2019-01-06一、金额清单项目金额状态支付日期备注物业费552.66已支付2018-12-30一个季度固定产权费160已支付2018-12-30装修押金2000已支付2019-01-06交给物业装修订金2000待支付水电完工6000待支付瓦工完工11500待支付...

2019-01-07 00:14:45 307

原创 java中Synchronized和ReentrantLock基本总结

java并发基本总结java8 总结并发知识含demo一、多线程的基本概念什么是线程,跟进程什么区别?一个程序可以同时执行多个任务,每个任务即为一个线程(Thread)。同时运行一个以上线程的程序称为多线程程序(multithreaded)。多线程与多进程的本质区别在于,每个进程拥有自己的一整套变量,而线程则共享数据。与进程相比线程更轻量级。创建线程的方式实现Runnabl...

2018-12-29 23:19:16 726

原创 3.事务隔离级别

一. ACID解释A: Atomicity 原子性C: Consistencey 一致性I: Isolation 一致性D: Durability 持久性二. 事务隔离级别读未提交(read uncommited)一个事务还未提交,它的更改可以被其他事务读到。读提交(read commited)只有一个事务提交了后,它的更改才可以被其他事务读到。可重复读(repeatable r...

2018-11-29 23:52:10 186

转载 MyBatis不能绑定xml:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

临睡前解决了一个问题:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)检查以下配置:1:检查xml文件所在的package名称是否和interface对应的package名称一一对应 我主要是mapper的xml所在包结构跟对应的接口不匹配。2:检查xml文件的namespac...

2018-11-27 09:03:04 219

原创 2. MySql更新语句执行过程redolog和binlog

一句update的语句:Update T set C=c+1 where id = 2;和查询语句一样会走一遍如下的流程:  与查询语句不一样的是,更新语句设计上有两个重要的模块:redo log 和 binlog一、重要日志模块: redo log InnoDB引擎特有的日志Write-Ahead Logging(WAL技术)它的关键点就是先写日志,再写磁盘,也就是先...

2018-11-25 20:14:53 1120

原创 1.MySQL基础架构执行流程

MySQL的架构示意:MySQL大体分为两层:Server 层和存储引擎层server层: 连接器,查询缓存,分析器,优化器等,涵盖MySQL的大多数核心服务功能,一级所有内置函数(如日期,时间,数学和加密函数等),所有夸存储引起的功能都在这一层实现,比如:存过,触发器,视图等。存储引擎负责数据的存储和提取:innoDB,MyISAM,Memory等 MySql5.5.5版本开始默认为...

2018-11-25 20:06:48 2596

原创 java方法之间参数传递(java 程序设计语言对对象采用的是引用调用吗)

java方法之间参数传递基础类型值传递public static void tripleValue(double x){ x = 3*x;}double value = 10;tripleValue(value);System.out.println("value is:"+value); //value is:10调用tripleValue时,x仅仅是value的...

2018-11-11 21:33:49 643

原创 Your current PostCSS version is 5.2.18, but autoprefixer uses 6.0.23. 解决方法

问题:Your current PostCSS version is 5.2.18, but autoprefixer uses 6.0.23. Perhaps this is the source of the error below.本身不是搞前端的没用过node百度了半天没结果,最后翻墙google到的解决方法。问题原因 PostCSS与autoprefixer版本不一致 ,安装 5....

2018-07-01 13:59:10 4811

原创 java并发技术学习总结

java中的锁分类公平锁/非公平锁可重入锁独享锁/共享锁乐观锁/悲观锁 乐观锁的一种实现方式-CAS(Compare and Swap 比较并交换)分段锁偏向锁/轻量级锁/重量级锁自旋锁以上各种锁的概念及其说明:锁分类及其说明...

2018-06-26 22:23:16 117

原创 mac下使用idea2018版本遇到的问题

mac下使用idea2018版本遇到的问题在mac下载了idea2018版本,结果springMVC项目死活启动不起来,每次启动起来也只是tomcat启动了,并没有加载spring,项目本身是没有问题的,最后降低tomcat的版本也不行,然后想到了降低idea版本,降成了idea2017果然就好了。 新版本没稳定前还是得慎用。...

2018-06-21 00:01:59 1590

原创 java面试题及部分答案整理

谈谈你对java体系的理解?“java是解释执行”,这句话是正确的吗? java底层有jvm(java虚拟机)来兼容不同的操作系统,java运行前会编译成jvm可以识别的字节码我们常说的class文件,然后由jvm来解释执行。请对比Exception和Error,运行时异常与一般异常有什么区别? Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ...

2018-05-27 23:56:45 407

原创 spring阅读源码后的个人理解

spring阅读源码后的个人理解       spring是java web的一套开源框架,可以理解为一个轻量级容器。它的核心有二分别是:IoC,AOP。        IoC(Inversion of Control):控制反转,之前很不理解“控制反转”的意思,现在我给它个通俗的解释,其实就是将我们的bean对...

2018-05-27 23:55:53 1789

mac下的redis可视化客户端即rdm

mac下的homebrew目前好像不能直接安装rdm,所以只能单独去下载rdm来方便监控和操作redis

2018-11-11

redis客户端windows

命令行下查看,操作redis的值很麻烦,一些列的命令,利用这个可视化redis客户端可以很方便的查看和修改redis里的值。

2018-11-11

visiual studio2010

文件较大所以用的是网盘,文件里有网盘地址,如果失效请评论。

2018-07-01

sublime3 Mac版本

sublime3 for mac 破解版,安装后打开时请不要进行更新,更新后会造成需要进行重新输入license。

2018-07-01

计算机硬件基础知识

关于计算机硬件技术 可以帮助我们在开发方面对于其原理更加透彻的理解!

2014-07-02

空空如也

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

TA关注的人

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