自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(1546)
  • 收藏
  • 关注

转载 只有技术人才能看懂的幽默

面试官:请写出一段体现你水平的代码。我:sudo rm -rf /*面试官:这体现了你哪方面能力?我:我大学田径队的.....1、程序有问题时不要担心。如果所有东西都没问题,你就失业了。2、计算机系的男同学追班里一女同学,结果此女总是躲躲闪闪。男的看没戏,就另找了一个去追,结果这女的不满意了,质问这男的为啥抛弃她。男的问:“请教一个电脑问题,如果你点击一个程序,总是提示‘没有响应’,怎么办?”女的...

2022-12-17 21:21:39 381

转载 微服务方法论02--服务划分规则01

背景现在微服务比较流程,那么对于微服务的拆分方法也比较让人困惑。本文从不同的角度切入后以系统的、全面的、统一的方式为各位介绍服务拆分的问题。问题定义服务划分具体的问题在哪里?服务划分是对于具体技术的选择?是选择使用纵向切割的方式,还是使用横向切割的方式将业务切割开。这个切割方式是不是有效,直接对于业务切割是否能够满足其他方面的要求。都是需要考虑的。还是在实现过程中遇到的服务聚合的问题?很多人对于O...

2022-11-10 12:32:24 493

转载 微服务实践--微服务方法论00

思想在接收到一个新的新项目时,架构师的职责是建立项目的业务与技术实现之间的桥梁。在翻译业务到技术实现的过程中需要进行业务建模、技术设计等方面的工作。业务建模和技术设计过程中都有各自领域的知识体系。基本上每个知识体系都是由上层的理论、概念和方法论的提供方向上的支撑,由下层的实施方法、实施工具进行具体工作的实施。在微服务实践系列文章中主要介绍在微服务实践过程中可能会考虑到的方向、以及这些方向可供选择的...

2022-11-09 11:54:54 483

转载 数据库设计范式之逻辑设计

逻辑设计1. 相关名词1.1. 候选码,主码候选码通常有一个或多个,用于唯一确定一个元组(行,对象)。举例:主键,唯一索引都可以是候选码。主码从候选码中选择,通常是表的主键。1.2. 属性,属性名称,域,分量属性就是列,对象属性值。属性名就是列名,字段名,对象属性名。域就是属性值范围。分量就是属性值范围中的某个属性值。举例:用户表的性别是一个属性,gender是属性名,female是属性值,mal...

2022-11-04 07:40:04 246

转载 系统间的交互用接口还是用消息?

在各类系统设计中我们经常会使用这两者做信息的传递、系统的解耦,但是很难说出在什么场景上我们使用标准服务接口,什么场景使用标准消息,好像是都可以用。尤其在平台系统需要支撑各类业务场景的设计上,这类问题往往会是一个很难权衡的点。我们先看一下这两种方式的特点(并非是优缺点)。标准服务接口交互高时效:耗时即为方法处理时间强一致:理论意义上的强一致,直接接口调用为强一致,soa调用需要分布式事务支持,明确能...

2022-11-01 19:17:50 378

转载 五步搭建自己的简易低代码平台

前言平时开发项目时,总会写很多crud代码,开发过程基本一个套路,定义controller、service、dao、mapper、dto,感觉一直在repeat yourself也接触过很多快速开发框架,定义一个sql就可以生成接口,或者定义一个框架脚本自动生成接口,但感觉这些框架没有说太成熟广泛使用的,出了问题也很难解决本文重点研究一下如何只通过定义sql就自动生成接口,但是只是简单实现,为提供...

2022-10-30 19:32:06 4132

转载 应用架构、技术架构、安全架构、部署架构

在日常软件项目开发与实施中,经常会涉及到各种架构图,如应用架构、技术架构、安全架构、部署架构。今天特意将这些架构图整理如下,提供给大家进行学习参考。一、应用架构二、技术架构三、安全架构四、部署架构五、有需要的同学,可以访问下面地址进行克隆,学习更多内容请访问:https://www.processon.com/u/5f633168e0b34d080d54c128/profile出处:https:/...

2022-10-29 20:07:58 593

转载 单点登录必知的两个著名协议:SAML、OAuth2

在本文中,我们将了解单点登录 (SSO) 和 SSO 广泛使用的两种协议,即 SAML 和OAuth2。这是任何程序员都需要理解的复杂领域之一。什么是单点登录?单点登录 (SSO) 是用户可以使用一组凭据登录多个应用程序的过程。考虑到如今网站的数量以及其中大多数都要求进行身份验证,这是一个方便且高效的功能。我们都知道,我们无法为每个应用程序跟踪如此多的凭据集。SSO 来救援了!!!用户无需一遍又一...

2022-09-29 13:33:49 1280

转载 基于Kafka的六种事件驱动的微服务架构模式

在过去的一年里,我一直是负责Wix的事件驱动消息基础设施(基于Kafka之上)的数据流团队的一员。该基础设施被 1400 多个微服务使用。在此期间,我已经实现或目睹了事件驱动消息传递设计的几个关键模式的实现,这些模式有助于创建一个健壮的分布式系统,可以轻松处理不断增长的流量和存储需求。一、消费与投射…那些非常受欢迎的服务会成为瓶颈当您遇到存储大型领域对象的“流行”数据的瓶颈时,此模式可以提供帮助。...

2022-09-29 13:33:49 382

转载 轻松搞定亿级用户中心系统架构

一、背景会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响范围是全公司所有业务线。所以,会员系统必须保证高性能、高可用,提供稳定、高效的基础服务。随着同程和艺龙两家公司的合并,越来越多的系统需要打通同程APP、艺龙APP、同程微信小程序、艺龙微信小程序等多平台会员体系。例如微信小程序的交叉营销,用户买了一张火车票,此时想给他发酒店红包,这就需...

2022-09-28 12:53:07 265

转载 数据库设计的 10 个最佳实践

数据库是应用及计算机的核心元素,负责存储运行软件应用所需的一切重要数据。为了保障应用正常运行,总有一个甚至多个数据库在默默运作。我们可以把数据库视为信息仓库,以结构化的方式存储了大量的相关信息,并合理分类,方便搜索及使用。因此,数据库设计成为软件开发中的重要一环,对于开发者来说,设计一个高效的数据库至关重要。那么,为什么数据库设计很重要,“好”的标准又是什么?本文将做以介绍。为什么数据库设计很重要...

2022-09-28 12:53:07 174

转载 分库分表后,数据库数据一致性问题如何解决?

前言通过对数据的垂直拆分或水平拆分后,我们解决了数据库容量、性能等问题,但是将会面临数据迁移和数据一致性的问题。在数据迁移方面,需要考虑如何快速迁移、平滑迁移、不停机的迁移等。待数据迁移完毕后,还需要校验数据的完整性。数据一致性方面,要根据的业务来判断是否要必要引入分布式事务,如果需要引入分布式事务,需要斟酌是采用XA,还是基于BASE的柔性事务。数据迁移数据迁移是很容易出故障的一个环节,需要考虑...

2022-09-26 18:29:55 394

转载 亿级流量场景下平滑扩容:TDSQL水平拓展方案实践

今天的分享我会主要包含这四部分:第一部分首先介绍水平扩容的背景,主要介绍为什么要水平扩容,主要跟垂直扩容进行对比,以及讲一下一般我们水平扩容会碰到的问题。第二部分会简单介绍TDSQL如何做水平扩容,让大家有一个直观的印象。第三部分会详细介绍TDSQL水平扩容背后的设计原理,主要会跟第一部分进行对应,看一下TDSQL如何解决一般水平扩容碰到的问题。第四部分会介绍实践中的案例。一、数据库水平扩容的背景...

2022-09-26 18:29:55 208

转载 系统设计五步指南

系统设计对话可能非常具有挑战性。可能有很多模棱两可的地方、选项和想法——加上有限的时间和难以解决的问题。根据经验,我发现了一种通用方法,可以帮助使这些对话更有条理、更有趣、更有成效。1. 要求和目标系统设计讨论通常从要解决的开放式问题开始。假设需求是:“让我们设计 Twitter”。从一开始,每个人都需要保持在同一页面上。你可以通过澄清问题然后制定讨论议程来实现这一点。该议程的第一步将讨论需求和目...

2022-09-25 21:37:46 3794

转载 DDD六边形架构入门

经营传统农场绝对是一场噩梦。你必须喂食动物,把它们赶出去,安排兽医的拜访,种植庄稼,驱赶害虫,并同时处理数百项其他任务。把所有东西都放在正确的地方一定是一份全职工作。鸡无意识地四处游荡,被狐狸抢购一空,羊跳篱笆,荆棘丛生侵入你的土地。分离农场的不同功能区域是其成功管理的关键。让那些鸡远离玉米地,并竖起坚固的栅栏以阻止奶牛离开城镇。Clean分离同样,在任何重要的软件项目中,一半的战斗都是管理复杂性...

2022-09-25 21:37:46 208

转载 从单体迁移到微服务的十二种方法

你的团队决定是时候摆脱那个旧的、笨重的单体了,它运行得很好,但是单体已经变得如此之大,以至于你花费更多的精力来维护它而不是添加功能。这里有 12 个技巧,可帮助您尽可能顺利地过渡到微服务。#1 确保你知道你在做什么重写从来都不是一件容易的事,但是从单体应用到微服务,你改变的不仅仅是编码方式;你正在改变公司的运营模式。你不仅需要学习一个新的、更复杂的技术栈,管理层还需要调整工作文化,将人员重组为更小...

2022-09-24 21:10:02 1004

转载 6 条重要的软件架构原则

这是六个重要的软件架构原则的选择。1. 制造、购买、重用——或者更好地重用、购买、至少制造在购买之前重复使用,在制造之前购买。为什么?示例:如果您制作(编码和实施)您的个人公司互联网浏览器、邮件应用程序或办公软件包,会发生什么?答:你会花很多时间和金钱。您将无法专注于您的核心业务。通常,您的解决方案会非常独特,以至于在糟糕的情况下,它需要额外的用户培训。尤其是在大公司中,验证解决方案是否已经存在、...

2022-09-24 21:10:02 190

转载 基于 Kubernetes 的微服务项目设计与实现

随着互联网的发展,后端服务和容器编排技术的日益成熟,微服务成为了后端服务的首选,Kubernetes 也已经成为目前容器编排的事实标准, 微服务拥抱容器时代已经来临。笔者结合自己的经验,写了这篇微服务+ Kubernetes 入门宝典,希望能够抛砖引玉。能让大家了解 微服务和 Kubernetes 如何配合。上卷主要描述 微服务设计,项目实现,kubernetes 部署,微服务的部署 高可用和监控...

2022-09-20 12:47:45 247

转载 设计一个容错的微服务架构

微服务架构使得可以通过明确定义的服务边界来隔离故障。但是像在每个分布式系统中一样,发生网络、硬件、应用级别的错误都是很常见的。由于服务依赖关系,任何组件可能暂时无法提供服务。为了尽量减少部分中断的影响,我们需要构建容错服务,来优雅地处理这些中断的响应结果。本文介绍了基于RisingStack 的 Node.js 咨询和开发经验构建和操作高可用性微服务系统的最常见技术和架构模式。如果你不熟悉本文中的...

2022-09-20 12:47:45 147

转载 主流微服务全链路监控系统之战

问题背景随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。全链路监控组件就在这样的问题背景下产生了。最出名...

2022-09-19 12:47:31 299

转载 一张图看懂微服务架构路线

我为什么选择微服务架构?众所周知,单体应用程序,由于其种种不足,几乎不支持敏捷方法。如果你想为一个大型或复杂的业务创建一个软件项目,最好从微服务架构开始。微服务架构是一种灵活的架构,可以显著性地提高应用程序灵活性、可扩展性等。微服务架构路线据我了解很多开发者,想知道他们应该如何开始微服务架构旅程,虽然有成千上万的资源可以使用,但是资源到处分散。我决定通过为微服务架构学习定义路线图,使这段旅程更加清...

2022-09-19 12:47:31 119

转载 为什么微服务一定要有网关?

一、什么是服务网关服务网关 = 路由转发 + 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去;2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。二、为什么需要服务网关上述所说的横切功能(以权限校验为例)可以写在三个位置:每个服务自己实现一遍写到一个公共的服务中,然后其他所有服务都依赖这个服务写...

2022-09-16 08:15:51 158

转载 MySQL 23道经典面试吊打面试官

1.说一说三大范式「第一范式」:数据库中的字段具有**「原子性」**,不可再分,并且是单一职责「第二范式」:「建立在第一范式的基础上」,第二范式要求数据库表中的每个实例或行必须**「可以被惟一地区分」**。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主键「第三范式」:「建立在第一,第二范式的基础上」,确保每列都和主键列直接相关,而不是间接相关不存在其他表...

2022-09-14 20:07:30 135

转载 分布式定时任务框架怎么选?

我们先思考下面几个业务场景的解决方案:支付系统每天凌晨1点跑批,进行一天清算,每月1号进行上个月清算电商整点抢购,商品价格8点整开始优惠12306购票系统,超过30分钟没有成功支付订单的,进行回收处理商品成功发货后,需要向客户发送短信提醒类似的业务场景非常多,我们怎么解决?为什么我们需要定时任务很多业务场景需要我们某一特定的时刻去做某件任务,定时任务解决的就是这种业务场景。一般来说,系统可以使用消...

2022-09-13 18:48:18 113

转载 分库分表后如何设计索引?全局索引、二级索引

分布式数据库架构下,索引的设计也需要做调整,否则无法充分发挥分布式架构线性可扩展的优势。今天我们就来聊聊 “在分布式数据库架构下,如何正确的设计索引?”主键选择对主键来说,要保证在所有分片中都唯一,它本质上就是一个全局唯一的索引。如果用大部分同学喜欢的自增作为主键,就会发现存在很大的问题。因为自增并不能在插入前就获得值,而是要通过填 NULL 值,然后再通过函数 last_insert_id()获...

2022-09-12 20:00:13 256

转载 倒计时3天!2022世界人工智能大会“下一代可信AI”论坛线上直播火热预约中!...

9月3日,由零犀科技和中国通信工业协会人工智能专业委员会联合主办、集智俱乐部协办的2022世界人工智能大会(WAIC)“下一代可信AI——认知兴起,因果探路”主题论坛即将拉开帷幕!本次论坛将有图灵奖得主倾情分享、AI与因果科学深度融合、技术前沿与产业实践巅峰洞见,扫描图片下方二维码即可参与直播讨论,干货满满,不容错过!...

2022-08-31 12:30:10 188

转载 对DDD(领域驱动设计)分层架构的理解(适合新人)

目前团队大多数项目都是基于DDD分层架构开发的,而不是传统的MVC模式,这就让很多之前没有接触过DDD思想的同学在刚开始接触项目的时候有点懵。那么什么DDD?这种DDD项目结构和之前的有哪些不同,我该如何开发我的代码,开发不同职责的代码该放在哪里?下面就我的理解,说一说DDD的分层架构。传统开发分层传统的数据驱动开发模式,View、Service、dao这种三层分层模式,...

2022-08-08 12:15:36 786

转载 OOAD之设计原则

一、设计原则意义为了设计出一个好的软件系统。我们必须遵照一定的规则。衡量软件设计质量的首要标准是该设计是否能满足软件的功能需求。除了功能需求以外,还有很多衡量软件设计质量的标准,包括可读性、可复用性、可扩展性、可维护性等。1、一般一个好的软件具有以下特点:可读性:软件的设计文档是否轻易被其他程序员理解。可读性差的设计会给大型软件的开发和维护过程带来严重的危害。可复用性:软...

2022-08-07 12:30:16 275

转载 从单体架构迁移到 CQRS架构

软件设计是一个不断发展演进的过程。每个大型系统都是从小微系统开始的。当现有的架构遇到问题而又无法解决时,系统就会开始演进。每一次演进都会伴随着一些技术上的选择。需要解决什么问题?需要付出什么样的代价?作为一名架构师或高级工程师,必须找到一种合理的演进方式,在开发进度、技术栈、团队水平等各方面都能满足条件,这样才能制定出可行的解决方案。本文将介绍 CQRS(命令查询职责分离...

2022-08-06 13:18:37 94

转载 详解DDD“洋葱架构”

领域驱动设计(Domain-driven design,DDD)是一种为复杂需求开发软件的方法,它将软件的实现与不断发展的核心业务概念模型紧密地结合在一起。领域是一个知识的范畴。它指的是我们的软件所要模拟的业务知识。领域驱动设计的中心是领域模型,它对一个领域的流程和规则有着深刻的理解。洋葱架构实现了这一概念,并极大地改善了代码的品质,降低了复杂性,并且支持不断发展的企业系...

2022-08-05 08:00:43 523

转载 SaaS平台产品架构设计

当我们去搜索“架构”,可以得到很多的架构图片,比如组织架构、业务架构、数据架构、技术架构、安全架构、产品架构、部署架构等。什么是架构,通常大家说架构一般指软件架构,架构是指软件的基础结构,创造这些基础结构的准则,以及对这些结构的描述。在这个定义基础上,我们可以简单理解为架构往往是对事物主体的结构性描述。产品架构是对产品的一种结构性描述。一般可以包括前端系统、业务管理、运营...

2022-04-14 20:28:24 977

转载 支付系统设计:支付系统的账户模型

账户体系是支付系统的基础,它的设计直接影响整个系统的特性。这里探讨如何针对电子商务系统的支付账户体系设计。我们从一些基本概念开始入手,了解怎么建模。支付账户和登录账号账户体系设计首先要区分两个概念,支付账户和登录账号。这是两个不同业务领域的概念:支付账户指用户在支付系统中用于交易的资金所有者权益的凭证;登录账号指用户在系统中的登录的凭证和个人信息。一个用户可以有多个登录...

2022-04-06 21:05:16 522

转载 微服务架构设计中的设计模式、原则及最佳实践

本文将介绍微服务架构设计中的设计模式、原则及最佳实践。我们将使用适当的架构设计模式和技术。通过本文,你将了解到如何从单体架构一步步演进到事件驱动的微服务架构,如何利用微服务分布式架构设计一个高可用、高可扩展、低延迟且对网络故障有弹性的系统,以处理数以百万计的请求。我们将从基本的软件架构设计入手,设计一个可以处理少量请求的单体架构的电子商务应用。架构设计之旅之后,我们将介绍...

2022-03-26 20:30:00 936

转载 一文看懂云原生时代 DevOps 如何选型

前言今天的中国互联网,正加速从消费互联网向产业互联网转型,数字化变革逐渐渗透到每一个具体产业,弹性算力已变成各行各业的水电煤,从底层驱动产业变革。以区块链、IoT、人工智能、大数据等先进技术为代表,新的云原生基础设施已经就绪并将继续演进,同时也会伴随着与之配套的技术和管理范式的演进。DevOps 作为数字化时代 IT 研发和管理范式,是企业数字化转型重要的组成部分。当前互...

2022-03-24 20:00:00 261

转载 Serverless 常见的应用设计模式

引言2014 年我们发布了 Lambda 服务,掀起了 Serverless 革命。现在越来越多的人谈论 Serverless 的未来。事实上,我们自己构建的应用程序中有一半以上是基于 Lambda 的,Serverless 能够最大限度地利用云计算的价值。现在,越来越多的客户正在决定采用 Serverless。这里,我们不只是在谈论 Lambda、API Gateway...

2022-03-22 20:30:00 172

转载 基于云原生应用架构设计

一、架构演进软件开发架构大概分为三个阶段,早期、成长期和稳定期。第一个阶段为早期单体架构,一般服务端+数据库的方式进行开发,采用三层MVC架构进行开发。主要特点:企业处于早期,业务比较简单...

2022-03-21 21:00:00 765

转载 DevOps落地实践及案例分享

银行业为了应对业务的快速变化、互联网层面不穷的业务形态和交易压力,IT“双态(或双模)化”无可避免,开始探索部分业务参考互联网的方式引入分布式架构,但对于银行业独特的强监管、高安全、强一致...

2022-03-20 20:00:00 1368

转载 淘宝亿级高并发分布式架构演进之路

1. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设...

2022-03-19 08:00:00 344

转载 软件架构设计分层模型和构图思考

架构思维概述对于架构思维本身仍然是类似系统思维,结构化思维,编程思维等诸多思维模式的一个合集。由于架构的核心作用是在业务现实世界和抽象的IT实现之间建立起一道桥梁,因此架构思维最核心的就是...

2022-03-18 20:00:00 603

转载 高德打车通用可编排订单状态机引擎设计

简介:订单状态流转是交易系统的最为核心的工作,订单系统往往都会存在状态多、链路长、逻辑复杂的特点,还存在多场景、多类型、多业务维度等业务特性。在保证订单状态流转稳定性的前提下、可扩展性和...

2022-03-14 20:08:00 528

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除