10 colie_li

尚未进行身份认证

我要认证

coding

等级
TA的排名 2k+

支付宝应用的架构到底有多牛?

原文:https://mp.weixin.qq.com/s/tTn5BnD2IfIYYvcXWXQRmw自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限。2010 年双 11 的支付峰值为 2 万笔/分钟,到 2017 年双 11 时这个数字变为了 25.6 万笔/秒。2018 年双 11 的支付峰值为 48万笔/秒,2019 年双 11 支付峰值为 54.4 万笔/秒,创下新纪录,是 2009 年第一次双 11 的 1360倍。...

2020-07-13 02:18:34

饿了么交易系统 5 年演化史

原文:https://mp.weixin.qq.com/s/mtPQLSONUCWOC2HDPRwXNQ我为什么会写这篇文章,究其缘由:一是自己在交易域做了 4 年,有很多只有我才知道,才能串起来的故事,想把这些记录并保留下来。二是发现后边的很多同学看交易体系时,一接触就是分布式、SOA、每日百万、千万数据量,只知道它是这个样子,很难理解背后的思考和缘由。伴随自己这几年的经验,想让大家能够更容易的理解这个演化过程的原因和历程,有甘有苦。三是很多总结也好,方法论也好,更多是去...

2020-07-13 02:14:50

基于大中台架构的电商业务中台最佳实践之三:交易中台技术要点设计之高性能

接着上篇继续讲,接下来主要介绍交易总体设计的技术要点设计,对于电商中台来说,交易系统是核心中的核心,一开始就需要围绕高性能,高可用,和高扩展三个方面来重点设计。本篇主要介绍高性能设计。对于高性能的定义,通常可以理解为系统/服务接口响应时间低(rt)且并发量(qps,tps)高. 提高性能的主要策略有:选择合理的分布式事务处理机制,数据库的分库分表,读写分离,异步化,缓存,复杂查询走搜索。选择合理的分布式事务处理机制交易业务要求订单,库存,优惠券,红包,支付等数据要强一致,如何保证这些数据之间的一致

2020-05-11 00:11:04

并发编程之Disruptor框架介绍和高阶运用

1.Disruptor是什么1.1技术背景LMAX是在英国注册并受到FCA监管(监管号码为509778)的外汇黄金交易所, LMAX架构是LMAX内部研发并应用到交易系统的一种技术。它之所以引起人们的关注,是因为它是一个非常高性能系统,这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,官方号称它能够在一个线程里每秒处理6百万订单.一个仅仅部署在4台服务器上的服务,每秒向D...

2020-04-12 00:58:05

手机通过Charles用线上域名访问PC本地项目

最近调试微信公众号,由于微信授权需要线上正式环境的域名,笔者想把手机公众号网页重定向到PC本地localhost调试。该方法通过Charles代理转发,适用所有需要域名重定向的场景,例如手机通过在线域名查看pc本地项目,微信开发者工具调试公众号等。先开启本地服务,如果是vue项目,直接运行npmstart就好了。打开Charles(下载地址),点击Tools >...

2020-04-07 02:20:52

Charles抓包(iOS的http/https请求)

Charles安装 HTTP抓包 HTTPS抓包1. Charles安装官网下载安装Charles:https://www.charlesproxy.com/download/2. HTTP抓包(1)查看电脑IP地址(2)设置手机HTTP代理手机连上电脑,点击“设置->无线局域网->连接的WiFi”,设置HTTP代理:服务器为电脑IP地址:如192....

2020-04-07 01:55:39

认识Spring 的注解 (三)之 @AliasFor 使用规则

一、该标签存在的意义 顾名思义 @AliasFor 表示别名,它可以注解到自定义注解的两个属性上,表示这两个互为别名,也就是说这两个属性其实同一个含义。该标签存在的含义,从网上查发现有个点, 若 自定义注解有一个属性,且该属性命名上为了体现其含义,所以有些复杂,这样调用方必须每次使用自定义注解的时候,都必须写明 属性 ,然后设置,这样会比较负责; 同时若自定义注解继...

2020-02-26 01:50:13

Servlet3之NIO线程池隔离

线程隔离主要是针对业务中不同业务场景,按照权重区分使用不同的线程池,以达到某一个业务出现问题,不会将故障扩散到其他的业务线程池,从而达到保证主要业务高可用。本案例主要讲解基于servlet3的线程隔离术。首先我们回忆一下在tomcat6,tomcat6只支持BIO,它的处理流程如下:1).tomcat负责接收servletRequest请求2).将接收的请求分配给servlet处理业务3...

2019-12-30 01:49:04

Java中文分词hanlp使用

