为自己搭建一个分布式 IM(即时通讯) 系统
前言
大家新年快乐!
新的一年第一篇技术文章希望开个好头,所以元旦三天我也没怎么闲着,希望给大家带来一篇比较感兴趣的干货内容。
老读者应该还记得我在去年国庆节前分享过一篇《设计一个百万级的消息推送系统》;虽然我在文中有贴一些伪代码,依然有些朋友希望能直接分享一些可以运行的源码;这么久了是时候把坑填上了。
阅读全文CountDownLatch源码解析
CountDownLatch
相比ReentranceLock,CountDownLatch的流程还是相对比较简单的,CountDownLatch也是基于AQS,它是AQS的共享功能的一个实现。
下面从源代码的实现上详解CountDownLatch。
图解java并发(上)
《Hibernate快速开始 – 批量处理》
JDBC 批量处理
JDBC提供了对批量查询语句集合到单条查询语句的支持。在应用方面,这意味着数据驱动在批量处理的时候只需要发送一条查询请求,减少了对数据库的请求次数。hibernate合理使用了JDBC批量处理的特点,可以通过以下配置控制这一行为。
Java–读写锁的实现原理
最近做的一个小项目中有这样的需求:整个项目有一份config.json
保存着项目的一些配置,是存储在本地文件的一个资源,并且应用中存在读写(读>>写)更新问题。既然读写并发操作,那么就涉及到操作互斥,这里自然想到了读写锁,也顺便对自己读写锁方面的知识做个梳理。
一次 HashSet 所引起的并发问题
背景
上午刚到公司,准备开始一天的摸鱼之旅时突然收到了一封监控中心的邮件。
心中暗道不好,因为监控系统从来不会告诉我应用完美无 bug
,其实系统挺猥琐。
打开邮件一看,果然告知我有一个应用的线程池队列达到阈值触发了报警。
由于这个应用出问题非常影响用户体验;于是立马让运维保留现场 dump
线程和内存同时重启应用,还好重启之后恢复正常。于是开始着手排查问题。
实际项目中运用责任链模式
作者:nicky_chin (感谢作者向并发网投稿)
1.1 简介
- 责任链模式为请求创建一个接收者对象链,每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么它会把请求传给下一个接收者,依此类推
- 责任链模式避免了请求的发送者和接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
代码走查如何保证软件质量
目的
代码走查的好处非常多,第一个是让新同学快速熟悉代码并了解系统。第二个是做资损防控的事前检查,在事前规避引发线上故障。第三个是通过一起讨论和审查,加强团队代码阅读和编写能力,让大家编写出优秀的代码。代码走查的优点非常多,但是最核心的还是希望通过代码走查提前发现问题并解决问题。
所以基于以上目的,代码走查不是为了找到代码写的差的程序员加以批评,不是为了找到差的代码,而是一起发现问题共同成长,所以对于写代码的同学不需要过于紧张,但是在代码走查前自己可以先看一次优化一遍,不过所有的变更必须有单元测试覆盖,否则为了优化代码又会引发新的问题。
阅读全文《Hyperledger Fabric官方文档》之关键概念翻译邀请
10月并发网继续组织翻译区块链相关技术,欢迎大家踊跃参加,另外如果你有区块链技术相关文章也欢迎发布在并发网上。本月组织翻译《Hyperledger Fabric官方文档 》。
阅读全文