蓝之刃
码龄11年
关注
提问 私信
  • 博客:371,824
    问答:481
    372,305
    总访问量
  • 136
    原创
  • 1,358,275
    排名
  • 52
    粉丝
  • 0
    铁粉

个人简介:给自己下一个Flag,每两周至少出一篇博客

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2014-06-09
博客简介:

沉默的夏虫

博客描述:
小时候的那只铅笔盒
查看详细资料
个人成就
  • 获得144次点赞
  • 内容获得43次评论
  • 获得601次收藏
  • 代码片获得133次分享
创作历程
  • 69篇
    2020年
  • 67篇
    2019年
  • 23篇
    2018年
  • 5篇
    2017年
成就勋章
TA的专栏
  • 笔记
    5篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

spring 默认事务控制之前理解的缺陷记录一下

public class serverone { @Autowired private BizTradeChargeDyDao bizTradeChargeDyDao; @Autowired private BizTradeRefundDyDao bizTradeRefundDyDao; public void sws() { try { sw1(); }catch (Exception e){ .
原创
发布博客 2020.08.12 ·
445 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

spring 默认事务控制之前理解的缺陷记录一下

public class serverone { @Autowired private BizTradeChargeDyDao bizTradeChargeDyDao; @Autowired private BizTradeRefundDyDao bizTradeRefundDyDao; public void sws() { try { sw1(); }catch (Exception e){ .
原创
发布博客 2020.08.12 ·
445 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql中InnoDB中的各种锁

一种分类方式:行锁(索引上锁) 表锁(表上锁)一种分类方式:共享锁(以及获取前先获取意向共享锁)lock in share model 排它锁(以及获取前先获取意向排它锁)for update一种分类方式(该分类前提—命中索引):记录锁(单条行锁) 间隙锁(无记录时候的临键锁退化为间隙锁) 临键锁(查询范围左侧那条记录至查询范围右侧那条记录之间的锁,左闭右开的锁住)其他的:自增锁(针对自增键累加操作的锁)参考:https://www.bilibili.com/video/BV1
原创
发布博客 2020.06.25 ·
466 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

redis线程模型&内存结构

Redis基于Reactor模式开发了网络事件处理器,这个处理器被称为文件事件处理器。它的组成结构为4部分:多个套接字、IO多路复用程序、文件事件分派器、事件处理器。因为文件事件分派器队列的消费是单线程的,所以Redis才叫单线程模型。redis线程模型消息处理流程文件事件处理器使用I/O多路复用(multiplexing)程序来同时监听多个套接字,并根据套接字目前执行的任务来为套接字关联不同的事件处理器。 当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(wri
转载
发布博客 2020.06.17 ·
503 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

redis 集群模式中master选举机制和zookeeper集群中的选举以及nacos选举的对比记忆

最近翻到redis集群中某个master宕机后如何选举新的master出来时发现有点类似zookeeper中的选举【稍有不同】;redis集群中:当某个master宕机之后,某个slave感知到他的master变为fail状态了,会将自身的epoch值加一,然后尝试变为master,向集群中的其他master询问自身能不能做新的master,如果超过一半的master同意了,他就会晋升为新的master,超不过一半此过程后重复(期间别的salve也可能会竞争),一旦被半数认可,会广播告知集群中的其.
原创
发布博客 2020.06.17 ·
1276 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

RPC与RMI区别

RPC:远程过程调用,协议多样比如dubbo/http,甚至可以自定义协议,只要两侧都能解析协议,调用端与被调用端可以是不同语言实现RMI: 远程方法调用,要求序列化,服务接口实现Remote接口,注册中心位于服务提供端自己维护,底层通过socket进行数据通讯,仅适用于Java需要...
原创
发布博客 2020.06.16 ·
285 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

反射为什么消耗性能

反射真正损耗性能的地方在于getxxx操作,而set方法相差无几例如:hashSet.getClass().getField("字段名");hashSet.getClass().getMethod("方法名");hashSet.getClass().getDeclaredField("字段名");hashSet.getClass().getConstructor(参数类型集合)这些get方法之所以慢是因为根据方法名或字段名在获取method或field时类似于在class所在方法区做遍历匹配.
原创
发布博客 2020.06.16 ·
4244 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

基础数据类型

最近再算一些空间成本时候需要计算对象大小,所以回忆一下基础类型的空间开辟情况:1byte=8bit占用1byte:byte、boolean占用2byte:short、char占用4byte:int、float占用8byte:long、double1、2、4、8各两种...
原创
发布博客 2020.06.16 ·
136 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

netty轻量级对象缓存

最常用的方式就是获取池化buffer【PooledByteBuf】主要原理就是在利用FastThreadLocal【底层是个数组,每个FastThreadLocal对象在对应线程创建时都有一个数组索引号,递增的】,数组中的每个元素是一个栈,栈中维护着池化的对象,每次获取和回收都由recycler回收器进行操作详细:https://www.jianshu.com/p/83469191509b...
原创
发布博客 2020.06.16 ·
227 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

为什么java中一些连接对象或者io流对象用完之后需要主动调用close

为什么java中一些连接对象或者io流对象用完之后需要主动调用close主动调用close会主动释放连接或io流的句柄,从而主动断开这次连接,释放操作句柄如果不主动释放,在java GC时也会被动释放掉:参考实验;所以不主动close并且未触发gc条件,那么连接和句柄将一直被占用着,如果此时连接使用的时连接池,将造成连接池中的连接不能及时回收,一但占满就会造成后续获取连接进行操作的阻塞或失败,如果io占用着文件句柄未及时释放,也会造成文件无法被删除的情况。如果堆状态一直无法到达gc条件就麻烦大了
原创
发布博客 2020.06.13 ·
1311 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

redis 删除策略 逐出算法 最大内存 aof重写原理 主从复制原理(细节)

删除策略:逐出算法:最大内存:aof重写原理:主从复制原理(细节):
原创
发布博客 2020.06.11 ·
260 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

分布式集群唯一id生成 redis集群或雪花算法

使用jdk自带的UUID可以实现,但是如果是作为MySQL的主键id会带来一下性能损失:UUID为32位过长,浪费索引空间导致每一个page的容量数减少; 另外UUID无序,会造成插入时的page的重构和分裂解决办法:雪花算法...
原创
发布博客 2020.06.08 ·
1114 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

spring循环引用解决原理

主要一点,早期暴露半成品对象会被维护到早期暴露缓存中;getSingleton方法如果在单例池中拿不到对象,则会去早期暴露缓存中看看有没有,有则直接返回而循环引用的过程A包含属性B,B包含属性A;创建A对象->先去getSingletonA返回null->实例化A对象->并进行半成品早期暴露【将A维护到早期暴露缓存】->A属性注入B->获取B->getSingletonB返回null->实例化B->并进行半成品早期暴露【将B维护到早期暴露缓存】-
原创
发布博客 2020.06.08 ·
497 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Activiti工作流

1:什么是工作流,工作流的核心对象是什么,activiti共操作数据库多少张表* 工作流就是多个参与者,按照某种预定义的规则,传递业务信息,进行审核的功能一个框架(Activiti)* processEngine,调用Service,从而操作数据库的表* 23表2:工作流中RepositoryService、RuntimeService、TaskService、HistoryService分别表示什么操作RepositoryService:流程定义和部署对象RuntimeService:执行管
转载
发布博客 2020.06.06 ·
499 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

RocketMQ详解

nameserv:发现以及路由Brocker:存放消息的地方中转 queren,topic,同步刷盘、异步刷盘productor:消息生产者,与nameserv连接,nameserv告知他“你提供的消息主题在某某些Brocker可接受”,同步发送(保证可靠性)、异步发送(快速,异步回调监听保证可靠性)、单向发送(快,不管成功与否),集群模式(一个group中消费一次,以组为单位)&广播模式consumer:消费端,告知nameserv我的订阅内容在哪些Brocker中存在 push&am
原创
发布博客 2020.06.03 ·
382 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

spring boot 自动装配原理

@EnableAutoConfiguration注解->@Import({AutoConfigurationImportSelector.class})->在AutoConfigurationImportSelector是import注解的三种引入bean定义的其中一种,通过ImportSelector的selectImports方法中解析所有META-INF/spring.factories文件中的内容拿到对应自动注入...
原创
发布博客 2020.06.01 ·
164 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

spring的xml解析以及注解方式解析简述

xml中的信息大多都是被最终解析为bean定义注册到spring容器中大体过程在spring容器,刷新beanFactory时【obtainFreshBeanFactory()方法】,会解析xml配置文件(beanDefinitionReader)和扫描(beanDefinitionScaner)指定包class来注册所有可加载beanDefinitionbeanDefinitionReader->命名空间解析器NamespaceHandlerResolver->通过xml头部的命.
原创
发布博客 2020.05.31 ·
787 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

mybatis整合spring原理流程

结合spring的容器初始化过程方便了解mybatis整合spring原理流程:关键点就是@MapperScan注解通过Import方式向容器中注入了MapperScannerConfigurer(他实现了BeanDefinitionRegistryPostProcessor),在执行工厂的后置处理器时执行了MapperScannerConfigurer的注册beanDefinition的方法,而注册进去的beanDefinition被修改为MapperFactoryBean(一种工厂bean),且构造
原创
发布博客 2020.05.30 ·
369 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java SPI机制

SPI机制就是java内部一种为了便于扩展的约定:java.util.ServiceLoader可以动态加载制定目录【在resources目录中创建\META-INF\services\接口的全限定名的文件】,全限定名的文件文件中存放想要被加载的接口实现类的类全限定名,多个换行;举例:我在项目中想要实现com.ph.ChoseOS接口,不同的操作系统我自己配置不同的ChoseOS的实现类:com.ph.impl.ChoseWinsOS implementsChoseOS、com.ph.imp.
原创
发布博客 2020.05.29 ·
200 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

redis、ES、mysql、MongoDB 对比

redis:纯内存数据库,RDB和aof是为了数据恢复,key-value只能通过key查询,可以虚拟内存,弱事务ES:海量数据的文本检索数据库,查询快,增删改慢,一般是定期批量进行增删改(比如每天凌晨1点)mysql:关系型,复杂联表条件查询,数据字段规整不经常变化,支持事务MongoDB:算是以上三者都沾一点,但是都不精,是个内存性数据库,可以虚拟内存,可以利用mmap加快对数据的操作速度是个内存性数据库,但是速度没有redis快;也支持文本检索但是量级太大速度就不行
原创
发布博客 2020.05.28 ·
2671 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏
加载更多