JAVA ’ 目录归档

一次 HashSet 所引起的并发问题

背景

上午刚到公司,准备开始一天的摸鱼之旅时突然收到了一封监控中心的邮件。

心中暗道不好,因为监控系统从来不会告诉我应用完美无 bug,其实系统挺猥琐。

打开邮件一看,果然告知我有一个应用的线程池队列达到阈值触发了报警。

由于这个应用出问题非常影响用户体验;于是立马让运维保留现场 dump 线程和内存同时重启应用,还好重启之后恢复正常。于是开始着手排查问题。

阅读全文

《Hyperledger Fabric官方文档》什么是Hyperledger Fabric?

原文链接 译者:周超强

在2015年,Linux基金会成立了HyroundGrand项目,以推动跨行业的区块链技术的发展。通过鼓励开放的知识产权以及后续在关键点上可能采用自有的标准体系,这样可以更好的让社区之间进行高效的协作来开发区块链的技术,而不是自己制定独立的区块链的标准。

Hyperledger Fabric只是Hyperledger众多项目中的一个子项目,与其他区块链的技术类似,它也有自己的记账体系,灵活的通信契约以及一个众多参与者管理他们自己交易的系统。

阅读全文

实际项目中运用责任链模式

作者:nicky_chin (感谢作者向并发网投稿)

1.1 简介

  • 责任链模式为请求创建一个接收者对象链,每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么它会把请求传给下一个接收者,依此类推
  • 责任链模式避免了请求的发送者和接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
阅读全文

代码走查如何保证软件质量

目的

代码走查的好处非常多,第一个是让新同学快速熟悉代码并了解系统。第二个是做资损防控的事前检查,在事前规避引发线上故障。第三个是通过一起讨论和审查,加强团队代码阅读和编写能力,让大家编写出优秀的代码。代码走查的优点非常多,但是最核心的还是希望通过代码走查提前发现问题并解决问题。

所以基于以上目的,代码走查不是为了找到代码写的差的程序员加以批评,不是为了找到差的代码,而是一起发现问题共同成长,所以对于写代码的同学不需要过于紧张,但是在代码走查前自己可以先看一次优化一遍,不过所有的变更必须有单元测试覆盖,否则为了优化代码又会引发新的问题。

阅读全文

《Hyperledger Fabric官方文档》之关键概念翻译邀请

10月并发网继续组织翻译区块链相关技术,欢迎大家踊跃参加,另外如果你有区块链技术相关文章也欢迎发布在并发网上。本月组织翻译《Hyperledger Fabric官方文档 》。

阅读全文

微服务集成测试自动化探索

作者:杜亮亮

1 简介

51信用卡管家自2015年开始实施微服务架构,是业界较早尝试微服务架构的技术团队,整个团队有幸见证了微服务从最初的几个服务试点到全面铺开的过程。架构的演变也催生了自动化测试框架和策略的演变,测试团队通过持续地探索和总结,在集成测试自动化框架建设和策略选择上积累了一些经验,抛砖引玉和大家一起分享。

阅读全文

《Hyperledger Fabric官方文档》介绍

原文链接 译者:周超强

介绍

Hyperledger Fabric 是一个用来解决分布式记账问题的平台,并且Hyperledger Fabric内部模块之间的传输更加的保密、弹性、灵活和可伸缩。Hyperledger Fabric对不同组件的可插拔的实现以及金融生态系统的复杂性提供了帮助。

我们建议第一次阅读文章的读者,可以先浏览引言的其他部分,这样可以熟悉一些基本的概念,比如区块链是如何运行的以及Hyperledger Fabric的特点和内部的组成实现。

一旦具备了基本的知识或者已经对区块链比较熟悉后,可以跳到开始的部分来看一些实例、技术的详细说明、API等等。

阅读全文

TCP 滑动窗口 与窗口缩放因子(Window Scaling)

一、前言

说道TCP滑动窗口协议,相信大家都很熟悉,但是说道 Window Scaling参数或许知道的和用过的人却不多,本文我们来谈谈Window Scaling的由来 阅读全文

