- 博客(34)
- 资源 (58)
- 收藏
- 关注
原创 TCP面试问题集锦
HTTP协议提供扩展机制,Header中增加了Cookie,存储在客户端,每次请求时自动携带,采用空间换时间机制,满足上下请求关联。当然为了减轻网络负担,浏览器会限制Cookie的大小,不同浏览器的限制标准略有差异,如:Chrome 10,限制最多 180个,每个Cookie大小不能超过 4096 bytes。但是窗口越大,如果数据发生错误,损失也就越大,因为需要重传越多的数据。大数据拆包成多个片段,发送可以保证有序,但是由于网络环境复杂,并不能保证它们到达时也是有序的,为了解决这个问题,对每个片段用。
2024-02-23 15:56:10
1244
原创 深入理解负载均衡原理及算法
能够让同一客户端的请求或者同一用户的请求总是请求在后端同一台机器上,这种算法根据客户端IP求出Hash值然后对端集群总数求余得到值就是服务器集合的下标,一般这种算法用于缓存命中,或者同一会话请求等,但这种算法也有一定的缺点,某一用户访问量(黑产)非常高时可能造成服务端压力过大或者后端服务Down掉,那么客户端就会无法访问,所以也需要一定的降级策略。,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到极大提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。
2023-08-04 14:59:19
976
转载 ElasticSearch为啥这么快
思考几个问题:为什么搜索是近实时的? 为什么文档的 CRUD (创建-读取-更新-删除) 操作是实时的?一. 从上到下的整体结构这里有篇文章讲解的很形象:这是集群cluster。这是节点Node:就是个机器。由一个或者多个节点,多个绿色小方块组合在一起形成一个ElasticSearch的索引。在一个索引下,分布在多个节点里的绿色小方块称为分片:S...
2019-08-27 15:48:03
431
转载 服务发现机制
本文出自Service Discovery in a Microservices Architecture,作者 Chris Richardson, 写于2015年5月19日这是本系列文章的第四篇。第一篇文章:介绍微服务架构并讨论了微服务架构的优点和缺点; 第二篇文章和第三篇文章:描述微服务之间的通信的不同方面;本文我们继续探索与服务发现紧密联系的有关问题。一、为什么使用服务发现?...
2019-04-15 11:09:58
97
原创 一分钟了解负载均衡的一切
1. 什么是负载均衡 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。2. 常见的负载均衡方案 常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游...
2019-03-23 22:44:27
75
转载 RocketMQ基础概念及使用总结
1. 了解RocketMQ? RocketMQ是阿里开源的一款十分优秀的消息队列,RocketMQ具有很多其他消息队列不具有的特性,更重要的是RocketMQ是用Java开发的,学习成本较低,并且经历了双11的数据洪峰的考验。RocketMQ已经加入了apache,成为apache的顶级项目。目前RocketMQ的代码托管在github上:https://github.com/a...
2019-03-12 23:00:22
75
转载 朋友圈微博feed流,推拉实践
上一篇《feed流拉取,读扩散,究竟是啥?》关于feed流的拉取还是推送,只写了一半“拉取”,今天介绍另一半“推送”(写扩散)。为了对比“拉”“推”两种方案,同时也为了避免大伙在两篇文章切换,故先简单赘述背景与“拉”(读扩散)方案。feed业务特点:有类似于“关注/粉丝”的好友关系,个人的主页由别人发布的feed消息组成。feed业务典型动作:关注,取关,发布feed,拉取...
2019-03-10 22:45:06
86
转载 feed流拉取,读扩散,究竟是啥?
任何脱离业务的架构设计都是耍流氓。1. 哪些产品是feed流典型业务?答:微博,微信朋友圈,Pinterest是典型的feed流业务,系统中的每一条消息就是一个feed。这类业务的特点是: 有好友关系,例如关注,粉丝; 我们的主页由别人发布的feed组成; 这类业务的典型动作是: 关注,取关;发布feed;拉取自己的主页feed流; 这类业务的...
2019-03-10 22:42:57
92
转载 微信多点登录,消息漫游,假如让你来实现?
微信如何实现手机端、PC端同时登录,同时收消息? 微信能不能实现,换一个手机,仍能拉取到历史消息?这是多点登录和消息漫游的问题。1. 什么是多点登录?以微信为例,可以PC端,phone端同时登录,同时收发消息。(需要注意的是,一个端只能登录一个实例,例如同一个QQ号,在pc1上登录,再到pc2上登录,后者会把前者踢出,pc1会收到通知“你已在别处登录”。)2. 什么是消息漫游?...
2019-03-10 22:41:58
101
转载 群消息,究竟存1份还是多份?
群信息,用户信息,群成员关系都是基础数据:group_info(gid, group_info);user_info(uid, user_info);group_members(gid, uid);假设一个群(gid)里有4个成员,其中三个在线(A, uid1, uid2),一个不在线(uid3)。A发送了一条消息,很容易想到,对于不同的群友消息存多份,每个群友一个队列来存...
2019-03-10 22:38:46
54
转载 群消息已读回执,究竟是推还是拉?
每当发出一条微信消息,都希望对方尽快看到,并尽快回复,但始终不知道对方是否阅读。每当收到一条不能立马回复的微信消息,都默默返回,假装没看见。微信用于个人社交,产品设计上,在线状态,强制已读回执都有可能暴露个人隐私,故微信并无相关功能。钉钉用于商务交流,其“强制已读回执”功能,让职场人无法再“假装不在线”,“假装没收到”。有甚者,钉钉的群有“强制已读回执”功能,你在群里发出的消息,能...
2019-03-10 21:42:46
140
原创 进程通信机制,进程/线程的同步
1. 进程互斥、同步的概念 进程互斥、同步的概念是并发进程下存在的概念,有了并发进程,就产生了资源的竞争与协作,从而就要通过进程的互斥、同步、通信来解决资源的竞争与协作问题。 在多道程序设计系统中,同一时刻可能有许多进程,这些进程之间存在两种基本关系:竞争关系和协作关系。进程的互斥、同步、通信都是基于这两种基本关系而存在的。为了解决进程间竞争关系(间接...
2019-03-01 17:18:52
662
转载 十种常见排序算法
1. 常见排序算法分类十种常见排序算法一般分为以下几种:1)非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入排序和希尔排序)、选择类排序(简单选择排序和堆排序)、归并排序(二路归并排序和多路归并排序);2)线性时间非比较类排序:计数排序、基数排序和桶排序。总结:1)在比较类排序中,归并排序最快,其次是快速排序和堆排序,两者不相伯仲,但是有一点需要注意...
2019-03-01 17:17:27
777
转载 一致性哈希(hash)算法
1. 算法背景一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。2. 应用场景现在一致性hash算法在分布式系统中也得到了广泛应用,分布式系统中涉及到集群部署,包括缓存R...
2018-12-26 16:58:50
463
原创 深入解析C++ STL中的常用容器
1.关联容器和顺序容器 c++中有两种类型的容器:顺序容器和关联容器,顺序容器主要有:vector、list、deque等。其中vector表示一段连续的内存地址,基于数组的实现;list表示非连续的内存,基于链表实现。deque与vector类似,但是对于首元素提供删除和插入的双向支持。关联容器主要有map和set,map是key-value形式的,set是单值。map和set只能存放唯...
2018-12-23 10:37:26
380
转载 C++ 多态的实现及原理
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始...
2018-12-22 16:02:51
262
原创 分布式锁的几种实现方式
1. 什么是分布式锁 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网...
2018-12-22 14:31:21
330
转载 多线程的同步与互斥(互斥锁、条件变量、读写锁、自旋锁、信号量)
1. 同步与互斥的概念 现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能:都需要访问/使用同一种资源; 多个任务之间有依赖关系,某个任务的运行依赖于另一个任务。【同步】: 是指散布在不同任务之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。最基本的场景就是:...
2018-12-22 11:12:27
1246
转载 线程的同步与互斥:互斥锁
1. 什么是线程的同步与互斥?互斥:是指在某一时刻只允许一个线程运行其中的程序片,具有排他性和唯一性。对于线程A和线程B来讲,在同一时刻,只允许一个线程对临界资源进行操作,即当A进入临界区对资源操作时,B就必须等待;当A执行完,退出临界区后,B才能对临界资源进行操作。同步:指的是在互斥的基础上,实现进程之间的有序访问。假设现有线程A和线程B,线程A需要往缓冲区写数据,线程B需要从缓冲区读数...
2018-12-22 09:37:45
1713
1
原创 海量数据业务优化手段
互联网时代,亿级用户各种网络行为产生大量数据,如何解决海量数据存储?如何高性能读写?解决思路有哪些,本文列举了常用的解决方案:
2014-11-05 10:34:51
845
1
转载 Redis介绍及常用命令
一 Redis介绍Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。Redis能运行在大多数POSIX(Linux, *BSD, OS X 和Solaris等)系统上,官方没有支持Windows的版本。目前最新的版本是2.2.11
2013-07-19 14:42:42
616
原创 消息队列面试问题集锦
如果某个 broker 宕机了,没事儿,那个 broker 上面的 partition 在其他机器上都有副本,此时会从 follower 中重新选举一个新的 leader 出来,大家继续读写那个新的 leader 即可。而消费端拉取并消费消息时,也是希望按正常的状态机流程进行。异步处理:将一个请求链路中的非核心流程,拆分出来,异步处理,减少主流程链路的处理逻辑,缩短RT,提升吞吐量。所以,只能业务端自己做控制,对于已经消费成功的消息,本地数据库表或Redis缓存业务标识,每次处理前先进行校验,保证幂等。
2013-07-10 15:51:09
1113
1
原创 微服务之熔断、降级、限流
限流、熔断和服务降级是系统容错的重要设计模式,从一定意义上讲限流和熔断也是一种服务降级的手段。熔断和服务降级主要是针对非核心业务功能,而核心业务如果流程超过预估的峰值,就需要进行限流。
2013-07-09 18:12:00
2185
原创 缓存穿透与布隆过滤器
本文主要介绍在使用缓存过程中经常会遇到的几个问题:缓存击穿、缓存雪崩、缓存穿透,以及其解决方案。之后会对缓存穿透的解决方案之一布隆过滤器,进行详细讲解。
2013-07-09 18:09:45
2111
原创 分布式唯一 ID 生成方案浅谈
本文主要介绍一下各种分布式ID生成器,旨在给大家一个详细学习的方向,每种生成方式都有它自己的优缺点,具体如何使用还要看具体的业务需求。
2013-07-09 18:04:42
1085
原创 海量数据业务优化之道
互联网时代,亿级用户各种网络行为产生大量数据,如何解决海量数据存储?如何高性能读写?解决思路有哪些,本文列举了常用的解决方案。
2011-07-22 10:41:03
936
1
原创 (万字长文)深入理解redis核心技术
本文主要透彻讲解redis集群、redis事务、redis分布式锁、redis缓存问题、持久化机制等几个核心技术点。
2010-10-31 18:15:00
597
1
原创 吃透负载均衡原理和算法
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务或者网络请求)进行平衡,分摊到多个操作单元(服务器或者组件)上进行运行。目的是尽量将网络流量 平均 发送到多个服务器上,以保证整个业务系统的高可用。
2010-10-31 18:09:00
661
1
信息安全论文之蜜罐二
2011-03-01
信息安全论文之蜜罐一
2011-03-01
信息安全论文六(指纹识别算法)
2011-02-22
信息安全论文五(恶意代码检测)
2011-02-21
信息安全论文四(逆向分析)
2011-02-21
信息安全论文(软件加密技术)
2011-02-21
信息安全论文二(缓冲区溢出、PKI)
2011-02-21
信息安全论文一(linux内核相关)
2011-02-21
oracle+9i+分析函数参考手册
2010-11-11
Oracle一步一步学RMAN
2010-11-11
Oracle函数大全
2010-11-11
Oracle详细教程
2010-11-11
Oracle+OCI+API封装类
2010-11-11
OCI 实例 和 函数
2010-11-11
OCI 函数 (Oracle)
2010-11-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人