摘要: 本文要感谢我职级评定过程中的一位评委,他建议把之前所做的各种性能优化的案例和方案加以提炼、总结,以文档的形式沉淀下来,并在内部进行分享。力求达到如下效果: 1. 形成可实践、可借鉴、可参考的各种性能优化的方案以及选型考虑点,同时配合具体的真实案例,其他人遇到相似问题时,不用从零开始。 2. 有助于开 阅读全文
posted @ 2018-04-07 23:53 Margaery 阅读(1257) 评论(0) 推荐(0) 编辑
摘要: 前言 “分布式队列编程”是一个系列文,之前我们已经发布了《分布式队列编程模型、实战》,主要剖析了分布式队列编程模型的需求来源、定义、结构以及其变化多样性;根据作者在新美大实际工作经验,给出了队列式编程在分布式环境下的一些具体应用。本文将重点阐述工程师运用分布式队列编程构架的时候,在生产者、分布式队列 阅读全文
posted @ 2018-04-07 23:51 Margaery 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 介绍 作为一种基础的抽象数据结构,队列被广泛应用在各类编程中。大数据时代对跨进程、跨机器的通讯提出了更高的要求,和以往相比,分布式队列编程的运用几乎已无处不在。但是,这种常见的基础性的事物往往容易被忽视,使用者往往会忽视两点: 使用分布式队列的时候,没有意识到它是队列。 有具体需求的时候,忘记了分布 阅读全文
posted @ 2018-04-07 23:47 Margaery 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 本文已发表于《程序员》杂志2017年第3期,下面的版本又经过进一步的修订。 前言 一般而言,现在互联网应用(网站或App)的整体流程,可以概括如图1所示,用户请求从界面(浏览器或App界面)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容。 随着互联网的普及,内容信息越来越复 阅读全文
posted @ 2018-04-07 23:45 Margaery 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、Rocke 阅读全文
posted @ 2018-04-07 23:41 Margaery 阅读(478) 评论(0) 推荐(0) 编辑
摘要: #摘要序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更 阅读全文
posted @ 2018-04-07 23:39 Margaery 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMa 阅读全文
posted @ 2018-04-07 23:34 Margaery 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。 BST 二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。 在理想的情况下,二叉查找树增删查改的时间复 阅读全文
posted @ 2018-04-07 23:22 Margaery 阅读(1315) 评论(0) 推荐(0) 编辑
摘要: MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系 阅读全文
posted @ 2018-04-07 23:10 Margaery 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍 阅读全文
posted @ 2018-04-07 23:01 Margaery 阅读(232) 评论(0) 推荐(0) 编辑