java基础入门课后答案黑马程序员

前言

最近刷到了一句耐人寻味的话,“解决雪崩问题的最好办法是不发生雪崩”。

不论是在硅谷互联网公司里还是在国内的互联网平台上,曾多次遇到过海量规模的交易瞬间吞噬平台的悲惨故事。

核心的解决方案大同小异,都是通过缓存,逐层减少流量的冲击,保护用户的体验和平台的服务可用。

金融、财务行业有现金为王的说法,互联网技术行业用“缓存为王"清楚地概括了缓存的重要性。

而本文深入浅出地讨论了Ehcache、Memcached、Redis、 Tair、 EVCache等各种常用缓存开源系统的方案及精粹。

虽然读过不少国外有关缓存的技术专著,大多数偏原则和理论,具体实施方案和案例较少,特别是结合中国互联网技术实践的更少。

所以本文实际上填补了缓存技术文献在这方面的空白。尤其是结合微博、社交和电商平台的应用实践探讨,对想学习如何利用缓存技术解决实践中具体问题的读者大有裨益。

image.png

1、背景

首先,让我们简要地讨论下每个系统,以了解它们的高级设计和架构,看下每个系统所做的权衡。

Kafka 是一个开源的分布式事件流处理平台,也是 Apache 软件基金会下五个最活跃的项目之一。在其核心,Kafka 被设计成一个多副本的分布式持久化提交日志,用于支撑事件驱动的微服务或大规模流处理应用程序。客户端向代理集群提供事件或使用代理集群的事件,而代理会向底层文件系统写入或从底层文件系统读取事件,并自动在集群中同步或异步地复制事件,以实现容错性和高可用性。

Pulsar 是一个开源的分布式发布 / 订阅消息系统,最初是服务于队列用例的。最近,它又增加了事件流处理功能。Pulsar 被设计为一个(几乎)无状态代理实例层,它连接到单独的 BookKeeper 实例层,由它实际地读取 / 写入消息,也可以选择持久地存储 / 复制消息。Pulsar 并不是唯一的同类系统,还有其他类似的消息传递系统,如 Apache DistributedLog 和 Pravega,它们都是在 BookKeeper 之上构建的,也是旨在提供一些类似 Kafka 的事件流处理功能。

你可能感兴趣的:(程序员,java,经验分享,面试)