白话网络通讯

白话网络通讯

  • 不同主机之间通讯本质-二进制流传输无论你是纯socket通讯,还是应用层的http,Rpc协议进行通讯,本质底层都是传输二进制流
  • 不同主机如何认识二进制流为需要的内容-约定协议既然是二进制,那么发送和接受方如何识别消息的边界,那就约定协议,比如http约定了http包的格式,Dubbo Rpc协议约定了dubbo包的格式

阅读全文

基于redis的分布式锁

1 介绍

这篇博文讲介绍如何一步步构建一个基于Redis的分布式锁。会从最原始的版本开始,然后根据问题进行调整,最后完成一个较为合理的分布式锁。

本篇文章会将分布式锁的实现分为两部分,一个是单机环境,另一个是集群环境下的Redis锁实现。在介绍分布式锁的实现之前,先来了解下分布式锁的一些信息。

阅读全文

猫狗队列的再解

也是头一次在其他的这类型网站投稿,不过似乎没有markdown语法…,以下来自我的个人博客近期所写的,对猫狗
队列的解答。

猫狗队列是一个很经典的问题了吧,在书上我也翻看了很久;而网上的答案呢,也是千篇一律的,跟书的代码也是一字不差的,几乎除了照搬似乎都没什么思路可言的,甚至连书上提到注意的点都没有…

一开始我是没什么思路的,翻来覆去研究书上,发现原来挺简单;但用思路写起来还真不是一回事,挺难的。各个问题涉及到的地方很多,就是如何解决的问题很多,特别是题目的第二点要求。

阅读全文

如何成为一位「不那么差」的程序员

前言

已经记不清有多少读者问过:

博主,你是怎么学习的?像我这样的情况有啥好的建议嘛?

也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。

因此也许诺会准备一篇关于学习方面的文章;所以本文其实准备了很久,篇幅较长,大家耐心看完希望能有收获。

以下内容仅代表我从业以来所积累的相关经验,我会从硬技能、软实力这些方面尽量阐述我所认为的 “不那么差的程序员” 应当做到哪些技能。

阅读全文

消息队列二三事

最近在看kafka的代码,就免不了想看看消息队列的一些要点:服务质量(QOS)性能扩展性等等,下面一一探索这些概念,并谈谈在特定的消息队列如kafka或者mosquito中是如何具体实现这些概念的。

阅读全文

Java并发编程之美

一、内容简介

并发编程相比 Java 中其他知识点的学习门槛较高,从而导致很多人望而却步。但无论是职场面试,还是高并发/ 高流量系统的实现,却都离不开并发编程,于是能够真正掌握并发编程的人成为了市场迫切需求的人才。

《Java并发编程之美》通过图文结合、通俗易懂的讲解方式帮助大家完成多线程并发编程从入门到实践的飞跃!《Java并发编程之美》分为三部分,第一部分为Java 并发编程基础篇,主要讲解Java 并发编程的基础知识、线程有关的知识和并发编程中的其他相关概念,这些知识在高级篇都会有所使用,掌握了本篇的内容,就为学习高级篇奠定了基础;第二部分为Java 并发编程高级篇,讲解了Java 并发包中核心组件的实现原理,让读者知其然,也知其所以然,熟练掌握本篇内容,对我们在日常开发高并发、高流量的系统时会大有裨益;第三部分为Java 并发编程实践篇,主要讲解并发组件的使用方法,以及在使用过程中容易遇到的问题和解决方法。

阅读全文

java多线程系列:通过对战游戏学习CyclicBarrier

CyclicBarrier是java.util.concurrent包下面的一个工具类,字面意思是可循环使用(Cyclic)的屏障(Barrier),通过它可以实现让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,所有被屏障拦截的线程才会继续执行。

这篇文章将介绍CyclicBarrier这个同步工具类的以下几点

  1. 通过案例分析
  2. 两种不同构造函数测试
  3. CyclicBarrier和CountDownLatch的区别
  4. await方法及源码分析。

阅读全文

return top