拥抱Arm服务器

2021-10-26 Arm

迄今为止,移动电话、物联网传感器及其他设备中已包含 1800 亿个基于 Arm 的处理器。如今,这项技术经过不断发展,已支持超大规模数据中心和云计算。基于 Arm 的处理器对于云客户极具吸引力,因为它们具备线性扩展能力、可预测的性能以及超高的核心密度和经济性。借助基于 Arm 的云计算,客户可以更加低成本地运行现有负载,构建具有卓越经济性和性能的新应用。


JUnit 4断言void方法

2021-10-26 JUnit

假设service.runTask是void方法,没有返回值。也不期望抛出异常,可以按下面的方法玩。

boolean result;
try {
    service.runTask(engineBatchVO);
    result = true;
} catch (ApplicationException ex) {
    result = false;
}

Assert.assertTrue(result);

JDK 17发布

2021-09-16 JDK Java

JDK 17已经于2021年3月16日如期发布。本文介绍JDK 17新特性。JDK 17于2021年9月14日正式发布(General-Availability Release)。JDK 17将是大多数供应商的长期支持(LTS)版本。上一个LTS版本是JDK 11。

本文总结了JDK 17发布的新特性。


Eclipse Memory Analyzer (MAT)的安装及使用

2021-09-15 Eclipse

Eclipse Memory Analyzer (MAT)是一个快速且功能丰富的Java堆分析器,可帮助您发现内存泄漏并减少内存消耗。

使用内存分析器分析具有数亿个对象的生产堆转储,快速计算对象的保留大小,查看谁在阻止垃圾收集器收集对象,运行报告以自动提取泄漏嫌疑。




Apache Parquet列式存储格式介绍

2021-08-03 Parquet

Apache Parquet是Hadoop生态系统中的任何项目都可以使用的列式存储格式。Parquet是语言和平台无关的。Parquet最初是由Twitter和Cloudera合作开发完成并开源,2015年5月从Apache的孵化器里毕业成为Apache顶级项目。




为什么需要TRIZ

2021-06-30 TRIZ

什么是TRIZ?TRIZ本质上是寻求问题、解决问题的方法论。特别是在发明、创新领域,TRIZ理论成功地揭示了创造发明的内在规律和原理,着力于澄清和强调系统中存在的矛盾,其目标是完全解决矛盾,获得最终的理想解。它不是采取折中或者妥协的做法,而且它是基于技术的发展演化规律研究整个设计与开发过程, 而不再是随机的行为。实践证明,运用TRIZ理论,可以加快人们创造发明的进程而且能得到高质量的创新产品。






JDK 16发布

2021-03-16 JDK Java

JDK 16已经于2021年3月16日如期发布。本文介绍JDK 16新特性。








JDK 15发布

2020-09-15 JDK Java

JDK 15已经于2020年9月15日如期发布。本文介绍JDK 15新特性。




MEAN架构实战:基于MongoDB、Express、Angular、Node.js构建企业级应用

2020-06-07 MEAN MongoDB Express Angular Node.js

曾几何时,业界流行使用LAMP架构(Linux、Apache、MySQL和PHP)来快速开发中小网站。LAMP是开放源代码的,而且使用简单、价格廉价,因此LAMP这个组合成为了当时开发中小网站的首选,号称“平民英雄”。而今,随着Node.js的流行,这使得JavaScript终于能够在服务器端拥有了一席之地。JavaScript成为了从前端到后端再到数据库层能够支持全栈开发的语言。而以MongoDB、Express、Angular和Node.js四种开源技术为基础的MEAN架构,除了具备LAMP架构的一切优点外,更能支撑高可用、高并发的大型互联网应用的开发。MEAN架构势必也会成为新的“平民英雄”。

本文介绍了MEAN架构的概念、发展趋势,并阐述了如何学习和使用MEAN架构。




分布式事务——GRIT

2020-04-01 GRIT Distributed Transaction

eBay 的技术人员最近展示了一种称为 GRIT 的分布式事务协议,支持跨多个具有多个底层数据库的微服务的 ACID(原子性、一致性、隔离性、持久性)事务。本文描述了在 2019 年 IEEE 数据工程国际会议(ICDE)上公布的 GRIT 协议的基本思想,并提供了一个使用部分协议实现 JanusGraph 事务存储后端的示例。本例关注的是只有一个数据库的系统,但是正如我们所说,GRIT 可以支持包含多个数据库的系统的 ACID 事务。








分布式事务——三阶段提交

2019-12-23 Distributed Transaction

在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本(replica), 这些副本会放置在不同的节点上。这些数据节点可能是物理机器,也可能是虚拟机。为了对用户提供正确的CURD等语意,我们需要保证这些放置在不同节点上的副本是一致的,这就涉及分布式事务的问题。

本文介绍分布式事务处理方案之一的三阶段提交协议。


Netty ChannelHandler之概述

2019-12-18 Netty

ChannelHandler(管道处理器)其工作模式类似于Java Servlet过滤器,负责对I/O事件或者I/O操作进行拦截处理。采用事件的好处是,ChannelHandler可以选择自己感兴趣的事件进行处理,也可以对不感兴趣的事件进行透传或者终止。


分布式事务——两阶段提交

2019-12-11 Distributed Transaction

在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本(replica), 这些副本会放置在不同的节点上。这些数据节点可能是物理机器,也可能是虚拟机。为了对用户提供正确的CURD等语意,我们需要保证这些放置在不同节点上的副本是一致的,这就涉及分布式事务的问题。

本文介绍分布式事务处理方案之一的两阶段提交协议。


Way Lau

Software Engineer and Full Stack Developer, now work and live in Shenzhen, China. Detail

Donate

See the list of Donors.