• 淘宝万亿级海量交易订单都存储在哪呢?

    阿里巴巴旗下的淘宝和天猫作为国内最大在线购物平台,提供售卖的商品数目数以亿计,其活跃用户数量超过了7亿人,服务的商家的数量也在数千万量级。面对性能和成本的双重压力,阿里数据库内核团队如何应对?01、淘宝交易订单系统介绍天猫和淘宝每天发生的实物和虚拟商品的交易达到亿级别。考虑到一次成功交易的整个链路,会涉及到会员信息验证,商品库信息查询,订单创建,库存扣减,优惠扣减,订单支付,物...

    架构设计 2020年04月27日 1336 0
  • 架构师必懂的——下一代微服务ServiceMesh

    今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础。作为架构师,如果你现在还不了解ServiceMesh的话,是否感觉有点落伍了?那么到底什么是ServiceMesh?它诞生的背景是什么?它解决什么问题?企业是否适合引入ServiceMesh?根据近年在一线互联网企...

    架构设计 2020年04月26日 2060 0
  • 「微服务架构」微服务架构中的数据一致性

    在微服务中,一个逻辑上原子操作可以经常跨越多个微服务。即使是单片系统也可能使用多个数据库或消息传递解决方案。使用多个独立的数据存储解决方案,如果其中一个分布式流程参与者出现故障,我们就会面临数据不一致的风险 - 例如在未下订单的情况下向客户收费或未通知客户订单成功。在本文中,我想分享一些我为使微服务之间的数据最终保持一致而学到的技术。为什么实现这一目标如此具有挑战性?只要我们有...

    架构设计 2020年04月24日 1362 0
  • 淘宝从百万到千万级并发的14次服务端架构演进之路

    # 概述本文以淘宝为例,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。# 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:分布式系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据...

    架构设计 2020年04月22日 1276 0
  • 一文带你了解 OAuth2 协议与 Spring Security OAuth2 集成

    OAuth 2.0 允许第三方应用程序访问受限的HTTP资源的授权协议,像平常大家使用 Github 、 Google 账号来登陆其他系统时使用的就是 OAuth 2.0 授权框架,下图就是使用 Github 账号登陆 Coding 系统的授权页面图:类似使用 OAuth 2.0 授权的还有很多,本文将介绍 OAuth 2.0 相关的概念如:角色、授权类型等知识,以下是我整理一...

    架构设计 2020年04月21日 1314 0
  • 5种分布式事务解决方案优缺点对比

    背景分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免。ACID指数据库事务正确执行的四个基本要素:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)CAPCAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consisten...

    架构设计 2020年04月20日 1338 0
  • 微服务平台建设方案

    1 系统设计1.1 总体框架1.1.1 功能架构微服务平台主要由服务支撑层、基础服务层、通用服务及业务服务层组成,系统总体功能架构图如下: 1) 基础设施微服务平台的基础设施包括网络、存储、计算等硬件基础设施,为平台的运行提供基础保障。2) 服务支撑层服务支撑层为保证整个服务平台健康、高效运行提供支撑服务,包括服务注册与发现中心、配置中心、日志中心、监控中心、服务限流降级与熔断...

    架构设计 2020年04月19日 7314 2
  • 数据库里账号的密码,需要怎样安全的存放?

    最早在大学的时候,只知道用 MD5 来存用户的账号的密码,但其实这非常不安全,而所用到的哈希函数,深入挖掘,也发现并不简单……一、普通的 Hash 函数哈希(散列)函数是什么就不赘述了。1、不推荐#RC4, MD4, MD5, SHA-0, SHA-1, DES, 2DES 等2、推荐#SHA-2(SHA-256, SHA-384, SHA-512)、SHA-3、Blake2 ...

    架构设计 2020年04月17日 1427 0
  • 单点登录(Single Sign On)解决方案

    需求多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。A 网站和 B 网站是同一家公司的关联服务。现在要求,用户只要在其中一个网站登录,再访问另一个网站就会自动登录,请问怎么实现?涉及到的关键点:这里就涉及到了 跨域认证 以及 前端页面 JavaScript 跨域 问题。一、跨域认证问题互联网服务离不开用户认证。一般流程是下面这样。用户向服务器发送账户和密码服...

    架构设计 2020年04月17日 1321 0
  • 企业信息化建设基础之——统一身份认证管理平台

    一、背景随着企业信息化的不断深入,企业增添了很多的管理系统来完善自身信息化发展的需求。同时也面临着身份信息孤岛带来的越来越多的困扰。 企业信息化管理系统存在的问题:重复登录、多套用户名/密码、用户管理不规范、存在安全隐患二、解决出路 —> 统一身份认证1、大幅简化用户登录过程,显著提高效率2、减轻用户管理工作,统一用户管理3、实现高安全身份认证和管理,提升企业信息安全水平...

    架构设计 2020年04月17日 4212 0
  • 数据处理的四个设计原则

    设计模式的实践在面向对象编程(OOP)中最为流行,在Erich Gamma和Richard Helm的经典著作《设计模式:可重用的面向对象软件的元素》中已得到有效的解释和总结。 以下是维基百科中"设计模式"的定义:"软件设计模式是针对软件设计中给定上下文中的常见问题的通用,可重用的解决方案。 它不是可以直接转换为源代码或机器代码的最终设计。 它是如何解决可在许多不同情况下使用的...

    架构设计 2020年04月11日 4155 0
  • 千万级 高并发“秒杀”架构设计

    每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306服务”承受着这个世界上任何秒杀系统都无法超越的QPS,上百万的并发再正常不过了!笔者专门研究了一下“12...

    架构设计 2020年04月09日 1873 0
  • 架构设计:文件服务的设计与实现

    功能文件服务器的核心功能就两个:「文件上传」和「文件下载」!其中上传可能需要支持断点续传、分片上传。而下载可能需要进行下载保护,例如非指定客户端无法下载。除了这两个核心功能,一般都会有一个额外功能,就是「转换」!转换包括:图片规格转换:一张图片需要切分多个不同的尺寸添加水印:图片或视频需要添加水印格式转换:文件格式转换:office转pdf,pdf转word,pdf转图片,of...

    架构设计 2020年04月08日 1621 0
  • 一文读懂为什么HDFS更适合存储大文件

    HDFS(分布式文件系统)是大数据生态圈中不可或缺的一部分,作为大数据生态圈中的存储层,HDFS能够存储结构及非结构化的数据,数据吞吐量大但延时较高,一般用于离线批处理。此外,由于其架构设计,HDFS更适合存储大文件。要了解为什么HDFS更适合存储大文件,首先需要了解其架构设计。HDFS架构设计HDFS采用主从架构设计,由NameNode、SecondaryNameNode及D...

    架构设计 2020年04月07日 2667 0
  • 系统架构设计中,如何在不同层级中进行数据缓存

    商城系统,用户请求,每次都从服务器读取,服务器io瓶颈,大大地限制了系统的性能。我们可以把数据缓存起来,以此来提升系统性能。那什么数据需要缓存?静态数据:很少变化,读的次数远远大于写,比如模版文件、Js文件、用户的基础资料。热点数据:访问量很大,访问频率很高,比如秒杀活动的信息、销售排行榜等。Web应用架构图在架构中,不同层级间都可以使用缓存,以此来加速访问。客户端缓存:Loc...

    架构设计 2020年04月07日 1788 0
  • 基于 token 的多平台身份认证架构设计

    1 概述在存在账号体系的信息系统中,对身份的鉴定是非常重要的事情。随着移动互联网时代到来,客户端的类型越来越多, 逐渐出现了 一个服务器,N个客户端的格局 。不同的客户端产生了不同的用户使用场景,这些场景: 1.有不同的环境安全威胁 2.不同的会话生存周期 3.不同的用户权限控制体系 4.不同级别的接口调用方式综上所述,它们的身份认证方式也存在一定的区别。本文将使用一定的篇幅...

    架构设计 2020年04月07日 1269 0
  • 手把手教你做系统权限设计,看完不要说还不会

    权限系统设计前言权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。1.权限模型迄今为止最为普及的权限设计模型是RBAC模型,基于角色的访问控制(Role-Based Access Control)1.1 RBAC-0模型 RBAC-0模型RBAC-0模型是权...

    架构设计 2020年03月25日 1882 0
  • 什么才是真正的架构设计?

    一. 什么是架构和架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上...

    架构设计 2020年03月17日 2205 0
  • 每秒100W请求,12306秒杀业务,架构如何优化?

    高并发场景,三类业务的架构挑战不一样:QQ类业务,用户主要读写自己的数据,访问基本带有uid属性,数据访问锁冲突较小微博类业务,用户的feed主页由别人发布的消息构成,数据读写有一定锁冲突12306类业务,并发量很高,几乎所有的读写锁冲突都集中在少量数据上,难度最大那么对于秒杀类业务,系统上和业务上分别能如何优化呢,这是本文要讨论的问题。系统层面,秒杀业务的优化方向如何?主要有...

    架构设计 2019年12月05日 2184 0
  • WebSocket 原理浅析与实现简单聊天

    前言随着 Web 的发展,用户对于 Web 的实时推送要求也越来越高,在 WebSocket 出现之前,大多数情况下是通过客户端发起轮询来拿到服务端实时更新的数据,因为 HTTP1.x 协议有一个缺陷就是通信只能由客户端发起,服务端没法主动给客户端推送。这种方式在对实时性要求比较高的场景下,比如即时通讯、即时报价等,显然会十分低效,体验也不好。为了解决这个问题,便出现了 Web...

    架构设计 2019年11月23日 1551 0
  • 所有保持长连接的地方都要用到心跳包

    心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。 网络中的接收和发送数据都是使用SOCKET进行实现。但是如果此套接字已经断开,那发送数据和接收数据的时候就一定会有问题。可是如何判断这个套接字是否还可以使用呢?这个就需要在系统中创建心跳机制。其实TCP中已经为我们实现了一个叫做...

    架构设计 2019年09月26日 1631 0
  • 流程设计思路

    一、流程过程 1.流程起点 2.流转节点 3.是否分流 4.是否合流 5.流程终点 6.是否启动关联流程 二、流程相关因素 1.人员 2.组织机构 3.角色 4.节点及分配 三、流程实现方式 1.数据录入表 2.流转记录表 3.权限分配表 四、表单关联 1.表单与节点关联 2.表单与业务内容关联 以上只是我个人对流程的架构设计初步的思路,暂时记录一下,后续再继续完善。

    架构设计 2017年08月24日 2443 0