华为前资深架构师:大型互联网企业需要的分布式技术你具备了吗?

java分布式技术 分布式技术 阅读详情

前言

分布式、微服务几乎是现在的技术人员必须要了解的架构方向,从理论上来讲确实解耦了很多结构,但另一方面,又会带来更多衍生的复杂度及难点。 如何保证事物的最终一致性?如何进行性能及容量预估?如何处理分布式系统的日志?如何进行线上应急?如果你 曾有和我一样的困惑,那么相信你一定能从本文中得到非常宝贵的解答。

面对越来越复杂的系统和业务,分布式技术早已成为互联网时代的必学技术 ,然而, 如果没有经历过大公司背景的实践和历练,则我们很难接触到分布式服务的设计和架构 。

分布式和微服务技术越来越被互联网企业推崇和认可,如何将其结 业务的特点工程化地在企业中落地是每个技术人员都需要思考的问题。小编今天分享一份书籍文档:《分布式服务架构:原理、设计与实战》,本书籍对于理解分布式和微服务技术,有很好的指导和启发。

本书将分布式的原理、 实践及个人的工作经验相结合,从分布式的一致性、系统容量评估和性能保障、日志系统、服务部署、线上应急等方方面面进行了鞭辟入里的分析。

本书以一位在 IT 行业从事多年分布式服务架构工作的资深老兵的视角,剖析了针对分布式系统架构的解决方案和设计模式。 书中的每一章、每一节都是作者对多年线上系统架构设计实践的总结。

由于细节内容实在太多,所以小编只能把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容(这里只展示章节目录)!文末有资料获取方式,由于此文详细读完需要花费时间较长。时间紧迫的朋友们可以粗略看看目录移至文末。

目录

第一章 分布式微服务架构设计原理

华为前资深架构师:大型互联网企业需要的分布式技术你了解吗?

 

本章总结

本章主要讲解从传统的单体架构到服务化的发展历程,并讲解从服务化到现在流行的微服务架构的演化,以及微服务架构的特点、实现原理和最佳实践,井且提出了微服务是 SOA 服务化的拓展和延续。在后续章节里不会刻意地区分 SOA 服务化和微服务,因为微服务就 SOA服务化在全新场景下的升华和叠加。

最后再次强调微服务架构的主要特点。

  • 将传统单体应用拆分成网络服务,来实现模块化组件
  • 根据微服务架构的服务划分来分组职能团队,减少跨团队的沟通
  • 每个服务对应 个团队,团队成员负责开发、测试、运维和运营 ,开发后在团队内运维和运营,不需要交付给其他团队。
  • 去中心化、 SOA 务化的中心服务治理和去企业服务总线
  • 微服务重视服务的合理拆分、分层和构造,可建设自动化持续发布平台,井进行敏捷开和部署。
  • 具备兼容性设计、容错性设计和服务的契约设计。

第二章 彻底解决分布式系统一致性的问题

华为前资深架构师:大型互联网企业需要的分布式技术你了解吗?

 

本章总结

本章从一致性问题的实践出发,对大规模、高并发服务化系统的实践经验进行总结, 列举了导致不一致的具体问题,并围绕这些具体问题,提出一致性原理如 ACID、 CAP、 BASE 等:并学习了两阶段、三阶段 TCC一 致性协议,总结了实现最终一致性的查询模式、补偿模式、异步确保模式、定期校对模式、可靠消息模式和缓存一致性模式等 ;最后针对服务化系统中同步调用、异步调用 、消息队列等应用场景详细分析了超时发生的场景和解决方案,以供大家在开发服务化系统的过程中参考。

第三章 服务化系统容量评估和性能保障

华为前资深架构师:大型互联网企业需要的分布式技术你了解吗?

 

本章总结

本章以互联网企业重点关注的非功能质量为主线,总结了非功能质量需求的整体目标,井针对不同的服务和资源列举了不同的非功能质量需求的衡量指标,帮助读者在做技术评审的过程中整理思路。本章又针对不同的系统尽量穷举评审时关注的评审点,并随后提供了一个简单有效的评审提纲,最后根据提纲实现了一个互联网容量和性能评估的经典案例,大家可以在案例中了解高并发互联网系统是如何拆分的,以及依据哪些数据进行拆分,通过对非功能质需求的评估、设计和实现,对应设计时的容量和性能评估及事后的压测,来保证互联网项目达成既定的非功能质量需求的目标。