HanLP介绍:http://hanlp.linrunsoft.com/github地址:https://github.com/hankcs/HanLP说明:使用hanlp实现分词、智能推荐、关键字提取、摘要等,更多功能参考官网项目结构该项目中,.jar和data文件夹和.properties需要从官网/github下载,data文件夹下载项目配置修改hanlp.prope...

2019-12-29 15:38:36

zookeeper分布式锁

问题(1)zookeeper如何实现分布式锁?(2)zookeeper分布式锁有哪些优点?(3)zookeeper分布式锁有哪些缺点?简介zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它可以为分布式应用提供一致性服务,它是Hadoop和Hbase的重要组件,同时也可以作为配置中心、注册中心运用在微服务体系中。本章我们将介绍zookeeper如何实现分布...

2019-12-14 23:18:29

日志体系与SringBoot的日志应用

以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法;日志实现意思为简单日志门面,它是把不同的日志系统的实现进行了具体的抽象化,只提供了统一的日志使用接口,使用时只需要按照其提供的接口方法进行调用即可,由于它只是一个接口,并不是一个具体的可以直接单独使用的日志框架,所以最终日志的格式、记录级别、输出方式等都要通过接口绑定的具体的日志系统来...

2019-12-08 00:47:40

四层、七层负载均衡的区别

一、什么是负载均衡(Load balancing)在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但是随着业务量越来越大,无论是性能上还是稳定性上都有了更大的挑战。这时候我们就会想到通过扩容的方式来提供更好的服务。我们一般会把多台机器组成一个集群对外提供服务。然而,我们的网站对外提供的访问入口都是一个的,比如www.taobao.com。那么当用户在浏览器输入www.taobao...

2019-11-24 02:31:55

使用httpclient必须知道的参数设置及代码写法、存在的风险

结论:如果使用httpclient 3.1并发量比较大的项目,最好升级到httpclient4.2.3上,保证并发量大时能抗住。httpclient 4.3.3,目前还有一些bug;还是用4.2.x稳定版本吧。以库存项目为例:httpclient一天并发量在1500w左右,峰值一秒7万。在之前使用过程中,一直存在大量的org.apache.http.co...

2019-11-20 18:35:09

获取Dao上的自定义注解(了解Mybatis与Spring整合原理)

Dao类@Repository@Tag("user_tag")public interface UserDao {void save(User u)}需要是:将dao放入到一个本地Map中,key是Tag注解的内容,值是UserDao的Bean对象,在上层调用的时候直接Map.get("user_tage").save(u)即可实现1:实现接口BeanPostProce...

2019-11-12 23:01:09

什么是列式存储数据库

列存储不同于传统的关系型数据库,其数据在表中是按行存储的,列方式所带来的重要好处之一就是,由于查询中的选择规则是通过列来定义的,因此整个数据库是自动索引化的。按列存储每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量,一个字段的数据聚集存储,那就更容易为这种聚集存储设计更好的压缩/解压算法。传统的行存储和列存储的区别1、数据是按行存储的2、没有索引的查询...

2019-11-11 11:57:05

灰度划分方法

将一堆用户按照百分比划分方式:x &(-1)=x%比如将用户分1024个桶就是uid & (-1) 相当于 uid%1024

2019-11-04 22:17:19

互联网架构的演变过程

简介web1.0时代web2.0时代互联网时代 互联网+ --》智慧城市。 2012年提出。云计算+大数据时代背景随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。1、第一时期单一应用架构all in one(所有的模块在一起,技术也不分层)网站的初...

2019-11-03 01:17:38

CPU密集型、IO密集型与线程关系

CPU密集型(CPU-bound)CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算...

2019-07-17 10:13:46

OmniGraffle-绘制流程图

一、介绍OmniGraffle 都类似于 Microsoft Visio。OmniGraffle 可以利用 Visio 的 XML 导出函数以导入/导出 Visio 的 XML 文件,OmniGraffle 也可以直接打开 Visio 默认的二进制 .vsd 文件。OmniGraffle 支持输出 PDF,TIFF,PNG,JPEG,EPS,HTML 图像映射,SVG,Visio XML,Pho...

2019-10-12 18:34:06

利用状态机处理订单状态流转

首先简述一个场景,订单的状态流转。一个订单会有很多种状态:临时单、已下单、待支付、已支付、已完成、退款中等等。每一种状态都和其扭转前的状态、在扭转前状态所执行的操作有关。一 引子举例一个过程:用户将商品加入购物车,在后台生成了一个所谓的“临时单”,这个订单实际上还没有正式生成,因为用户仍然没有点击下单。只有当用户下单后,这个“临时单”才可以转化为一个“待支付的订单”。那么这个过程中:只有...

2019-10-11 01:29:26

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取