会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
博客园
首页
新随笔
联系
订阅
管理
2018年5月31日
Java进阶知识点8:高可扩展架构的利器 - 动态模块加载核心技术(ClassLoader、反射、依赖隔离)
摘要: 一、背景 功能模块化是实现系统能力高可扩展性的常见思路。而模块化又可分为静态模块化和动态模块化两类: 1. 静态模块化:指在编译期可以通过引入新的模块扩展系统能力。比如:通过maven/gradle引入一个依赖(本质是一组jar文件)。 2. 动态模块化:指在JVM运行期可以通过引入新的模块扩展系统
阅读全文
posted @ 2018-05-31 22:52 敲代码的小阿狸
阅读(1587)
评论(0)
推荐(0)
2018年4月14日
InnoDB MVCC RR隔离级别下的数据可见性总结
摘要: 一、背景 熟悉数据库隔离级别的人都知道,在RR(可重复读)隔离级别下,无论何时多次执行相同的SELECT快照读语句,得到的结果集都是完全一样的,即便两次SELECT语句执行期间,其他事务已经改变了该查询结果并已经提交。 对于这一机制的实现原理,网上常见的一种解释如下: 上述解释确实可以让读者简单快速
阅读全文
posted @ 2018-04-14 17:18 敲代码的小阿狸
阅读(5721)
评论(7)
推荐(3)
2018年3月22日
记一次诡异的网络故障排除 - tpc_tw_recycle参数引起的网络故障
摘要: 一、故障现象 我们团队访问腾讯云上部署的测试环境中的Web系统A时,偶尔会出现类似于网络闪断的情况,浏览器卡很久没有反应,最终报Connection Timeout。 不过奇怪的是,当团队中的某个人无法访问A时,其他人仍然可以正常访问。而且无法访问的这个人如果利用VPN,找一台其他地方的主机为跳板,
阅读全文
posted @ 2018-03-22 22:34 敲代码的小阿狸
阅读(825)
评论(0)
推荐(0)
2018年2月6日
数据库的读锁和写锁在业务上的应用场景总结
摘要: 一、背景 熟悉MySQL数据库的朋友们都知道,查询数据常见模式有三种: 1. select ... :快照读,不加锁 2. select ... in share mode:当前读,加读锁 3. select ... for update:当前读,加写锁 从技术层面理解三种方式的应用场景其实并不困难
阅读全文
posted @ 2018-02-06 11:25 敲代码的小阿狸
阅读(5819)
评论(1)
推荐(2)
2017年12月15日
Gradle配置IDEA正常识别JPA Metamodel Generator动态生成的代码
摘要: 我们在使用JPA动态查询构建查询条件时,为了实现安全的类型检查,常常需要引用Hibernate JPA Metamodel Generator自动为我们生成静态元模型类。 而这些类由于编译时由Hibernate JPA Metamodel Generator自动生成在其他路径下,IDEA默认无法自动
阅读全文
posted @ 2017-12-15 21:38 敲代码的小阿狸
阅读(1888)
评论(0)
推荐(0)
2017年11月15日
程序员容易读错的单词
摘要: priority [praɪˈɔ:rəti] 优先 synchronized ['sɪŋkrənaɪzd] 同步的 authentication [ɔ:ˌθentɪ'keɪʃn] 认证;相关:authentic [ɔˈθɛntɪk] 真正的,可信的,可靠的 authorization [ˌɔ:θər
阅读全文
posted @ 2017-11-15 14:16 敲代码的小阿狸
阅读(743)
评论(0)
推荐(0)
Java进阶知识点7:不要只会写synchronized - JDK十大并发编程组件总结
摘要: 一、背景 提到Java中的并发编程,首先想到的便是使用synchronized代码块,保证代码块在并发环境下有序执行,从而避免冲突。如果涉及多线程间通信,可以再在synchronized代码块中使用wait和notify进行事件的通知。 不过使用synchronized+wait+notify进行多
阅读全文
posted @ 2017-11-15 10:53 敲代码的小阿狸
阅读(797)
评论(0)
推荐(1)
2017年11月8日
Java进阶知识点6:并发容器背后的设计理念 - 锁分段、写时复制和弱一致性
摘要: 一、背景 容器是Java编程中使用频率很高的组件,但Java默认提供的基本容器(ArrayList,HashMap等)均不是线程安全的。当容器和多线程并发编程相遇时,程序员又该何去何从呢? 通常有两种选择: 1、使用synchronized关键字,将对容器的操作有序错开,确保同一时刻对同一个容器只存
阅读全文
posted @ 2017-11-08 15:44 敲代码的小阿狸
阅读(771)
评论(0)
推荐(1)
2017年10月29日
Java进阶知识点5:服务端高并发的基石 - NIO与Reactor模式以及AIO与Proactor模式
摘要: 一、背景 要提升服务器的并发处理能力,通常有两大方向的思路。 1、系统架构层面。比如负载均衡、多级缓存、单元化部署等等。 2、单节点优化层面。比如修复代码级别的性能Bug、JVM参数调优、IO优化等等。 一般来说,系统架构的合理程度,决定了系统在整体性能上的伸缩性(高伸缩性,简而言之就是可以很任性,
阅读全文
posted @ 2017-10-29 18:50 敲代码的小阿狸
阅读(2128)
评论(0)
推荐(1)
2017年10月15日
Java进阶知识点4:不可变对象与并发 - 从String说起
摘要: 一、String的不可变特性 熟悉Java的朋友都知道,Java中的String有一个很特别的特性,就是你会发现无论你调用String的什么方法,均无法修改this对象的状态。当确实需要修改String的值时,String方法的实现是构造一个新的String返回给你。如下: 这与C++ STL中的s
阅读全文
posted @ 2017-10-15 12:53 敲代码的小阿狸
阅读(1636)
评论(0)
推荐(1)
下一页
公告