容量和性能评估保证系统设计能够满足系统的非功能质量需求,性能测试保证系统实施按照既定目标实现项目的非功能质量目标,本章后半部分全面介绍了互联网企业里压测的全过程及方法论,并总结了压测的最佳实践 在本章末尾介绍了常用的压测工具集,读者可以根据不同的场景选择不同的压测工具来测试系统的性能指标, 保证系统的高性能。

由于本章的数据完全基于笔者在某个互联网平台的工作经验产生,有些数据更是来源于笔者的笔记本电脑,并不代 可以直接应用在任何企业和平台 这里重点突出进行容量、性能评估和压测场景设计的方法论,帮助读者整理实现高井发互联网系统的思路,读者在实践时需要据所使用硬件的性能级别适当调整标准和指标。

第四章 大数据日志系统的构建

华为前资深架构师:大型互联网企业需要的分布式技术你了解吗?

 

本章总结

在一个完整的互联网服务化系统的实现中,日志系统是一个非常重要的功能组成部分。它可以记录系统产生的所有行为和信息,并按照某种形式表达出来,我们可以使用日志系统所录的信息为系统排错,并优化系统的性能,或者根据这些信息调整系统的行为,提高系统的可用性。因此,稳定的日志系统是保证系统可用性的一个重要的基础设施。

本章一开始介绍了开源日志框架的背景、实现结构、使用方式,包括 JDKLogger、 CommonLogging、 Log4j、 Slf4j、 Logback和 Log4j2 ;然后分享了笔者在实践中积累的使用这些日 志系统的优化经验和最佳实践,先后介绍了日志级别的设置、日志的数量和大小、切割方式、 日志格式的配置,最后给出了一个由一行日志导致的线上事故的案例。

接下来分析了大数据日志系统的原理与设计,从给出构建大数据日志系统的一个通用架构开始,讲述其中各个模块的职责、设计和架构,包括日志采集器、日志缓冲队列、日志解析器、日志存储和搜索、日志展示系统和监控与报警系统等,最后给出了一个如何设计日志系统的容量和对日志系统做性能评估的例子。

最后介绍了当前最流行的开源日志框架 ELK,也介绍了 Elasticsearch 、Logstash和 Kibana的安装、配置和基本使用方法等,为读者构建大数据日志系统起到抛砖引玉的作用。

第五章 基于调用链的服务治理系统的设计与实现

华为前资深架构师:大型互联网企业需要的分布式技术你了解吗?

 

本章小结

随着 SOA 服务化和微服务架构在互联网公司的广泛应用 ,互联网公司 的系统越来越复杂,复杂的系统会有各种各样的问题产生。

APM 系统的核心功能一一调用链跟踪系统的建设,能够帮助我们更好地治理线上服务,井解决生产环境中每天都重复发生的问题。

本章从介绍开源的 APM 项目及市场上流行的商业 APM 产品开始,介绍了 APM 的功能和特性;然后重点讲述了谷歌的 Dapper 论文提到的调用链跟踪原理,并讲解了业务链实现的原理;最后,基于调用链跟踪的原理,总结了实现调用链系统的通用架构、方法论及最佳实践。

第六章 Java服务的线上应急和技术攻关

华为前资深架构师:大型互联网企业需要的分布式技术你了解吗?

 

本章总结

本章开始介绍了线上应急和技术攻关的必要性、思路和方法论,强调了线上应急的目标是快速恢复系统,减少影响和损失,而不是彻底解决问题;也通过海恩法则和墨菲定律提出互联网行业中技术攻关的重要性。海恩法则强调,再好的技术、再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心,因此,那些重要的线上应急和技术攻关问题还需要通过高级领域专家来解决,因此,本章在后面全面介绍了线上应急和技术攻关中,领域专家应该掌握的各种命令和工具。

其次,本章介绍了如何搭建示例服务 Vesta ,在配置和启动 Vesta 后,以运行 Vesta 服务为背景重点介绍了笔者积累和总结的高效应用层脚本。接下来介绍了关键的 Java 虚拟机命令,帮助大家查看 Java 虚拟机运行状态、线程堆枝、内存使用情况、 GC 频率等。这些都可以帮助读者解决服务负载高、 Jar 包冲突、验证线上服务代码、动态添加线上日志等问题 并介绍了我们不得不学的那些 Linux 基础命令,包括操控内存、 、网络和网卡、磁盘 I/O 等命令。

