32__AI与物联网架构:从智能引擎到物联网平台

当我们在说大数据技术的时候,说的可能是几种差别很大的技术。

一种是大数据底层技术,指的就是各种大数据计算框架、存储系统、SQL 引擎等等,这些技术比较通用,经过十几年的优胜劣汰,主流的技术产品相对比较集中,主要就是我上篇专栏讨论的 MapReduce、Spark、Hive、Flink 等技术产品。

32__Balking模式:再谈线程安全的单例模式

上一篇文章中,我们提到可以用“多线程版本的 if”来理解 Guarded Suspension 模式,不同于单线程中的 if,这个“多线程版本的 if”是需要等待的,而且还很执着,必须要等到条件为真。但很显然这个世界,不是所有场景都需要这么执着,有时候我们还需要快速放弃。

32__context.Context类型

我们在上篇文章中讲到了sync.WaitGroup类型:一个可以帮我们实现一对多 goroutine 协作流程的同步工具。

在使用WaitGroup值的时候,我们最好用“先统一Add,再并发Done,最后Wait”的标准模式来构建协作流程。

32__FPGA、ASIC和TPU(上):计算机体系结构的黄金时代

过去很长一段时间里,大家在讲到高科技、互联网、信息技术的时候,谈的其实都是“软件”。从 1995 年微软发布 Windows 95 开始,高科技似乎就等同于软件业和互联网。著名的风险投资基金 Andreessen Horowitz 的合伙人 Marc Andreessen,在 2011 年发表了一篇博客,声称“Software is Eating the World”。Marc Andreessen,不仅是投资人,更是 Netscape 的创始人之一。他当时的搭档就是我们在前两讲提过的 SGI 创始人 Jim Clark。

32__GroupCoordinator:在Rebalance中,Coordinator如何处理成员入组?

你好,我是胡夕。不知不觉间,课程已经接近尾声了,最后这两节课,我们来学习一下消费者组的 Rebalance 流程是如何完成的。

提到 Rebalance,你的第一反应一定是“爱恨交加”。毕竟,如果使用得当,它能够自动帮我们实现消费者之间的负载均衡和故障转移;但如果配置失当,我们就可能触碰到它被诟病已久的缺陷:耗时长,而且会出现消费中断。

32__JNI的运行机制

我们经常会遇见 Java 语言较难表达,甚至是无法表达的应用场景。比如我们希望使用汇编语言(如 X86_64 的 SIMD 指令)来提升关键代码的性能;再比如,我们希望调用 Java 核心类库无法提供的,某个体系架构或者操作系统特有的功能。

32__KafkaAdminClient:Kafka的运维利器

你好,我是胡夕。今天我要和你分享的主题是:Kafka 的运维利器 KafkaAdminClient。

引入原因

在上一讲中,我向你介绍了 Kafka 自带的各种命令行脚本,这些脚本使用起来虽然方便,却有一些弊端。

32__MySQL调优之SQL语句:如何写出高性能SQL语句?

你好,我是刘超。

从今天开始,我将带你一起学习 MySQL 的性能调优。MySQL 数据库是互联网公司使用最为频繁的数据库之一,不仅仅因为它开源免费,MySQL 卓越的性能、稳定的服务以及活跃的社区都成就了它的核心竞争力。