2 fixBug1995

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 22w+

TCP的三次握手与四次挥手理解及面试题(很全面)

版权声明:本文为CSDN博主「青柚_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_38950316/article/details/81087809本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文

2020-07-06 18:27:03

TCP/IP协议超详细讲解

从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。一、 计算机网络体系结构分层计算机网络体系结构分层:计算机网络体系结构分层:不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,

2020-07-06 18:21:36

超简单却能够深入理解 TCP 为什么是三次握手?

核心思想TCP作为一种可靠传输控制协议,其核心思想:既要保证数据可靠传输,又要提高传输的效率,而用三次恰恰可以满足以上两方面的需求!TCP可靠传输的精髓:TCP连接的一方A,由操作系统动态随机选取一个32位长的序列号(Initial Sequence Number),假设A的初始序列号为1000,以该序列号为原点,对自己将要发送的每个字节的数据进行编号,1001,1002,1003…,并把自己的初始序列号ISN告诉B,让B有一个思想准备,什么样编号的数据是合法的,什么编号是非法的,比如编号900就是非法

2020-07-06 16:14:16

Netty源码分析之拆包粘包相关处理器的实现原理

1. 为什么要粘包拆包为什么要粘包首先你得了解一下TCP/IP协议,在用户数据量非常小的情况下,极端情况下,一个字节,该TCP数据包的有效载荷非常低,传递100字节的数据,需要100次TCP传送,100次ACK,在应用及时性要求不高的情况下,将这100个有效数据拼接成一个数据包,那会缩短到一个TCP数据包,以及一个ack,有效载荷提高了,带宽也节省了非极端情况,有可能两个数据包拼接成一个数据包,也有可能一个半的数据包拼接成一个数据包,也有可能两个半的数据包拼接成一个数据包为什么要拆包拆包和粘包是相

2020-07-05 17:29:48

ZooKeeper 客户端和服务端连接会话管理源码分析(服务端会话空闲超时管理分桶策略源码分析)

客户端连接源码分析ZKClient 客户端,Curator 客户端先下结论:Client 要创建一个连接,其首先会在本地创建一个 ZooKeeper 对象,用于表示其所连接上的 Server。连接成功后,该连接的各种临时性数据会被初始化到 zk 对象中。连接关闭后,这个代表 Server 的 zk 对象会被删除。我们知道常用的ZK客户端技术有ZKClient 客户端,Curator 客户端,而客户端在连接ZK Server的时候,会配置集群信息,而连接集群中具体哪一台服务器,采用轮询的方式,先将

2020-07-03 15:42:48

ZooKeeper Leader选举机制源码分析(二)选举核心方法 lookForLeader() 业务逻辑分析

上一篇已经介绍了选举机制我们需要关注的重要类及其成员变量,现在我们正式开始分析核心选举方法lookForLeader()。选举核心方法 lookForLeader() 业务逻辑分析知道了选举相关的重要类及成员变量的作用以后,接下来我们开始分析真正执行选举逻辑的方法lookForLeader():整个选举代码,我们拆成3大部分讲解 :1) 选举前的准备工作2) 将自己作为初始leader投出去3)循环交换投票直至选出Leader,循环交换投票过程中,根据收到的投票发送者状态不同,有下面三种情况:

2020-07-02 16:09:07

ZooKeeper Leader选举机制源码分析(一)下载源码、 ZK源码目录结构介绍、选举算法源码中的总思路、重要类、成员变量的解读

题外话:关于ZooKeeper,Paxos算法、ZAP协议面试常问!高可用是站在客户端角度来看,CP或者AP是对集群来说的,角度不一样高可用:leader挂了可以自动选举出来,不用人为去干预个人见解:分布式其实和多线程在某些方面是一样的:多个机器协调工作,和多个线程协同工作?只不过多线程数据通信在同一个内存里面(共享内存(Shared Memory)),分布式必须要有信道,即消息传递(Messages Passing),网络就是信道。Paxos算法是基于消息传递通讯模型的。看源码前准备工作

2020-07-02 11:05:27