在本章结尾介绍、分析、定位和解决了笔者在生产中遇到的线上应急和攻关的两个典型案例,帮助读者理解如何应用线上应急和技术攻关的方法,以及如何使用这些重要的命令和脚本并提供给大家解决疑难杂症的方法论。本章介绍的应急思想、攻关方法、实践案例及解决方案能够帮助大家对自己的服务保驾护航。

第七章 服务的容器化过程

华为前资深架构师:大型互联网企业需要的分布式技术你了解吗?

 

本章小结

通过本节的内容,我们了解到虚拟机与容器之间的区别,以及容器给我们带来的好处,并通过实战操作,学习了Docker 的常用命令,本章主要介绍了镜像、容器、磁盘卷、网络、服和集群的实战操作;然后介绍了Docker目前主要的管理工具: Swarm、 Kubemetes和 ApachMesos; 最后介绍了 wor press 博客系统的容器化的实现过程。

第八章 敏捷开发2.0的自动工具化

华为前资深架构师:大型互联网企业需要的分布式技术你了解吗?

 

本章总结

通过对本章的学习,我们了解了常用的 种开发模式:瀑布式开发、法代式开发、螺旋式开发和敏捷开发;然后介绍了当下炙手可热的 DevOps 及其详细流程:最后介绍了敏捷开发 2.0和它的优势,以及我们常用的自动化工具。

最后

由于本书籍文档资料内容过多,全书共422页,所以内容无法全部展示出来分享给大家,需要获取此完整文档资料的朋友们可以VX添加朋友:MXY1692,即可获取,你们的支持就是我最大的动力!

华为前资深架构师:大型互联网企业需要的分布式技术你了解吗?

 

 

湿敏电阻HR202的两种驱动方案实测:IO充放电法 vs. 交流方波ADC法,哪个更适合你? 本文深入评测湿敏电阻HR202的两种驱动方案:IO充放电法和交流方波ADC法。通过原理图分析、精度实测和资源占用对比,揭示交流方波ADC法在精度和稳定性上的优势,特别适合长期监测场景。同时提供IO充放电法在资源受限情况下的应用建议,帮助工程师根据项目需求做出最优选择。 阅读详情

相关推荐

C#实战:如何用winmm.dll打造毫秒级高精度定时器(附完整代码)

本文详细介绍了在C#中利用winmm.dll实现毫秒级高精度定时器的完整方案。针对.NET内置定时器精度不足的问题,通过调用timeSetEvent等原生API,提供了超越系统时钟中断周期的精准定时能力。文章包含核心原理剖析、完整的封装类代码以及音视频处理、游戏开发等场景下的实战应用与性能调优指南。

ujm5678901的博客 690

java分布式包含的技术_Java分布式架构核心技术[SSM组合+ springmvc+mybatis+shiro+restful+bootstrap]...

开发工具1.Eclipse IDE:采用Maven项目管理,模块化。2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表、一对多、树结构。生成后的代码如果不需要注意美观程度,生成后即可用。技术选型(只列了一部分技术)1、后端服务框架:Dubbo、zookeeper、Rest服务缓存:Redis、ehcache消息中间件:ActiveMQ负载均衡:Nginx分...

weixin_39934085的博客 3403

海洋科学—物理海洋学 第五章 海洋环流

本章是基于《海洋科学导论》,但里面涉及到的重要的公式推导是专门拎出来推的,主要借鉴董昌明老师的《物理海洋学导论》,其中有一些多出来的推导,会在更新完整个物理海洋学之后重新拿出来一一讲解,最后开一个番外篇

qq_58518586的博客 1万+

什么是Java的分布式架构

Web服务是一种使用标准的Web协议(如HTTP、SOAP、XML等)进行通信的分布式架构模式。分布式架构允许将应用程序的不同组件部署在不同的计算机或服务器上,并通过网络进行通信和协作,以实现更高的性能、可伸缩性和可靠性。- 客户端/服务器架构是最基本和常见的分布式架构模式。这些分布式架构模式和技术提供了丰富的选择,可以根据应用程序的需求和复杂性选择合适的架构模式和技术组合。- 微服务架构是一种将应用程序拆分成较小、独立的服务单元并通过轻量级的通信机制进行交互的分布式架构模式。

