05 2023 档案
摘要:为什么要学习设计模式 看懂源代码:如果你不懂设计模式去看Jdk、Spring、SpringMVC、IO等等等等的源码,你会很迷茫,你会寸步难行 看看前辈的代码:你去个公司难道都是新项目让你接手?很有可能是接盘的,前辈的开发难道不用设计模式? 编写自己的理想中的好代码:我个人反正是这样的,对于我自己开
阅读全文
摘要:第 1 章 配置中心入门 1.课程概述 本课程是讲解配置中心的设计和开发实现。配置中心作为微服务架构中,配置存储的核心构件,在微服 务项目设计中起着至关重要的作用。它统一管理着各业务微服务的具体配置信息。同时,让配置更新有 了更清晰的访问API。那么它是如何实现的呢,在市面上活跃的配置中心用了哪些技
阅读全文
摘要:电商亿级数据库设计-原理实 战 1. 电商 数据库架构体系剖析 1.1 背景概述 随着互联网普及率的不断提高,中国电商稳步发展,市场零售额 不断增长。根据数据显示,2019年,全国网上零售额106324亿 元,比上年增长16.5%。与此同时,得益于社交电商的流量效 应,电商用户持续增加。数据显示,截
阅读全文
摘要:业务幂等性技术架构体系 1)幂等性介绍 现如今很多系统都会基于分布式或微服务思想完成对系统的 架构设计。那么在这一个系统中,就会存在若干个微服务, 而且服务间也会产生相互通信调用。那么既然产生了服务调 用,就必然会存在服务调用延迟或失败的问题。当出现这种 问题,服务端会进行重试等操作或客户端有可能会
阅读全文
摘要:千万级订单的生成 了解随订单量的提升,数据库系统经历了哪些变化,这些变化带来哪些痛点 分库分表环境下,订单的id生成有哪些办法 雪花算法的原理及实现 支付环境下,对订单系统的架构设计带来哪些影响 1. 架构体系深入剖析 1.1 演进与背景 随着数据量的增长,一般db的架构,经历如下演进: 1)单库主
阅读全文
摘要:第3章 100W请求秒杀架构体系-程序隔离和并 发限流 目标1:抢单程序隔离实现 目标2:WebSocket 知识学习 目标3:Sentinel 限流讲解 目标4:LVS+Nginx集群讲解 1 用户下单 商品分为热点商品抢单和非热点商品抢单,因此此系统中抢单模式并非一种。 1.1 抢单分析 如上图
阅读全文
摘要:第2章 100W请求秒杀架构体系-冷热数据收集 和隔离 目标1:垂直日志收集实现 目标2:Apache Druid 海量日志实时分析 目标2:热点数据隔离实现 目标4:Lua解析JWT令牌高效校验身份 1 日志收集 日志在我们项目中是非常重要的,日志的作用也有差异,例如根据日志查找问题、根据日志做数
阅读全文
摘要:第1章 100W请求秒杀架构体系-静态资源处理 目标1:秒杀设计-业务设计、架构设计、表设计 目标2:工程讲解 目标3:商品详情页开发 目标4:数据同步 Canal学习 目标5:分布式任务调度 elastic-job学习 目标6:静态页动态更新 1 秒杀设计 1.1 业务流程 电商项目中,秒杀属于技
阅读全文
摘要:4、项⽬实施 4.1 基本思路 从访问源头开始,按链路逐个写⼊⽇志,使⽤不同的⼿段,实现⽤户请求的各个点的⽇志收集 4.2 前端请求 4.2.1 概述 ⽬前项⽬多采⽤动静分离⽅式,静态⻚由nginx处理。那么nginx上的请求⽇志如何收集处理呢? 第⼀可以采⽤输出到log⽂件,fifilebeat采
阅读全文
摘要:3、项⽬搭建 3.1 项⽬概述 搭建⼀套微服务环境,实现多点⽇志采集,⽤于 web请求的访问链路跟踪,包含以下跟踪点: 请求的前台⻚⾯ 请求到达nginx的转发记录 请求的后台⽅法 请求的业务输出标记 远程的⽅法调⽤(如有涉及) 3.2 设计⽬标 3.2.1 检索维度 可以按常⽤维度做到快速检索:
阅读全文
摘要:名称 优势 劣势 常⽤ Logstash 插件多,资料充⾜,配置简单 性能⼀般,不⽀持缓存 采集,传 输 Filebeat 可靠,性能好,多种对接 存在注册表过⼤问题 采集 Fluentd 基于Ruby,插件多,易于编写和 维护 灵活性相对差,性能⼀般 采集 Logtail 资源占⽤少 尽做收集,类
阅读全文
摘要:学习⽬标 1·学习java⽇志体系及⽇志⼯具的演进 2·了解⽇志采集、处理、分析等各阶段的常⽤中间件 3·学会搭建完整的 elk⽇志平台 4·学习⽇志打点,切⾯,⽇志⽂件等输出⼿段 5·项⽬实战,完成⼀访问⽇志链路的跟踪 1、java⽇志体系 1.1 体系概述 1.1.1 ⽇志接⼝ JCL:Apac
阅读全文
摘要:1.项目介绍 学习目标 系统的功能、背景、场景及需求 在架构角度思索系统可能面临的问题以及解决方案 运用中间件特性,完成架构设计 主业务源码分析 微服务的部署与动态扩容 1.1项目概述 1.1.1概述 京东的红包雨大家可能都参与过,在某段时间内随机发放不同的红包,如果公司让你设计类似系统,如 何做?
阅读全文
摘要:1 课程介绍 1.1 课程背景介绍 每年的春节是中国人的传统节日,大多数中国人都会在这一天选择回家团聚。为了方便用户进行购票, 2012 年春节,铁道部推出 12306网站,进行网络实名购票。然而,历年春节假期,巨大的 访问请求都让中国铁路客户服务中心网站( www.12306.cn)陷入“万劫不复
阅读全文
摘要:分库分表的深入实战剖析 内容大纲 分库分表概念 电商系统下订单性能瓶颈问题 分库分表原则剖析 &产生的问题剖析 电商系统亿级订单数据分库分表实战指导 一、分库分表概念 概念: 在数据爆炸的年代,单表数据达到千万级别,甚至过亿的量,都是很常见的情景。这时候再对数据库进 行操作就是非常吃力的事情了,se
阅读全文
摘要:第1章 多维系统下单点登录深入详解 学习目标 目标1:了解淘宝天猫的单点登录系统架构 目标2:掌握单点登录的主流实现设计方案 目标3:掌握单点登录的主流技术实现方案 目标4:深入掌握基于 SAML的单点登录技术方案 目标5:深入掌握基于OAuth2的单点登录技术方案 目标6:完成基于Cookie跨域
阅读全文
摘要:第1章 分布式事务 课程安排 第一篇章: 分布式事务基础知识 分布式事务的解决方案分析 2PC方案: atomik os 最终一致性方案 -事务消息: RocketMQ 第二篇章: 最终一致性方案-本地消息表(seata框架AT模式) 最终一致性方案-TCC补偿:(seata框架TCC模式) 分布式
阅读全文
摘要:服务(应用)名称 Docker容器地址 端口 查询服务 172.188.0.33 8888 分析服务 172.188.0.34 5555 网关服务 172.188.0.22 6666 logstash 172.188.0.77 9600 kinana 172.188.0.66 5601 msyql
阅读全文
摘要:1 技术中台与终搜介绍 1.1 技术中台与终搜介绍 中台产生的背景 中台(技术、 业务、数据)最早是阿里巴巴提出来的。 2015年阿里 进行过一次架构调整,将搜索事业部、共享业务平台、数据技术及产品部组成了中台事业 群。 并喊出“小前台,大中台”的管理模式。 什么是中台 中台是介于前台和后台中间的平
阅读全文
摘要:UML系统建模 1 概述 1.1 课程概述 汇集uml及其相关的一些话题 回顾uml相关的符号与概念 以电商订单相关业务为例,借助uml完成系统建模 将uml变成提升建模效率,表达架构思想的工具 1.2 什么是uml Unified Modeling Language 统一建模语言,又称标准建模语言
阅读全文
摘要:1. 前言 1.1 为什么需要代码规范 可能有同学觉得代码需要突出个人的特点,需要特异化,但是这样就会造成别人阅读起来很困难 代码不仅仅是交给机器来执行的,同时代码也是让其他同事来阅读的,如果代码不规范就会出现各种各样的问题,写多了代码只是觉得代码规范化是一件很自然的事,代码写多了,自然代码规范化咯
阅读全文
摘要:Skywalking应用实战 能力目标: 能够理解服务监控三要素 能够理解常用的 APM系统优势差异 能够基于 IDEA集成Skywalking Agent 能基于生产环境使用Skywalking Agent 掌握Rocketbot 性能分析 链路追踪 仪表盘应用 Webhook 1 Skywalk
阅读全文
摘要:jenkins持续集成 课程目标 了解CI、CD的基本概念 掌握Jenkins的主从集群搭建 掌握Jenkins角色权限配置、分组配置、全局配置等核心配置的使用 掌握Jenkins的持久化原理及目录结构、文件备份与恢复 掌握pipeline声明式语法 熟练使用pipeline语法配置进行微服务项目基
阅读全文
摘要:. 概述 1.1 什么是版本控制 版本控制是一种在开发过程中用于管理我们对文件、目录等工程内容修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术 你可以把一个版本控制系统(缩写VCS)理解为一个“数据库”,在需要的时候,它可以帮你完整地保存一个项目的快照。当你需要查看一个之前的快照
阅读全文
摘要:LVS+KeepAlived高可用部署实战 1. 构建高可用集群 1.1 什么是高可用集群 高可用集群(High Availability Cluster,简称HA Cluster),是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外部不间断的提供服务,把因为软件,硬件,认为
阅读全文
摘要:数据库平滑扩容 学习目标 目标1:理解传统扩容实现方案 目标2:理解平滑扩容双写方案 目标3:掌握数据库2N扩容方案 目标4:实现数据库双主同步 目标5:掌握ShardingJDBC路由以及动态扩容技术 目标6:掌握KeepAlived+MariaDB数据库高可用方案 1. 扩容方案剖析 1.1 扩
阅读全文
摘要:性能调优工具 1 什么是性能调优 性能调优就是对计算机硬件、操作系统和应用有相当深入的了解,调节三者之间的关系,实现整个系统(包括硬件、操作系统、应用)的性能最大化,并能不断的满足现有的业务需求。 1.1. 为什么需要性能调优 一是为了获得更好的系统性能(就是你现有的系统运行的还不错,但优化一下可以
阅读全文
摘要:大促之前全链路压监控篇 1. skywalking服务监控 1.1 skywalking简介 Skywalking 是一个APM系统,即应用性能监控系统,为微服务架构和云原生架构系统设计 它通过探针自动收集所需的指标,并进行分布式追踪,通过这些调用链路以及指标,Skywalking APM会感知应用
阅读全文
摘要:大促之前全链路压测原理篇 能力目标 全链路压测思想以及实现 全链路跟踪的原理和实现 常用的链路压测方案 中间件如何来进行实现 SpringBoot starter 如何编写 1. 全链路压测的意义 上图是 2012 年淘宝核心业务应用关系的拓扑图,还不包含了其他的非核心业务应用,所谓的核心 业务就是
阅读全文
摘要:Zabbix 1. 监控系统的意义 2. Zabbix概述 3. Zabbix 原理 4. Zabbix 安装 5. 监控配置详解 Zabbix * Zabbix概述 * Zabbix原理 * Zabbix Server agent安装 * 添加主机-->添加模板-->新建监控项-->新建触发器--
阅读全文
摘要:敏捷开发 1. 概述 随着软件开发技术的不断发展,现在出现了很多种不同的开发模式,其实敏捷开发已经成为现在很多企业开发应用程序都想要选择的开发方案,那么什么是敏捷开发呢? 1.1 四种开发模式 1.1.1 瀑布式开发 瀑布式开发是一种老旧的,正在过时的计算机软件开发方法,最开始的软件行业普遍采用这种
阅读全文
摘要:10W QPS真刀实操__以及基于ZK+Netty手写 分布式测试工具 参考链接 系统架构知识图谱(一张价值10w的系统架构知识图谱) https://www.processon.com/view/link/60fb9421637689719d246739 秒杀系统的架构 https://www.p
阅读全文
摘要:什么是设计模式 设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 为什么要学习设计模式 看懂源代码:如果你不懂设计模式去看Jdk、Spring、SpringMVC、IO等等等等的源码,你
阅读全文
摘要:第1题 题目描述:请介绍下您的大数据从业经历 考察目的:考察应变和总结归纳能⼒,没有标准答案。 第2题 题目描述:您公司的大数据架构 考察目的:考察是不是真的有大数据经验,归纳概括能力如何,能不能把架构数清楚,无标准答案。 第3题 题目描述:最近在研究什么技术 考察目的:其实是在考察你是否爱钻研,没
阅读全文
摘要:1、什么是设计模式?就是经过实践验证的用来解决特定环境下特定问题的解决方案 2、设计模式用来干什么?寻找合适的对象决定对象的粒度指定对象的接口描述对象的实现运用复用机制重复使用经过实践验证的正确的,用来解决某一类问题的解决方案来达到减少工作量、提高正确率等目的 3、什么是对象粒度?对象中方法的多少就
阅读全文
摘要:架构师面试之Netty面试专题及答案 BIO、 NIO 和 AIO 的区别? BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。 伪异步 IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。 NIO:一个请求一个线程,但客户端发送的连接请求都会注册到
阅读全文
摘要:架构师面试题之Maven专题篇 一、Maven有哪些优点和缺点 优点如下:1.简化了项目依赖管理:2.易于上手,对于新手可能一个"mvn clean package"命令就可能满足他的工作3.便于与持续集成工具(jenkins)整合4.便于项目升级,无论是项目本身升级还是项目使用的依赖升级。5.有助
阅读全文