ZooKeeper 八种典型应用场景详细介绍(配置维护、命名服务、集群管理、DNS服务、Master选举、分布式同步、分布式锁、分布式队列、分布式屏障Barrier队列)

ZooKeeper 八种典型应用场景详细介绍为进一步加强对 zk 的认识,理解 zk 的作用,下面再详细介绍一下 zk 在生产环境中的典型应用场景。1. 配置维护1.1 什么是配置维护分布式系统中,很多服务都是部署在集群中的,即多台服务器中部署着完全相同的应用,起着完全相同的作用。当然,集群中的这些服务器的配置文件是完全相同的。若集群中服务器的配置文件需要进行修改,那么我们就需要逐台修改这些服务器中的配置文件。如果我们集群服务器比较少,那么这些修改还不是太麻烦,但如果集群服务器特别多,比如某些大型

2020-07-01 14:38:16

ZooKeeper技术内幕和使用篇(一)重要理论(数据模型、会话管理、分桶策略、ACL、Watcher机制)、客户端命令、ZKClient 客户端、Curator 客户端

第1节 Zookeeper录播视频@(11第十一章 分布式协调服务器zookeeper)第1章Zookeeper 理论基础1.1Zookeeper 简介ZooKeeper 由雅虎研究院开发,后来捐赠给了 Apache。ZooKeeper 是一个开源的分布式应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于 Paxos 算法的ZAB 协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。zookeeper 的官网: http://zookeeper.apache.

2020-06-26 17:37:31

ZooKeeper的安装与集群搭建

安装单机 Zookeeper1. 下载Zookeeper 安装包在 http://zookeeper.apache.org 官网下载。2. 上传安装包将下载的 Zookeeper 安装包上传到 zk04 主机的/usr/tools 目录。我一般安装包放在tools里,安装在apps里3. 安装配置 zk(1) 解压安装包解压后的目录结构bin目录中,核心的两个命令:一个是客户端命令,一个是服务端命令(2) 创建软链接目的是后面把路径注册到path路径下,让它和版本号解除绑定(3)

2020-06-26 16:30:41

ZooKeeper理论基础(二)容灾、CAP定理、脑裂

高可用集群的容灾服务器数量的奇数与偶数前面我们说过,无论是写操作投票,还是 Leader 选举投票,都必须过半才能通过,也就是说若出现超过半数的主机宕机,则投票永远无法通过。基于该理论,由 5 台主机构成的集群,最多只允许 2 台宕机。而由 6 台构成的集群,其最多也只允许 2 台宕机。即,6 台与5 台的容灾能力是相同的。基于此容灾能力的原因,建议使用奇数台主机构成集群,以避免资源浪费。但从系统吞吐量上说,6 台主机的性能一定是高于 5 台的。所以使用 6 台主机并不是资源浪费。容灾设计方案对于

2020-06-26 15:55:49

ZooKeeper理论基础(一)简介、Paxos 算法、ZAB协议

Zookeeper 简介ZooKeeper 由雅虎研究院开发,后来捐赠给了 Apache。ZooKeeper 是一个开源的分布式应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于 Paxos 算法的ZAB 协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。zookeeper 的官网: http://zookeeper.apache.org其他类似产品:Consul、Doozerd、Etcdzk 是如何保证分布式系统的一致性的呢?是因为 zk 具有以下几方面的特

2020-06-26 15:36:46

Redis高级(Redis和lua整合、Redis消息模式、Redis实现分布式锁、常见缓存问题:缓存穿透、缓存雪崩、缓存击穿、缓存双写一致性)

主题Redis和lua整合、Redis消息模式、Redis实现分布式锁、常见缓存问题目标理解lua概念,能够使用Redis和lua整合使用理解redis消息原理掌握redis分布式锁的原理、本质理解缓存穿透、缓存雪崩、缓存击穿、缓存双写一致性并掌握解决方案Redis和lua整合什么是lualua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Redis中使用lua的好处1)减少网络开销,在Lua

2020-06-11 15:57:46

Redis高级(主从复制及原理、哨兵机制及原理、集群cluster及原理)