wzxue1984的博客 1489

Agent框架系列:1-低代码智能体平台深度解析Dify、Coze、n8n

Dify、Coze 和 n8n 是三大主流低代码智能体平台,各有侧重。Dify 适合企业级 AI 应用,具备强大的 RAG 和知识库管理能力,技术栈为 Python + React。Coze 由字节推出,主打零代码和快速原型开发,集成 60+ 插件,极适合非技术用户。n8n 以工作流自动化和系统集成为核心,支持 400+ 外部应用,基于 Node.js + Vue,扩展性极强。选择建议:非技术团队选 Coze,AI 应用选 Dify,复杂自动化与集成选 n8n。可根据实际需求混合使用,最大化平台优势。

3089

电路研究9.4——合宙Air780EP的LuatOS、CSDK跟标准AT

 C-SDK、AT指令、LuatOS

esmember的博客 1116

耗时十年!精心整理的Java高级开发需要的分布式技术

分布式、微服务几乎是现在的技术人员必须要了解的架构方向,从理论上来讲确实解耦了很多结构,但另一方面,又会带来更多衍生的复杂度及难点。 如何保证事物的最终一致性?如何进行性能及容量预估?如何处理分布式系统的日志?如何进行线上应急?如果你 曾有和我一样的困惑,那么相信你一定能从本文中得到非常宝贵的解答。

m0_57042151的博客 398

手把手教你用PLECS仿真BUCK数字电源(含DSP代码实现)

本文详细介绍了如何利用PLECS仿真软件与Visual Studio 2022搭建高保真数字电源开发环境,手把手指导从BUCK电路建模、编写硬件感知的C控制算法到参数调优的全过程。重点阐述了通过DLL接口实现软件在环仿真,模拟DSP的ADC/PWM时序,并将验证后的代码无缝迁移至TI C2000系列DSP,构建从仿真到固件的完整数字电源开发闭环,显著提升开发效率与一次成功率。

oo7890的博客 399

身为Java开发还不熟悉maven?阿里P7架构师带你看透maven的来龙去脉

欢迎关注专栏:Java架构技术进阶。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。 Maven简介 Maven是什么? Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 为什么要使用Maven? Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较...

xingduan5153的博客 486

双有源桥变换器(DAB)TPS控制:从理论建模到Simulink/PSIM仿真实践

本文深入探讨了双有源桥变换器(DAB)的三重移相(TPS)控制技术,从理论建模到仿真实现。文章详细分析了TPS相比SPS和DPS的优势,阐述了其12种工况的划分逻辑与电流应力最优调制策略,并提供了在Simulink和PSIM平台搭建仿真模型的详细步骤与实战经验,帮助工程师掌握这一高效控制方法。

white的博客 584

STM32Cubemx+CanFestival:从零到一的CANopen移植实战

本文详细介绍了如何使用STM32CubeMX和CanFestival实现CANopen协议栈的移植,从开发环境搭建到核心配置步骤,再到调试与问题排查。通过实战经验分享,帮助开发者快速掌握STM32与CANopen的结合应用,提升嵌入式系统开发效率。

weixin_42558093的博客 421

进阶Java架构师必看书:大型架构+框架+性能优化+中间件+分布式

进阶Java架构师必看书:大型架构+框架+性能优化+中间件+分布式 优知学院 2018-09-05 07:21:00     1、大型网站技术架构:核心原理与案例分析 本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web安全、系统发布、运维监控等在内...

zhangbijun1230的专栏 1085

[小梅哥FPGA] 如何通过动态重配置实现FPGA时钟的实时频率/相位/占空比调整?

PLL和MMCM是实际存在的硬件电路,用以对输入时钟的负面变化,如抖动、频率变化、相位偏移、占空比失真等进行处理。基于该表,用户在初始化Clk_Wiz后,只需要计算好所需的频率、相位、占空比对应的设置值,使用Xil_Out32函数配置对应寄存器即可。通过上述步骤,在平时的开发调试过程中,亦或是一些对于时钟可能有着实时性要求的设计(如数据采集、图像处理)里,我们便可以在无需重新修改设计的前提下,通过AXI4总线来完成对时钟频率、相位的调控,从而达到缩短设计周期以及让设计适应更多场景的目的。

