架构设计
hellozhxy
这个作者很懒,什么都没留下…
展开
-
系统设计:Google三剑客
补充材料:三剑客:http://blog.csdn.net/koder2009/article/details/3964878http://blog.csdn.net/koder2009/article/details/3985329http://blog.csdn.net/koder2009/article/details/3991938http://blog.csdn.net/wangxiaoqin00007/article/details/7091686http://www.m转载 2020-10-28 09:39:59 · 504 阅读 · 0 评论 -
京东订单系统高可用架构及演变过程
京东到家是达达集团旗下中国最大的本地即时零售平台之一,目标就是实现一个小时配送到家的业务。一直到 2019 年京东到家覆盖 700 个县区市,合作门店近 10 万家,服务数千万消费者。随着订单量的增长、业务复杂度的提升,订单系统也在不断演变进化,从早期一个订单业务模块到现在分布式可扩展的高并发、高性能、高可用订单系统。整个发展过程中,订单系统经历了几个明显的阶段,通过不同的技术优化方案解决业务上遇到的问题。下面我将为大家逐一介绍我们遇到了哪些问题及如何解决,主要分为以下三部分: 京东到家系统架构转载 2020-10-20 21:07:31 · 4450 阅读 · 0 评论 -
电商系统之订单系统
电商系统之订单系统1 概述订单系统作为电商系统的“纽带”贯穿了整个电商系统的关键流程。其他模块都是围绕订单系统进行构建的。订单系统的演变也是随着电商平台的业务变化而逐渐演变进化着,接下来就和大家一起来解析电商平台的“生命纽带”。订单系统的作用是:管理订单类型、订单状态,收集关于商品、优惠、用户、收货信息、支付信息等一系列的订单实时数据,进行库存更新、订单下发等一系列动作。订单系统业务的基本模型涉及用户、商品(库存)、订单、付款,订单基本流程是下订单——>减库存,这两...转载 2020-10-20 16:46:38 · 4330 阅读 · 0 评论 -
分布式架构知识体系
1.问题 1、何为分布式何为微服务? 2、为什么需要分布式? 3、分布式核心理论基础,节点、网络、时间、顺序,一致性? 4、分布式是系统有哪些设计模式? 5、分布式有哪些类型? 6、如何实现分布式? 2.关键词节点,时间,一致性,CAP,ACID,BASE,P2P,机器伸缩,网络变更,负载均衡,限流,鉴权,服务发现,服务编排,降级,熔断,幂等,分库分表,分片分区,自动运维,容错处理,全栈监控,故障恢复,性能调优3.全文概要随着移动互联网原创 2020-07-23 15:44:06 · 282 阅读 · 0 评论 -
流控方案
不同的场景下所需的流控算法不尽相同,那应该如何选择适用的流控方案呢?本文分享单机及分布式流控场景下,简单窗口、滑动窗口、漏桶、令牌桶、滑动日志等几种流控算法的思路和代码实现,并总结了各自的复杂度和适用场景。较长,同学们可收藏后再看。一 流控的场景流控的意义其实无需多言了。最常用的场景下,流控是为了保护下游有限的资源不被流量冲垮,保证服务的可用性,一般允许流控的阈值有一定的弹性,偶尔的超量访问是可以接受的。有的时候,流控服务于收费模式,比如某些云厂商会对调用 API 的频次进行计...转载 2020-07-23 15:03:46 · 2145 阅读 · 0 评论 -
架构师攻略
一、架构的三个维度和六个层面 1.1、三大架构在互联网时代,要做好一个合格的云架构师,需要熟悉三大架构。第一个是IT架构,其实就是计算,网络,存储。这是云架构师的基本功,也是最传统的云架构师应该首先掌握的部分,良好设计的IT架构,可以降低CAPEX和OPEX,减轻运维的负担。数据中心,虚拟化,云平台,容器平台都属于IT架构的范畴。第二个是应用架构,随着应用从传统应用向互联网应用转型,仅仅搞定资源层面的弹性还不够,常常会出现创建了大批...原创 2020-07-13 17:21:19 · 669 阅读 · 0 评论 -
秒杀系统架构分析与实战
秒杀业务分析正常电子商务流程: 查询商品 创建订单 扣减库存 更新订单 付款 卖家发货 秒杀业务的特性: 低廉价格 大幅推广 瞬时售空 一般是定时上架 时间短、瞬时并发量高 秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:对现有网站业务造成冲击...转载 2020-07-09 19:59:14 · 379 阅读 · 0 评论 -
高性能短链设计
今天,我们来谈谈如何设计一个高性能短链系统,短链系统设计看起来很简单,但每个点都能展开很多知识点,也是在面试中非常适合考察侯选人的一道设计题,本文将会结合我们生产上稳定运行两年之久的高性能短链系统给大家简单介绍下设计这套系统所涉及的一些思路,希望对大家能有一些帮助。本文将会从以下几个方面来讲解,每个点包含的信息量都不少,相信大家看完肯定有收获 短链有啥好处,用长链不香吗 短链跳...转载 2020-05-07 15:25:40 · 163 阅读 · 0 评论 -
fastDFS
1.fastDFS介绍: fastDFS 是以C语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等 分布式文件系统: 基于客户端/服务器的文件存储系统 对等特性允许一些系统扮演客户端和服务器的双重角色,可供多个用户访问的服务器,比如,用户可以“发表”一个允许其他客...转载 2020-03-02 16:46:35 · 170 阅读 · 0 评论 -
阿里巴巴架构师:十问业务中台和我的答案
一切业务数据化,一切数据业务化。“中台”概念这几年非常火,特别是阿里、腾讯、百度、京东等互联网公司最近频繁的基于中台调整组织架构,把“中台”的热度又上升到另一个高度,甚至有这样的声音, 90 年代不做 ERP 会死,现在不做中台也会定企业生死。中台的概念起源于阿里,也发展于阿里。笔者有幸参与阿里业务中台方法体系建设,也主导参与一些阿里云新零售业务中台项目,经常被问到如下问题。本文作为“阿...转载 2019-12-20 11:15:27 · 280 阅读 · 0 评论 -
营销系统资格设计
前言:业务进行营销活动目的是用最少的钱实现更好的营销效果,此时就需要针对营销活动的资格进行控制,其中就包括了用户身份、用户所处的环境等等一系列因素的考虑,且为了防止恶意套取营销费用和做到营销效果的持续性,会进行活动相关次数的控制。此时为了适应业务不断变革的营销活动资格,好的资格设计就非常重要。营销活动业务在配置中会同一时间存在多个营销活动,用户进入某个场景,首先需要给用户展示目前用户能够享...转载 2019-11-26 13:47:45 · 262 阅读 · 0 评论 -
微服务架构下一致性最佳实践
在开发或软件架构的过程中,经常会遇到一致性的问题。尤其是在微服务架构下,每个微服务都有自己的数据库,导致微服务架构的系统不能简单地满足 ACID,我们就需要寻找微服务架构下的数据一致性解决方案。传统情况下,当一个事务要跨越多个分布式服务时,开发者想到的第一个方案就是两阶段提交——2PC。在这个过程中,事务协调者(事务管理器)给每个参与者(资源管理器)发送 Prepare 消息,如果参与者有可用...转载 2019-10-24 17:47:04 · 300 阅读 · 0 评论 -
手淘push
导读:过去的很长一段时间内,由于电商的强运营特性,手淘 App 的 Push 消息大部分时候是作为一个活动通知的通道,对重要活动进行通投引流。然而在竞争环境更加激烈和用户渗透日趋饱和的今天,具备更加精细化的用户运营手段和智能内容投放能力被逐渐重视起来,也成为了整个系统和产品后续优化升级的重点。从今年开始,我们开始对手淘 Push的平台链路、技术架构和投放算法进行了大幅度的升级改造,目标...转载 2019-09-12 19:04:44 · 1158 阅读 · 0 评论 -
解析微服务架构与最佳实践
转载 2019-09-12 18:56:46 · 217 阅读 · 0 评论 -
分布式锁用Redis还是Zookeeper?
为什么用分布式锁?在讨论这个问题之前,我们先来看一个业务场景。作者:jianfeng来源:石杉的架构笔记|2019-07-16 09:22为什么用分布式锁?在讨论这个问题之前,我们先来看一个业务场景。为什么用分布式锁?系统 A 是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会给用户下单。...转载 2019-08-06 20:08:09 · 286 阅读 · 0 评论 -
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services
Matt Welsh, David Culler, and Eric BrewerComputer Science DivisionUniversity of California, Berkeley {mdw,culler,brewer}@cs.berkele...转载 2019-07-09 15:25:19 · 797 阅读 · 0 评论 -
分布式理论(七): 一致性协议之 ZAB
前言在前面的文章中,我们说了很多一致性协议,比如 Paxos,Raft,2PC,3PC等等,今天我们再讲一种协议,ZAB 协议,该协议应该是所有一致性协议中生产环境中应用最多的了。为什么呢?因为他是为 Zookeeper 设计的分布式一致性协议!1. 什么是 ZAB 协议? ZAB 协议介绍 ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper ...转载 2019-04-01 15:21:24 · 133 阅读 · 0 评论 -
分布式系统技术点汇总
一个网站就是一个应用,当系统压力较大时,只能横向扩展,增加多个服务器或者多个容器去做负载均衡,避免单点故障而影响到整个系统。集中式最明显的优点就是开发,测试,运维会比较方便,不用考虑复杂的分布式环境。弊端也很明显,系统大而复杂、不易扩展、难于维护,每次更新都必须更新所有的应用。集中式系统拓扑图鉴于集中式系统的种种弊端,促成了分布式系统的形成,分布式系统背后是由一系列的计算机组成...转载 2019-03-19 13:28:55 · 17662 阅读 · 1 评论 -
IT架构的本质:工作12年,我的五点感悟
参禅的三重境界在 IT 技术圈同样适用,初学者感叹每个产品都如此精妙绝伦,追逐着最强的 IDE;老司机喜欢自比管乐指点江山,嘲讽着最好的语言。当一切回归平淡,搞 IT 就是一份思想延伸和语言翻译工作,其中技术架构师就是一份古朴甚至无趣的工作。我将架构师的工作总结出五条核心道理,这五条经验简单直白又深奥通透,算是对我 12 年 IT 工作的一个总结。架构技术像机器人哄小孩一样简...转载 2019-03-11 13:52:07 · 1270 阅读 · 0 评论 -
响应式Spring的道法术器(Spring WebFlux 快速上手 + 全面介绍)
1. Spring WebFlux 2小时快速入门Spring 5 之使用Spring WebFlux开发响应式应用。lambda与函数式(15min)Reactor 3 响应式编程库(60min)Spring Webflux和Spring Data Reactive开发响应式应用(45min)通过以上内容相信可以对Spring 5.0 推出的响应式开发有了初步的体会。如果希望有更加深入的了解,欢...转载 2018-07-04 14:42:31 · 792 阅读 · 0 评论 -
(2)响应式流——响应式Spring的道法术器
本系列文章索引:《响应式Spring的道法术器》。前情提要: 什么是响应式编程1.2 响应式流上一节留了一个坑——为啥不用Java Stream来进行数据流的操作? 原因在于,若将其用于响应式编程中,是有局限性的。比如如下两个需要面对的问题:Web 应用具有I/O密集的特点,I/O阻塞会带来比较大的性能损失或资源浪费,我们需要一种异步非阻塞的响应式的库,而Java Stream是一种同步API。假...转载 2018-07-04 14:39:57 · 233 阅读 · 1 评论 -
(1)什么是响应式编程——响应式Spring的道法术器
本系列文章索引:《响应式Spring的道法术器》。1 响应式编程之道1.1 什么是响应式编程?在开始讨论响应式编程(Reactive Programming)之前,先来看一个我们经常使用的一款堪称“响应式典范”的强大的生产力工具——电子表格。举个简单的例子,某电商网站正在搞促销活动,任何单品都可以参加“满199减40”的活动,而且“满500包邮”。吃货小明有选择障碍(当然主要原因还是一个字:穷),...转载 2018-07-04 14:38:48 · 233 阅读 · 0 评论 -
响应式编程总览
1 响应式编程总览In computing, reactive programming is an asynchronous programming paradigm concerned with data streams and the propagation of change. - Reactive programming - Wikipedia在上述响应式编程(以下简称RP)的定义中,除了...转载 2018-07-03 14:41:38 · 851 阅读 · 0 评论 -
分布式一致性
一、写在前面现今互联网界,分布式系统和微服务架构盛行。一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的。在互联网金融等一致性要求较高的场景下,多个独立操作之间的一致性问题显得格外棘手。基于水平扩容能力和成本考虑,传统的强一致的解决方案(e.g.单机事务)纷纷被抛弃。其理论依据就是响当当的CAP原理。我们往往为了可用性和分区容错性,忍痛放弃强一致支持,转而追求最终一致性。大部分业务场...转载 2018-06-26 11:02:42 · 197 阅读 · 0 评论 -
Java的HTTP服务端响应式编程
传统的Servlet模型走到了尽头传统的Java服务器编程遵循的是J2EE的Servlet规范,是一种基于线程的模型:每一次http请求都由一个线程来处理。线程模型的缺陷在于,每一条线程都要自行处理套接字的读写操作。对于大部分请求来讲,本地处理请求的速度很快,请求的读取和返回是最耗时间的。也就是说大量的线程浪费在了远程连接上,而没有发挥出计算能力。但是需要注意一点,线程的创建是有开销的,每一条线程...转载 2018-06-29 16:52:11 · 3352 阅读 · 0 评论 -
Spring Web 应用的最大败笔
开发人员在使用Spring应用是非常擅长谈论依赖注入的好处。不幸的是,他们不是那么真的利用它的好处,如单一职责原则,分离关注原则。如果我们一起来看看大部分Spring的Web应用程序,常见的错误的设计如下:1.领域模型对象用来存储应用的数据(当作DTO使用),领域模型是贫血模型这样的反模式。2.服务层每个实体有一个服务。问题是这样很普遍,错误在哪里呢?Spring的web应用程序之所以这样是因为他...转载 2018-05-07 13:34:36 · 305 阅读 · 0 评论 -
领域驱动设计(DDD:Domain-Driven Design)
转自Jdon.com,DDD专题,戳这里开始Eric Evans的“Domain-Driven Design领域驱动设计”简称DDD,Evans DDD是一套综合软件系统分析和设计的面向对象建模方法。 过去系统分析和系统设计都是分离的,正如我们国家“系统分析师” 和“系统设计师” 两种职称考试一样,这样割裂的结果导致,需求分析的结果无法直接进行设计编程,而能够进行编程运行的代码却扭曲需求,导致客...转载 2018-05-07 13:26:38 · 481 阅读 · 0 评论 -
【Spring 5】响应式Web框架前瞻
1 响应式宣言和敏捷宣言一样,说起响应式编程,必先提到响应式宣言。We want systems that are Responsive, Resilient, Elastic and Message Driven. We call these Reactive Systems. - The Reactive Manifesto图片出处:The Reactive Manifesto不知道是不是为了...转载 2018-07-04 20:00:39 · 196 阅读 · 0 评论 -
【Spring 5】响应式Web框架实战(上)
前情概要: - 【Spring 5】响应式Web框架前瞻 - 响应式编程总览1 回顾通过前两篇的介绍,相信你对响应式编程和Spring 5已经有了一个初步的了解。下面我将以一个简单的Spring 5应用为例,介绍如何使用Spring 5快速搭建一个响应式Web应用(以下简称RP应用)。2 实战2.1 环境准备首先,从GitHub下载我的这个示例应用,地址是https://github.com/em...转载 2018-07-04 20:02:32 · 834 阅读 · 0 评论 -
菜鸟,下一代分布式体系架构的设计理念
二十年来,整个分布式系统架构的演进,从 C/S 到 B/S,再到分布式系统,当前广泛使用的是网格计算和云计算,包括目标、定位、场景。菜鸟乃至阿里在全球化进程中,也面临着全球分布式架构问题,以及仓储系统中独特场景下云计算能力的不足。菜鸟资深技术专家 黄浩 老师目前带领团队在设计规划菜鸟下一代分布式系统架构,结合传统云计算 PaaS/BaaS 以及边缘计算能力,将其应用在全球多域体系中。黄浩老...转载 2018-11-25 12:15:44 · 2045 阅读 · 0 评论 -
Java架构经验总结
下面这3种方法,你应该加以重视:吃透基础技术养成良好的阅读源码的习惯有长期的技术学习规划下面,我们来一起逐条看看,特别是第 3 个方法。吃透基础技术基础技术是各种上层技术共同的基础。吃透基础技术是为了更好地理解程序的运行原理,并基于这些基础技术进化出更优化的产品。很多分布式系统架构,以及高可用、高性能、高并发的解决方案基本都可以在基础技术上找到它们的身影。所以,对基础技术的...转载 2018-10-22 21:13:54 · 899 阅读 · 0 评论 -
知乎容器化构建系统设计和实践
知乎选用 Jenkins 作为构建方案,因其强大和灵活,且有非常丰富的插件可供使用和扩展。早期,应用数量较少时,每个开发者都手动创建并维护着几个 Job,各自编写 Jenkins Job 的配置,以及手动触发构建。 关于 知乎应用平台团队基于 Jenkins Pipeline 和 Docker 打造了一套持续集成系统。Jenkins Master 和 Slave 基于 Docker...转载 2018-10-15 10:54:52 · 796 阅读 · 0 评论 -
Spark Streaming整合flume实战
Spark Streaming对接Flume有两种方式Poll:Spark Streaming从flume 中拉取数据 Push:Flume将消息Push推给Spark Streaming1、安装flume1.6以上2、下载依赖包spark-streaming-flume-sink_2.11-2.0.2.jar放入到flume的lib目录下3、生成数据服务器上的 /root...转载 2018-09-12 10:46:42 · 173 阅读 · 0 评论 -
HDFS、MR、Kafka、Storm、Spark、Hbase、Redis原理图
1、大数据分析阶段图2、大数据分析平台总体架构3、大数据分析平台技术栈4、HDFS分布式存储原理图5、MR计算原理图6、Kafka分布式消息队列原理图7、Storm分布式流式计算原理图8、Spark内存计算原理图9、Hbase列式存储数据库原理图10、Redis...转载 2018-09-12 10:11:46 · 954 阅读 · 0 评论 -
[译] 我们是如何高效实现一致性哈希的
原文地址:How we implemented consistent hashing efficiently 原文作者:Srushtika Neelakantam 译文出自:掘金翻译计划 本文永久链接:https://github.com/xitu/gold-miner/blob/master/TODO1/how-to-implement-consistent-hashing-efficie...转载 2018-07-31 15:55:38 · 195 阅读 · 0 评论 -
【Spring 5】响应式Web框架实战(下)
- 【Spring 5】响应式Web框架前瞻 - 响应式编程总览 - 【Spring 5】响应式Web框架实战(上)1 回顾上篇介绍了如何使用Spring MVC注解实现一个响应式Web应用(以下简称RP应用),本篇接着介绍另一种实现方式——Router Functions。2 实战2.1 Router FunctionsRouter Functions是Spring 5新引入的一套Reactiv...转载 2018-07-04 20:04:14 · 389 阅读 · 0 评论 -
领域模型
1. 概念显示最重要的业务概念和它们之间的关系的类图。类表示业务概念,但类通常只包含重要属性,不包含操作。关联和泛化显示了这些概念之间的关系。2. 建立用例模型的过程2.1发现类和对象(1)名词分析法识别问题域和用例描述中的名词和名词短语,然后将它们作为候选的概念类或属性。举例:主要的成功场景:1.顾客携带购买的商品到达POS机收费口2.收银员开始一次新的销售3.收银员输入商品标识4.系统记录销售...转载 2018-05-06 21:28:00 · 1017 阅读 · 0 评论