主题Redis主从复制、哨兵机制、Redis集群目标理解什么是Redis的主从复制、哨兵机制、官方集群方案Cluster会搭建Redis主从、哨兵、Redis Cluster理解Redis主从存在的问题理解Redis主从的实现原理(全量同步,增量同步,部分同步的概念)理解Redis哨兵机制的实现原理理解Cluster的实现原理Redis主从复制生产上永远不可能用单机,所有的节点,包括应用节点,中间件节点,数据节点等都要保证高可用,最基本的要求。主从必然存在延迟问题,Redis按照

2020-06-10 23:26:35

Redis高级(持久化)

Redis持久化Redis是一个内存数据库,为了保证数据的持久性,它提供了两种持久化方案:RDB方式(默认,快照方式)RDB方式是通过快照( snapshotting )完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘。触发快照的时机1、符合自定义配置的快照规则 redis.conf2、执行save或者bgsave命令save:执行快照过程中不能对外工作bgsave:后台进程执行快照,可以继续对外工作3、 执行flushall命令4.、执行主从复制操

2020-06-10 16:48:22

Redis高级(缓存淘汰策略、Redis事务、乐观锁)

主题缓存淘汰策略、Redis事务、Redis持久化目标理解缓存淘汰的LRU策略理解Redis事务的应用、乐观锁的实现Redis缓存淘汰策略设置最大缓存在 redis 中,允许用户设置最大使用内存大小maxmemory(redis.config里配置),默认为0,没有指定最大缓存,如果有新的数据添加,超过最大内存,则会使redis崩溃,所以一定要设置。redis 内存数据集大小上升到一定大小的时候,就会实行数据淘汰策略。淘汰策略redis淘汰策略配置:maxmemory

2020-06-09 21:05:10

Redis高级(内存模型,底层数据结构,内存优化)

主题Redis内存模型、底层数据结构、内存优化目标可以分析Redis内存统计的信息掌握Redis内存划分掌握Redis数据存储的细节掌握Redis五种对象类型及内部编码掌握Redis内存优化的方式方法理解Redis底层存储涉及的数据结构Redis内存模型一、Redis内存统计工欲善其事必先利其器,在说明Redis内存之前首先说明如何统计Redis使用内存的情况。在客户端通过redis-cli连接服务器后(后面如无特殊说明,客户端一律使用redis-cli),通过info命令可以查

2020-06-09 17:07:37

Redis基础(Redis介绍、单机安装、客户端、数据类型分析、消息模式、事务)

准备准备redis安装包主题Redis单机安装及数据类型分析、消息模式及事务、Java客户端的使用目标Redis是什么?Redis的主要应用场景有哪些?Redis单机安装要掌握?Redis数据类型有哪些?Redis的数据类型各自的使用场景及注意事项是什么?Redis的消息模式是如何实现的?Redis的事务是如何实现的?Java的客户端Jedis是如何使用的?内容Redis介绍什么是Redis?Redis 是用C语言开发的一个开源的高性能键值对( key-value )

2020-05-25 18:55:32

Mycat介绍、核心概念、分片规则、读写分离

主题MyCat介绍、MyCat核心概念、MyCat分片规则、MyCat读写分离目标理解MyCat介绍和核心概念掌握MyCat分片规则掌握MyCat读写分离能够使用MyCat进行分库分表和读写分离MyCat介绍什么是Mycat?官方网站:http://www.mycat.org.cn/和 shradingJDBC不同,它是一个软件,可以认为是Mysql的代理,shradingJDBC只是一个jar包。一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL

2020-05-23 13:51:15

在Activiti中使用spring的Bean

Activiti整合Spring以后,发现想要在Activiti的ServiceTask,ExecutionListener中通过注入使用Spring的Bean,发现注入不成功:一开始我写的bpmn中然后在我的监听器中注入的Spring的bean为空,注入不进来。此时需要把bpmn中这样设置,使用Expression表达式的方式,这样通过表达式加载的都是是从spring中加载的,testExecutionListener是监听器的类名(在这里首字母要小写)然后再把监听器放到Spring中管理(注

2020-05-22 14:54:44

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 分享精英
    分享精英
    成功上传11个资源即可获取