zgmxs的专栏 2499

资深技术专家总结:架构师要看懂这几本书,还要懂这一套学习方法

1、大型网站技术架构:核心原理与案例分析本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web安全、系统发布、运维监控等在内的大型网站开发全景视图。本书作者李智慧,曾在阿里巴巴担任技术专家,参与阿里巴巴基础技术平台开发和架构设计。2、分布式服务框架原理与实践微服务是...

Java烂猪皮 847

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

资深技术专家总结:架构师要看懂这几本书,还要懂这一套学习方法!

1、大型网站技术架构:核心原理与案例分析 本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web安全、系统发布、运维监控等在内的大型网站开发全景视图。 本书作者李智慧,曾在阿里巴巴担任技术专家,参与阿里巴巴基础技术平台开发和架构设计。 2、分布式服务框架原...

zxh2075的专栏 1003

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

听说蚂蚁金服上市,但是实现财务自由的只是那些架构师?

近我在群里看到一些 30 岁+程序员的焦虑:干了 10 年程序员,但是一直在央企,所以技术不是很好,该怎么办?估计下半年要失业了,该专心学习了。我虽然已经是架构师了,但是自己水平不行,...

weixin_45583158的博客 9992

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大型网站架构系列:20本技术书籍推荐

分享大纲 大型网站架构系列 分布式系统系列 BAT技术文学系列 架构设计系列 本次分享总结 一、大型网站架构系列 第一本:《大型网站技术架构:核心原理与案例分析》 这是本算是国内大型网站架构的经典之作,由阿里人李智慧创作,听名字就知道本书很有智慧。主要从大型网站架构的特点,架构目标(高性能,高可用,可伸缩等)基本理论讲起,并介绍了几个很有特色的案例。 之前群内分享的大型网站架...

wuxinqiu的专栏 306

朱炜良演讲回顾:全栈分布式云的可持续化发展|F5分布式云

本文整理自 F5 资深架构师朱炜良在“2022全球分布式云大会 - 上海站”上的主题演讲。 随着阿里云、腾讯云、华为云等云计算头部企业在分布式云赛道的发展进程加快,以及企业上云速度加快,市场对云计算不断提出更高要求,中国分布式云计算发展进入实践落地阶段。近期,党的二十大报告更是提出了“加快建设数字中国”“加快发展方式绿色转型”等重大战略,为分布式云计算的发展指明了方向和路径。

f5networks的博客 459

如果你想成为年入 50w+ 的架构师,我建议你先看看这个...

去年底,我曾经面试过一位架构师的候选人。这位候选人是一位大厂高级工程师,因为技术好,在团队中承担一些管理工作。从他简历上的项目经验,我能看出他的编程能力和技术深度都属于优秀行列,在某些项...

程序猿DD 888

星光 SaaS 伙伴汉得信息:企业级 SaaS 能力构建,云原生赋能数字化创新

中小企业快成长,选择华为云更可靠!技术强、资源多、创新快、更安全。本文所介绍内容来自于华为云快成长企业科技直播间,本期主题为企业级 SaaS 能力构建,云原生赋能数字化创新,分享来自于汉得信息,也欢迎大家来共同探讨云原生及企业数字化转型的相关话题。

白鹿第一帅的 优快云 博客 3055

Java架构师成长路线分享,助力每一位追梦人走向阿里P6+

本课程主要针对具有1-5年及以上Java开发经验的在职人群,精准定制学习计划;帮助系统化梳理碎片化知识;形成独特的自我认知。以培养学习方法、思维方式、项目实战、源码分析能力、架构设计能力、预测判断能力为目的,真正让每一位学员次投资,终身受益。由10年以上从业经验的一线互联网公司架构师、技术总监授课,其中涵盖redis,mongodb,dubbo,zookeeper,kafka 高并发、高可用、分布式、微服务等技术。

2401_84010302的博客 636
上一篇: 面试官标准:第一能干活,第二Java基础要好,第三熟悉分布式框架
下一篇: 阿里P8架构师精心整理的Nginx入门到实战篇,Java开发者福音
JavaAOE
博客等级 码龄7年 27粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值