架构
文章平均质量分 90
hellozhxy
这个作者很懒,什么都没留下…
展开
-
四种常用的微服务架构拆分方式
微服务架构并无标准架构,不然什么架构师大会也不会各个系统架构百花齐放了。虽然没有固定的套路,却有一些经验,今天就来做一个总结。基于角色拆分这种拆分方式常见于基础设施以及其PaaS层的架构,比如服务治理、k8s、kafka。所谓基础组件的PaaS层是说,基础设施本身主要作为基础设施使用,是IaaS层。但是基础设施本身需要维护功能,需要增删改查等运维操作。业界基于开源做的二次开发也着重在做这方面的工作。下面以kafka做说明。因为要上升到PaaS层,下图基于美团对kafka的二次开发封装,产品名叫m转载 2022-03-29 19:41:21 · 2605 阅读 · 0 评论 -
高可用架构
一、可用性度量与考核 首先,不得不说:要保证一个网站永远完全可用几乎是一件不可能完成的任务(Mission Impossible,是不是有点碟中谍的感觉)。 (1)如何度量网站可用性? 一个神奇的数字—9!你有几个9,就代表了你的可用性。例如QQ可用性达到了4个9:99.99% ①2个9=基本可用 ②3个9=较高可用 ③4个9=具有自动恢复能力的高可用 ④5个9=极高可用->理想状态 那么,可用性的9又是怎么计算出来的呢: ①网站不可用时间=故障修复时间点-故.转载 2021-09-17 10:40:23 · 485 阅读 · 0 评论 -
领域驱动设计(DDD)的精髓
边界是核心无论是从宏观到微观再到纳米层次,还是从战略设计推进到战术设计,领域驱动设计一直强调的核心思想,就是对边界的划分与控制。从分析需求一开始,我们就需要通过确定项目的愿景与目标,划定问题空间,由此确定核心子领域、通用子领域与支撑子领域。这是领域驱动设计的第一重边界。它帮助团队看清主次,理清了问题域中领域逻辑的优先级,同时促使团队在宏观层次的全局分析阶段能够将设计的注意力放在领域和对领域模型的理解上,满足领域驱动设计的要求。进入解决方案空间,战略设计获得的限界上下文成为了领域驱动设计的第二重边转载 2021-09-17 10:25:08 · 2373 阅读 · 0 评论 -
高可用系统架构设计 技术方案
背景可靠的系统是业务稳定、快速发展的基石。那么,如何做到系统高可靠、高可用呢?高可用方法论下面的表格里,列出了高可用常见的问题和应对措施。可扩展扩展是最常见的提升系统可靠性的方法,系统的扩展可以避免单点故障,即一个节点出现了问题造成整个系统无法正常工作。换一个角度讲,一个容易扩展的系统,能够通过扩展来成倍的提升系统能力,轻松应对系统访问量的提升。一般地,扩展可以分为垂直扩展和水平扩展:1、垂直扩展在同一逻辑单元里添加资源从而满足系统处理能力上升的需求。比如,当转载 2021-09-16 10:51:12 · 1089 阅读 · 0 评论 -
商城计价中心 - 从容应对复杂场景价格计算
一、背景随着vivo商城的业务架构不断升级,整个商城较为复杂多变的营销玩法被拆分到独立的促销系统中。拆分后的促销系统初期只是负责了营销活动玩法的维护,促销中最为重要的计价业务仍然遗留在商城主站业务中,且由于历史建设问题,商城核心交易链路中商详页、购物车、下单这三块关于计价逻辑是分开独立维护的,没有统一,显然随着促销优惠的增加或者玩法的变动,商城侧业务重复开发量会显著加大。促销系统的独立,计价相关业务能力从业务边界上也应由促销系统提供,因此促销侧需要从头开始设计促销计价相关能力。转载 2021-08-23 15:51:16 · 621 阅读 · 0 评论 -
几个SpringCloud常见面试题及答案
全文目录 什么是微服务? 微服务之间如何独立通讯的? SpringCloud 和 Dubbo 有哪些区别? SpringBoot 和 SpringCloud 之间关系? 什么是熔断?什么是服务降级? 微服务的优缺点是什么?说下你在项目中碰到的坑。 eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别? 你所知道微服务的技术栈有哪些?列举一二。 什么是微服务架构? 1.什么是微服务?单个轻转载 2021-08-19 11:27:53 · 8061 阅读 · 0 评论 -
秒杀系统架构分析
1 秒杀业务分析正常电子商务流程查询商品;创建订单;扣减库存;更新订单;付款;卖家发货;秒杀业务的特性低廉价格;大幅推广;瞬时售空;一般是定时上架;时间短、瞬时并发量高;2 秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:1、对现有网站业务造成冲击秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发访问量大的特点,如果和网站原有应用部署在一起,必原创 2021-08-18 14:29:13 · 245 阅读 · 0 评论 -
如果20万用户同时访问一个热点缓存,如何优化你的缓存架构?
(1)为什么要用缓存集群这篇文章,咱们来聊聊热点缓存的架构优化问题。其实使用缓存集群的时候,最怕的就是热key、大value这两种情况,那啥叫热key大value呢?简单来说,热key,就是你的缓存集群中的某个key瞬间被数万甚至十万的并发请求打爆。大value,就是你的某个key对应的value可能有GB级的大小,导致查询value的时候导致网络相关的故障问题。这篇文章,我们就来聊聊热key问题。先来看看下面的一幅图。简单来说,假设你手头有个系统,他本身是集转载 2021-08-18 11:34:54 · 263 阅读 · 0 评论 -
红包系统架构设计
软件系统设计,第一步,确定关键需求。需求分析比如红包这个系统,需要有如下:包红包 发红包 抢红包 拆红包 不能抢超,也就是说红包个数,金额是有限的,不能超的。 支持高并发,例如1亿用户凌晨12点开始抢红包。上面的 4 方面就是关键需求。包红包:系统为每个红包设置一个 id ,然后将红包发送个用户,这里需要设置 红包金额,红包个数,要发送的用户,存储这些信息。 发红包,设置完红包参数后,微信支付,完成付款,然后收到付款成功通知,红包系统更新红包订单状态,更新为已支付,并写入红包发转载 2021-08-17 17:02:30 · 2480 阅读 · 0 评论 -
结合电商支付业务一文搞懂DDD
2004 年,软件大师 Eric Evans 的不朽著作《领域驱动设计:软件核心复杂性应对之道》面世,从书名可以看出,这是一本应对软件系统越来越复杂的方法论的图书。然而,在当时,中国的软件业才刚刚起步,软件系统还没有那么复杂,即使维护了几年,软件退化了,不好维护了,推倒重新开发就好了。因此,在过去的那么多年里,真正运用领域驱动设计开发(DDD)的团队并不多。一套优秀的方法论,因为现实阶段的原因而一直不温不火。不过,这些年随着中国软件业的快速发展,软件规模越来越大,生命周期也越来越长,推倒重新开发的成转载 2021-08-10 15:29:25 · 313 阅读 · 0 评论 -
微服务网关的设计与实现
API网关概述“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。”——David Wheeler分布式服务架构、微服务架构与 API 网关1. 什么是API网关(API Gateway)其实,网关跟面向服务架构(Service Oriented Architecture,SOA)和微服务架构(MicroServicesArchitecture,MSA)有很深的渊源。十多年以前,银行等金融机构完成全国业务系统大集中以后,分散的系统都变得集中,也带来了各种问题:业务发展过快转载 2021-05-12 14:03:38 · 1927 阅读 · 0 评论 -
GraphQL及元数据驱动架构在后端BFF中的实践
GraphQL是Facebook提出的一种数据查询语言,核心特性是数据聚合和按需索取,目前被广泛应用于前后端之间,解决客户端灵活使用数据问题。本文介绍的是GraphQL的另一种实践,我们将GraphQL下沉至后端BFF(Backend For Frontend)层之下,结合元数据技术,实现数据和加工逻辑的按需查询和执行。这样不仅解决了后端BFF层灵活使用数据的问题,这些字段加工逻辑还可以直接复用,大幅度提升了研发的效率。本文介绍的实践方案已经在美团部分业务场景中落地,并取得不错效果,希望这些经验能.转载 2021-05-07 15:25:39 · 260 阅读 · 0 评论 -
DDD 领域驱动设计
前言什么是领域,我习惯描述的是制药领域、环境领域、建筑领域、金融领域等,而在领域内,各种业务规则、业务知识盛行,如何有效的把控规则的变化,应对复杂知识,有一个很关键的四字词语,分而治之。分治法在很多场景下体现了其强大的作用力。领域本身很大,那就拆分,得到更小的领域,也即子域,如同递归调用一般,将一个复杂问题拆分单独求解,而最终将解汇总得到复杂问题解。怎么拆,拆成怎么样合适,依据什么拆,这些在领域驱动设计中有了一套答案,虽然领域驱动设计不是银弹,但可以说的上是一套极好的系统方法论或称为架构设计的方法论转载 2021-02-24 11:30:26 · 288 阅读 · 0 评论