工作积累
普通网友
这个作者很懒,什么都没留下…
展开
-
Serverless 云原生原理应用实战
创建项目打包上传程序可以在控制台看到部署的函数原创 2021-10-02 19:47:39 · 245 阅读 · 0 评论 -
消息队列mq 知识点03
消息队列的面试题51、面试题如何保证消息的顺序性?2、面试官心里分析其实这个也是用MQ的时候必问的话题,第一看看你了解不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这个生产系统中常见的问题。3、面试题剖析我举个例子,我们以前做过一个mysql binlog同步的系统,压力还是非常大的,日同步数据要达到上亿。mysql -> mysql,常见的一点在于说大...原创 2020-05-23 10:00:26 · 102 阅读 · 0 评论 -
消息队列mq 知识点01
消息队列的面试题1问题:为什么使用消息队列啊?消息队列有什么优点和缺点啊?kafka、activemq、rabbitmq、rocketmq都有什么区别以及适合哪些场景?1.为什么使用消息队列啊?通用回答是:我们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用MQ可能会很麻烦,但是你现在用了MQ之后带给了你很多的好处。比较核心的有3个业务场景:解耦、异步、削峰解耦:...原创 2020-01-30 22:42:52 · 106 阅读 · 0 评论 -
Nginx 相关01
事件驱动框架:nginx事件驱动框架(书本p254):所谓事件驱动架构,简单来说,就是由一些事件发生源来产生事件,由一个或多个事件收集器(epolld等)来收集、分发事件,然后许多事件处理器会注册自己感兴趣的事件,同时会“消费”这些事件。nginx不会使用进程或线程作为事件消费者,只能是某个模块,当前进程调用模块。传统web服务器(如Apache)的,所谓事件局限在TCP连接建立、关闭上,...原创 2020-03-15 15:34:36 · 76 阅读 · 0 评论 -
计算机网络 知识点01
简述 TCP/IP 四层体系结构HTTP、TELNET、FTP、SMTP????常见的路由选择协议,以及它们的区别?常见的路由选择协议有:RIP 协议、OSPF 协议。RIP 协议:底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是 15 跳。如果大于 15 跳,它就会丢弃数据包。 OSPF 协议:底层是迪杰斯特拉算法,是链路状态路由选择协议,它...原创 2020-04-23 00:07:37 · 66 阅读 · 0 评论 -
深入理解支付设计
从 0 开始学习支付系统架构第一步,用户选择支付渠道,进入商户客户端; 第二步,商户客户端发送支付要素,到商户服务端; 第三步,商户服务端发起支付请求到渠道侧(个别渠道如支付宝是不需要此步骤); 第四步渠道返回支付凭证到商户服务端; 第五步商户服务端返回支付凭证到商户客户端; 第六步,用户调用支付宝控件完成支付。接下来是重点,第七步一般渠道是采用异步通知方法来通知商户,但是有些企业是在第六步支付完成之后,在C端会同步通知支付成功。如果以此结果来判断支付是否成功,其实是不严谨会出问题的原创 2021-06-26 12:03:20 · 324 阅读 · 0 评论 -
kubernetes 学习09 Helm
原创 2021-04-17 21:39:37 · 55 阅读 · 0 评论 -
高并发设计11 秒杀
商品 商品的tair缓存热点key查询是主要风险,在tair mdb开启hotzone的情况下单key的qps上限是100w,抢购时详情、购物车、下单这条交易链路上的商品查询qps远远超过100w。 这次百亿补贴尖货都是普通前端商品,而在2020年春晚时为了保证春节期间发货,将春碗这款商品从淘宝心选改到了天猫超市,引入了主子商品模型。主子商品在做ic2 client查询时,须要分别从mdb读取主商品、主子关系、子商品,热点key的风险增大。 营销 尖货都报名了百亿补贴优惠活动,本质上是一个单品原创 2021-04-17 20:34:14 · 173 阅读 · 0 评论 -
kubernetes 学习08 安全 认证
原创 2021-04-17 18:51:37 · 62 阅读 · 0 评论 -
kubernetes 学习07 集群调度
原创 2021-04-16 23:49:38 · 74 阅读 · 0 评论 -
kubernetes 学习06 存储
K8s 支持有状态的,所以需要存储能力原创 2021-04-12 23:45:11 · 70 阅读 · 0 评论 -
kubernetes 学习05 Service
从etcd中获取变化,然后写入到本地iptablesIngress 需要绑定域名,客户端访问nginx,反向代理到后端的service两个协程直接沟通原创 2021-04-10 20:57:28 · 78 阅读 · 0 评论 -
kubernetes 学习04 资源控制器
原创 2021-04-10 17:08:05 · 62 阅读 · 0 评论 -
kubernetes 学习03 资源清单
InitC : 初始化容器,生成文件,初始化完成后就会死亡;每一次init C完成后才能进入下一次init C,不能构建Main C : 开始会执行start指令,退出的时候,会执行stop 指令readiness : 就绪检测,根据tcp,http连接 判断状态是否可用;可用才把状态修改为runningliveness : 生存检测pause : 负责网络和存储卷的共享,同一个pod中,所有的容器都是共享的...原创 2021-04-10 14:52:18 · 59 阅读 · 0 评论 -
12306 架构设计01
如果A到B有十个站,如[1,2,3,4,5,6,7,8,9,10], 总共有1000张票;请求k1进入抢票系统后,就需要对买的区间[5,6,7,8]进行锁定,同时生成剩下区间[1,2,3,4] 和 [9,10]的两张火车票库存...原创 2020-05-20 21:38:35 · 78 阅读 · 0 评论 -
IM系统架构设计 01
浅谈IM系统的架构设计选择困难症1:网络传输协议的选择目前我知晓的所有IM系统传输即时消息无外乎使用UDP、TCP、基于TCP的http这几种协议中的一种或几种。比如QQ主要采用UDP协议,MSN主要采用TCP协议,而且他们也都支持HTTP协议的代理模式。更多资料,请参加这篇文章《即时通讯等通信软件的网络协议和端口收集整理》。我们该如何选择呢?UDP协议实时性更好,但是如何处理安全可靠的传输并且处理不同客户端之间的消息交互是个难题,实现起来过于复杂; HTTP协议属于扩展支持,..原创 2020-05-19 10:41:42 · 307 阅读 · 0 评论 -
架构17 社交软件红包技术10
社交软件红包技术解密(十):手Q客户端针对2020年春节红包的技术实践1)入口配置:包含活动入口吊坠、小程序入口Banner和一些控制开关等配置内容。春节红包活动横跨小年、除夕、大年初一,每天有4场答题活动,有些场次为商家专场,因此入口配置中提前以列表形式定义好了各天各场次的具体活动信息。2)大插屏配置:包含活动预热大插屏的配置内容,由于刚开始时需求的不确定性,独立出来作为一份配置,后来还增加了分会场呼吸灯的配置内容。3)错峰配置:包含本次春节红包活动客户端错峰方案的配置内容,独立配置,可供手Q原创 2020-05-18 20:30:42 · 398 阅读 · 0 评论 -
架构15 社交软件红包技术08
微博是社交型应用,红包在用户数据、关系、抢红包等结构上存在着各种各样复杂的依赖,这些依赖相比其它应用来说,调用频率更高,性能要求也更高。如上图所示,有多个应用模块接入红包的服务层,服务层由多个节点组成,每个节点对应相应的功能并且相对独立。代码模块的使用和组织上相对独立,保证主功能的快速和稳定,将附属的新功能分离在独立模块中。其中红色虚线框内为核心的功能模块,是重点需要保护的功能。微博红包提供获取红包属性(红包金额、红包设置、红包状态、获取抽取结果列表、拆包,抽奖等)接口。服务层调用红包 SDK 相应..原创 2020-05-18 18:45:16 · 181 阅读 · 0 评论 -
架构14 社交软件红包技术07
社交软件红包技术解密(七):支付宝红包的海量高并发技术实践原创 2020-05-18 18:24:45 · 121 阅读 · 0 评论 -
架构13 社交软件红包技术06
社交软件红包技术解密(六):微信红包系统的存储层架构演进实践原创 2020-05-18 18:19:31 · 115 阅读 · 0 评论 -
架构12 社交软件红包技术05
如上图所示,微信红包的业务包含包、发、抢、拆、查询发送红包和收红包数量,其中最关键的步骤是发红包和抢红包。微信红包是微信支付的商户,微信红包这个商户出售的是钱。发红包用户在微信红包平台使用微信支付购买一份钱,微信红包将钱发放到相对应的微信群。群里的用户抢红包得到微信零钱。这个过程中,微信红包和微信支付之间的关系是商家和第三方支付平台的关系。微信红包和微信支付之间的交互,与普通商家与微信支付的交互一样,需要经过六个步骤。用户发红包时,进入微信红包下一笔订单,系统记录发红包用户、发红包金额、红包数量和要..原创 2020-05-17 23:26:26 · 314 阅读 · 0 评论 -
架构11 社交软件红包技术04
社交软件红包技术解密(四):微信红包系统是如何应对高并发的四、微信红包的两大业务特点微信红包(尤其是发在微信群里的红包,即群红包),业务形态上很类似网上的普通商品“秒杀”活动。就像下面这样:1)用户在微信群里发一个红包,等同于是普通商品“秒杀”活动的商品上架; 2)微信群里的所有用户抢红包的动作,等同于“秒杀”活动中的查询库存; 3)用户抢到红包后拆红包的动作,则对应“秒杀”活动中用户的“秒杀”动作。七、微信红包系统的高并发解决方案综合上面的.原创 2020-05-17 23:25:35 · 168 阅读 · 0 评论 -
架构11 社交软件红包技术03
四、摇一摇红包系统组成红包系统由三部分组成:1)信息流; 2)业务流; 3)资金流。这三部分在组织架构上由不同的后台团队完成:1)信息流——微信后台; 2)业务流——微信支付后台; 3)资金流——财付通后台。在平时,红包系统主要处理个人会话中以消息形式发出的红包,其中:1)信息流主要包括用户操作背后的请求通信和红包消息在不同用户和群中的流转; 2)业务流是用户请求引发的包红包、抢红包和拆红包等的业务逻辑; 3)资金流则是红包背后的资金转账和入账等流程。如上图...原创 2020-05-17 23:15:27 · 221 阅读 · 0 评论 -
架构09 社交软件红包技术01
4.1、接入层接入层是红包后台服务的大门,负责抽奖请求预处理,确保有效的请求才透传给后端服务。为保证自身高可用、高稳定,接入层还可实时控制手机 QQ 请求频率,避免海量请求压垮接入层,出现不可控局面。在海量服务场景下,为避免网络开销,方便后端服务使用 cache 提升性能,接入层采用了一致性 Hash 寻址,保证同一个用户的请求只会落在同一台红包抽奖逻辑机器处理4.2、抽奖系统4.2.1基本介绍抽奖系统作为 QQ 红包的核心系统,在承接用户抽奖请求,按设计合理的几率完成...原创 2020-05-17 17:14:08 · 673 阅读 · 0 评论 -
架构10 社交软件红包技术02
我们看一下这个系统,当时做了一个原型系统,比较简单,它已经实现了所有的功能。如上图所示,摇那个手机的时候会通过客户端发出一个请求,接入服务器,然后摇一摇服务,进行等级判断,判断以后把结果给到后端,可能摇到拜年或红包,假设摇到红包,上面有LOGO和背景图,客户端把这个LOGO和背景图拉回去,用户及时拆开红包,拆的请求会来到红包系统,红包系统进行处理之后会到支付系统,到财富通的转帐系统,最终用户拿到红包。拿到钱以后,只是其中一份,还有好几份是可以分享出去,我们称之为“分裂红包”,通过信息系统转发给好友或..原创 2020-05-17 17:14:00 · 248 阅读 · 0 评论 -
微博架构02
业务中很多需求都会用到类似feed流的架构。例如微信朋友圈 微博 动态 1对N消息。一般feed流的架构实现有下面几种。假如现在的业务场景是微博,然后当前的数据情况是:用户A关注了用户B和C,用户D关注了用户B用户B发了微博A,B,用户C发了微博C,D优缺点:实现较复杂 空间占用较多,一条微博需要插入1+N条记录(N是粉丝用户数)。如果N是几十w或者几百w,对数据库压力非常大,包括空间占用,插入或删除耗时,索引建立等。 第2个接口可以用索引,所以查询很快原创 2020-05-16 22:30:44 · 193 阅读 · 0 评论 -
微博架构01
微博feed系统的推(push)模式和拉(pull)模式和时间分区拉模式架构探讨推模式需要把一篇微博推送给所有关注他的人(推给所有的粉丝),比如姚晨,我们就需要推送给2594751个用户的feeds表中。当然,feeds表可以很好的进行sharding,存储也都是一些数字型的字段,存储空间可能不是很大,用户在查询自己关注的所有人的feed时,速度快,性能非常高,但是推送量会非常大,姚晨发表一篇,就会产生200多万条数据。试想,一个大量用户的微薄系统通过使用推模式,是不是会产生非常惊人的数据.原创 2020-05-16 22:30:50 · 896 阅读 · 0 评论 -
延迟队列实现
分布式延迟消息队列实现分析与设计介绍延迟队列,顾名思义它是一种带有延迟功能的消息队列。 那么,是在什么场景下我才需要这样的队列呢?很多时候我们会有延时处理一个任务的需求,比如说:2个小时后给用户发送短信。15分钟后关闭网络连接。2分钟后再次尝试回调。下面我们来分别探讨一下几种实现方案:1、Java中的DelayQueueJava中的DelayQueue位于java.util.concurrent包下,本质是由PriorityQueue和BlockingQueue实现的阻.原创 2020-06-04 11:20:54 · 483 阅读 · 0 评论 -
工作中架构08 抢红包
微信红包金额是随机数只不过这个随机数有限制:精确到两位小数;最小金额是0.01;最大金额也有限制:2倍的剩余红包平均金额(2倍的数据是毕导视频给出的)不能超发,就是你发了3块钱红包最后红包总额不能超过3块。先抢和后抢的收益均值要大致相同基于上面几点,博主写了一份示例代码,如下:接下来就是代码的测试和验证环节,博主写了一个测试脚本测试上述抢红包算法。博主用python脚本模拟抢红...原创 2020-05-16 16:26:23 · 81 阅读 · 0 评论 -
极客时间 分布式 架构相关03
04 | 如何利用事务消息实现分布式事务?原创 2020-03-09 23:59:07 · 106 阅读 · 0 评论 -
Apache Camel 学习 使用05
Apache Camel - 21 -将Camel嵌入到Spring应用中使用Java DSL 代替 Spring XML DSL使用Spring XML DSL 并不是强制的,也可以使用Java DSL 代替。将fileRoutes以Bean的方式注入到camelContext上下文中。当然,可以在camelContext中使用多个routeBuilder(路由)...原创 2020-03-08 12:27:57 · 378 阅读 · 0 评论 -
Apache Camel 学习 使用04
Apache Camel - 16 - Jetty组件jetty组件提供基于HTTP的端点来消费和生成HTTP请求。也就是说,Jetty组件的行为如同一个简单的Web服务器。Jetty也可以用作HTTP客户端,这意味着您也可以将其与Camel一起用作生产者。Jetty是基于流的,这意味着它接收到的输入被作为一个流提交给Camel。这意味着您将只能读取一次流的内容。Ap...原创 2020-03-07 23:33:04 · 493 阅读 · 0 评论 -
Apache Camel 学习 使用03
Apache Camel - 12 - FTP组件Apache Camel之FTP路由使用Camel易于使用的一件事是端点URI。 通过指定URI,您可以识别您要使用的组件以及组件的配置方式。 然后,您可以决定将消息发送到由此URI配置的组件,还是从中使用消息。本地文件上传至FTP服务器// 从FTP上下载文件 @Override public vo...原创 2020-03-07 22:15:21 · 248 阅读 · 0 评论 -
Apache Camel 学习 使用02
Apache Camel - 6 - Camel结构在高层次上,Camel是由处理器,组件和路由组成的。 所有这些都包含在CamelContext中路由引擎由DSL将终端和处理器连接在一起形成路由。路由引擎使用路由作为消息路由的规范。路由使用Camel的域特定语言(DSL)之一来定义。 处理器用于在路由期间转换和操作消息,并实现所有的EIP模式,这些模式在DSL语言中都有相应的...原创 2020-03-07 18:35:53 · 565 阅读 · 0 评论 -
Apache Camel 学习 使用01
Camel 发布HTTPApache Camel - 4 - Camel元素1. Endpoint控制端点Apache Camel中关于Endpoint最直白的解释就是:Camel作为系统集成的基础服务组件,在以及编排好的路由规则中,和其他系统进行通信的设定点。这个"其他系统",可以是存在于本地或者远程的文件系统,可以是进行业务处理的订单系统,可以是消息队列服...原创 2020-03-07 17:35:01 · 427 阅读 · 0 评论 -
Apache Camel 学习 简介02
Apache Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和处理的引擎,提供企业集成模式的Java对象的实现,通过应用程序接口 或称为陈述式的Java领域特定语言(DSL)来配置路由和处理的规则。其核心的思想就是从一个from源头得到数据,通过processor处理,再发到一个to目的的.这个from和to可以是我们在项目集成中经常碰到的类型:一个FTP文件夹中的文件,一...原创 2020-03-07 16:12:00 · 452 阅读 · 0 评论 -
Java 基础知识点 11
38 | 案例分析(一):高性能限流器Guava RateLimiter39 | 案例分析(二):高性能网络应用框架Netty40 | 案例分析(三):高性能队列Disruptor除此之外,在 Disruptor 中,生产者线程通过 publishEvent() 发布 Event 的时候,并不是创建一个新的 E...原创 2020-04-02 23:49:39 · 41 阅读 · 0 评论 -
Java 基础知识点 10
23 | Future:如何用多线程实现最优的“烧水泡茶”程序?24 | CompletableFuture:异步编程没那么难25 | CompletionService:如何批量执行异步任务?26 | Fork/Join:单机版的MapReduce...原创 2020-02-23 22:56:25 · 41 阅读 · 0 评论 -
Java 基础知识点09
08 | 管程:并发编程的万能钥匙09 | Java线程(上):Java线程的生命周期10 | Java线程(中):创建多少线程才是合适的?11 | Java线程(下):为什么局部变量是线程安全的?14 | Lock和Condition(上):隐藏在并发包中的管程15 | Lock和Cond...原创 2020-02-23 22:05:53 · 47 阅读 · 0 评论 -
Java 基础知识点08
02 | Java内存模型:看Java如何解决可见性和有序性问题03 | 互斥锁(上):解决原子性问题原创 2020-02-22 11:10:25 · 44 阅读 · 0 评论