对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

这份手册并没有过多渲染系统架构的理论知识,而是切切实实站在开发一线角度, 为各位读者诠释了大型网站在架构演变过程中出现一系列技术难题时的解决方案。这份手册首先从分布式服务案例开始介绍,重点为大家讲解了大规模服务化场景下企业应该如何实施服务治理;然后在大流量限流/消峰案例中,笔者为大家讲解了应该如何有效地对流量实施管制,避免大流量对系统产生较大冲击,确保核心业务的稳定运行;接着笔者为大家讲解了分布式配置管理服务;之后的几章,笔者不仅为大家讲解了秒杀、限时抢购场景下热点数据的读/写优化案例,还为大家讲解了数据库实施分库分表改造后所带来的一系列影响的解决方案。

 

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

第1章分布式服务案例

目前,在互联网场景下应对大流量、高并发,服务化架构改造是必不可少的。在本章中,笔者为大家讲解了互联网场景下大型网站架构的演变过程、服务化的一些必备基础知识,以及如何使用开源社区流行的RPC和服务治理框架Dubbo帮助企业落地服务化架构。

当然,本章的重点是为大家演示如何实现-一个拥有较低侵入性的分布式调用跟踪系统来帮助企业实施服务治理,因为在一些大规模的服务调用场景下,我们必然需要一种有效且可视化的手段来帮助开发人员、架构师更好地梳理清楚服务或服务之间的依赖关系、调用顺序,以及服务的执行耗时等。

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

第2章大流量限流/消峰案例

天猫、淘宝这种级别的大型互联网电商网站,主要的技术挑战来自于庞大的用户规模所带来的大流量和高并发,在“双11”、“双 12”等大促场景下尤为明显。如果不对流量进行合理管制,肆意放任大流量冲击系统,那么将导致一- 系列的问题出现,比如一些可用的连接资源被耗尽、分布式缓存的容量被撑爆、数据库吞吐量降低,最终必然会导致系统产生雪崩效应。当然,应对大流量和高并发也没有大家想象得那么复杂和神秘,一般来说,大型互联网站通常采用的做法是通过扩容、动静分离、缓存、服务降级及限流五种常规手段来保护系统的稳定运行。不同的企业可能会采用不同的解决方案来应对大流量和高并发,因为不同业务之间存在的差异性决定了不会诞生通用的解决方案,所谓条条大路通罗马,只要能够换取同质性的结果,过程如何就显得不是特别重要,这就好比如果能够提前知道罗马的具体位置,那么处处都是路,怎么走都行。

本章的重点是流量管制,只要我们能够采用合理且有效的方式管制住用户流量,让其有秩序地对系统进行访问,那么无论是在平时还是在大促的时候,系统都能够稳定运行。需要明确的是,流量管制的目的是保护系统,让系统的负载处于一个比较均衡的水位,而不是刻意为了限流而限流,否则将会严重影响用户体验,得不偿失。

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

第3章分布式配置管理服务案例

相信大家对配置信息都不会感到陌生,在实际的开发过程中,无论是访问数据库、分布式缓存系统、消息队列,还是通过Dubbo框架实现RPC调用,都需要提前配置好目标URL、账号/密码等信息,因此这类信息也被称为配置信息。在大部分情况下,我们都会选择将相关配置信息配置在配置文件中,当系统启动时,会从指定的目录下进行加载,通过获取配置文件中的配置信息项来完成环境的初始化工作。除此之外,我们在使用电脑进行办公、娱乐时,也会高频率地与配置信息打交道,比如,通过操作系统的控制面板来设置显示器的分辨率、鼠标的双击速度,以及区域和语言设置等,这些都属于配置信息,所以如果你告诉我你从未接触过配置信息,那么我一-定会摇摇头对你说这不可能。

本章为大家介绍两种最常见的配置形式,一种基于本地配置形式,一种则适用于大规模分布式场景的集中式资源配置形式,本章重点围绕后者展开,为大家详细讲解如何基于ZooKeeper实现-一个分布式配置管理平台,并演示淘宝的Diamond系统和百度的Disconf系统的具体使用方式。

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

第4章大促场景下热点数据的读/写优化案例

在秒杀、限时抢购这种大促场景下,由于峰值流量较大,大量的并发读/写操作一定会导致后端的存储系统产生性能瓶颈。前面已经讲解过,提升单机处理能力最有效的办法就是采用集群技术对服务器进行扩容,只要系统能够具备良好的伸缩性,那么从理论上来说,其容量便可以是无限的。在此需要注意,大促场景下因热点数据导致的单点瓶颈已经不再是简单地通过横向扩容就能够顺利解决的,尽管对于读操作我们可以将热点数据缓存在分布式缓存中以达到提升系统QPS的目的,但是缓存系统的单点容量还是存在上限的,因此应对大促场景下的峰值流量仍显得杯水车薪。除此之外,由于热点数据的写操作无法直接在缓存中完成,那么这必然会引起大量的线程相互竞争InnoDB的行锁。并发越大时,等待的线程就越多,这会严重影响数据库的TPS,导致RT线性上升,最终可能引发系统出现雪崩。

本章笔者会结合实际的工作经验,为大家重点讲解大促场景下热点数据读/写技术难题的一系列解决方案。

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

第5章数据库分库分表案例

大型网站几乎时时刻刻都在接受着高并发和海量数据的洗礼,随着用户规模的线性上升,单库的性能瓶颈会逐渐暴露出来,由于数据库的检索效率越来越慢,导致生产环境中产生较多的慢速SQL。对于非结构化的数据,可以将其存储在NoSQL数据库中来提升性能,但是重要的业务数据,仍然要落盘在关系型数据库(如MySQL数据库)中。那么如何提升关系型数据库的并行处理能力和检索效率就成为了架构师需要思考和解决的棘手问题,并且单库如果宕机,业务系统也就随之瘫痪了。因.此,在互联网场景下,架构师务必要确保后端存储系统具备高可用性和高性能,为了解决这些问题,目前互联网场景下常见的做法便是对数据库实施分库分表,即Sharding改造。

本章不仅会对数据库的架构演变过程进行重点讲解,还会实战演示Shark中间件的具体使用方式,以及数据库实施分库分表改造后所带来的影响的一系列解决方案。

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

需要免费领取这份美团P4-2架构师手册:Java分布式系统架构落地+zookeeper的朋友,麻烦帮忙点赞小编这篇文章,领取方式在个人主页的封面图中。

ZooKeeper分布式过程协同技术详解

这份PDF首先从分布式系统的基本概念入手,然后介绍实际开发编程的接口和技巧,最后谈及运维人员所关心的配置维护知识。

第一部分ZooKeeper的概念和基础

第1章简介

第2章了解ZooKeeper

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

第二部分使用ZooKeeper进行开发

第3章 开始使用ZooKeeper的API

第4章处理状态变化

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

第5章故障处理

第6章ZooKeeper注意事项

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

第7章C语言客户端

第8章Curator: ZooKeeper API的高级封装库

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

第三部分ZooKeeper的管理

第9章ZooKeeper内部原理

第10章运行ZooKeeper

对标美团P4-2架构师手册:Java分布式系统架构落地+Zookeeper

 

需要免费领取这份美团P4-2架构师手册:Java分布式系统架构落地+zookeeper的朋友,麻烦帮忙点赞小编这篇文章,领取方式在个人主页的封面图中。