长连接

Dubbo协议

喜欢而已 提交于 2020-01-10 13:45:50
参考dubbo官方文档http://dubbo.apache.org/zh-cn/docs/user/references/protocol/dubbo.html dubbo共支持如下几种通信协议: dubbo:// (缺省) rmi:// hessian:// http:// webservice:// thrift:// memcached:// redis:// 部分协议的特点和使用场景如下: 1、dubbo协议 Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。 缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。 连接个数:单连接 连接方式:长连接 传输协议:TCP 传输方式:NIO异步传输 序列化:Hessian二进制序列化 适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。 适用场景:常规远程服务方法调用 常见问题 为什么要消费者比提供者个数多? 因 dubbo 协议采用单一长连接,假设网络为千兆网卡 [3] ,根据测试经验数据每条连接最多只能压满 7MByte(不同的环境可能不一样,供参考),理论上 1 个服务提供者需要 20

网络基础知识

穿精又带淫゛_ 提交于 2020-01-10 05:02:05
IP地址与域名 IP地址 IP地址是网络中计算机的唯一标识,点分十进制构成 IPV4和IPV6 域名 Doman name 因为网络通信需要使用ip地址,但是ip地址不容易记忆,所以才有了更好记忆的域名 特殊域名:localhost DNS及浏览器请求服务器的过程 浏览器—>输入网址—>本地DNS服务器查询ip—>远程DNS服务器—>建立TCP连接 本地DNS服务器是一个文件 Windows C:\windows\system32\drivers\etc\hosts Ubantu /etc/host HTTP协议概述 http协议:超文本传输协议,主要用来发布和传输html页面(网页) http协议2部分构成 请求协议 响应协议 协议由协议项构成 协议项:1)协议名; 2)协议值 HTTP请求报文格式 请求报文格式 请求行:协议方式、资源路径、协议及版本\r\n 请求头:协议项 包括协议名:协议值\r\n 请求空行:请求空行的作用:分隔请求头和请求的主体 请求主体:浏览器要发送服务器的内容 get方式没有请求体,post方式才有请求体。 HTTP响应报文格式 HTTP响应报文:服务器向浏览器做出响应(反馈数据)时候的协议 内容: 响应行(状态行) 协议及版本 状态码 状态描述 状态码: 2** 一切正常 3 等待下一步操作 302重定向 4 客户端错误 5** 服务器错误 响应头

HTTP长连接和短连接

做~自己de王妃 提交于 2020-01-08 21:58:20
作者:whywin 链接:http://www.cnblogs.com/0201zcr/p/4694945.html 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1. HTTP协议与TCP/IP协议的关系   HTTP的长连接和短连接本质上是 TCP长连接和短连接 。HTTP属于应用层协议,在网络层使用IP协议,主要解决网络路由和寻址问题;在传输层使用TCP协议,主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致,具有可靠、面向连接的特点。 2. 如何理解HTTP协议是无状态的   HTTP协议是无状态的,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。也就是说,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。 3. 什么是长连接、短连接?    在HTTP/1.0中,默认使用的是短连接 。也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的 Web页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等,每遇到这样一个Web资源

HTTP的长连接和短连接

可紊 提交于 2020-01-08 10:23:46
一、长、短连接简介及应用    HTTP协议采用“ 请求-应答 ”模式。   1、当使用 普通模式(HTTP multiple connection,也称为短连接) ,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)。   2、当使用 Keep-Alive模式(HTTP persistent connection ,又称持久连接、连接重用) 时,Keep-Alive功能使客户端到服务器端的连接持续有效,后续对服务器进行数据请求时 仍然会保持TCP连接不断开 (不会再发RST包、不会再进行四次握手),等待在同域名下继续用这个通道传输数据, 避免了重新建立连接,这样更高效,性能更高。     http 1.0中 Keep-Alive 功能默认是关闭的,需要在http头加入"Connection: Keep-Alive",才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入"Connection: close ",才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep-Alive连接就看服务器设置情况。   HTTP首部的 Connection: Keep-alive 是 HTTP1.0

HTTP 的长连接和短连接

拥有回忆 提交于 2020-01-08 06:55:19
一、什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。 HTTP首部的Connection: Keep-alive是HTTP1.0浏览器和服务器的实验性扩展,当前的HTTP1.1 RFC2616文档没有对它做说明,因为它所需要的功能已经默认开启,无须带着它,但是实践中可以发现,浏览器的报文请求都会带上它。如果HTTP1.1版本的HTTP请求报文不希望使用长连接,则要在HTTP请求报文首部加上Connection: close。《HTTP权威指南》提到,有部分古老的HTTP1.0 代理不理解Keep-alive,而导致长连接失效:客户端–>代理–>服务端,客户端带有Keep-alive,而代理不认识,于是将报文原封不动转给了服务端,服务端响应了Keep-alive,也被代理转发给了客户端,于是保持了“客户端–>代理”连接和“代理–>服务端”连接不关闭,但是,当客户端第发送第二次请求时,代理会认为当前连接不会有请求了,于是忽略了它,长连接失效。书上也介绍了解决方案:当发现HTTP版本为1.0时,就忽略Keep-alive,客户端就知道当前不该使用长连接。其实,在实际使用中不需要考虑这么多

HTTP长连接短连接

南楼画角 提交于 2020-01-08 04:47:38
一、什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。  HTTP首部的Connection: Keep-alive是HTTP1.0浏览器和服务器的实验性扩展,当前的HTTP1.1 RFC2616文档没有对它做说明,因为它所需要的功能已经默认开启,无须带着它,但是实践中可以发现,浏览器的报文请求都会带上它。如果HTTP1.1版本的HTTP请求报文不希望使用长连接,则要在HTTP请求报文首部加上Connection: close。《HTTP权威指南》提到,有部分古老的HTTP1.0 代理不理解Keep-alive,而导致长连接失效:客户端-->代理-->服务端,客户端带有Keep-alive,而代理不认识,于是将报文原封不动转给了服务端,服务端响应了Keep-alive,也被代理转发给了客户端,于是保持了“客户端-->代理”连接和“代理-->服务端”连接不关闭,但是,当客户端第发送第二次请求时,代理会认为当前连接不会有请求了,于是忽略了它,长连接失效。书上也介绍了解决方案:当发现HTTP版本为1.0时,就忽略Keep-alive,客户端就知道当前不该使用长连接。其实

RocketMQ系列之初始入门

给你一囗甜甜゛ 提交于 2020-01-07 14:58:08
RocketMQ是阿里巴巴技术团队在2016年11月捐赠给Apache基金会,正式成为孵化项目。阿里称会将其打造成顶级的项目,在如今优秀的MQ中间件中,RocketMQ也是占有一席之位的,它具有高性能、高可靠、实时性、分布式的特点,天生为金融互联网领域而生,目前在众多技术团队中都有在使用。 让我们一起进入学习RocketMQ吧!还不知道什么是MQ的同学速度进入 什么是消息队列? RocketMQ的核心概念 producer 生产者,也就是消息的投递者,RcoketMQ提供三种投递消息的方式:同步、异步、单向。 producer group 生产者组,具有相同角色的生产者分组。 consumer 消费者,也就是消息的消费者,从消息队列中拉取消息有两种方式:pull方式,主动从消息队列中批量拉取消息进行消费;push方式,内部封装了拉取消息、消费进度等行为,利用监听器当消息到达时将启动程序消费消息。 consumer group 消费者组,具有相同角色的消费者分组。 broker RocketMQ-server,也就是RocketMQ的实例,消息队列的载体。 nameserver nameserver是RocketMQ的一个词汇,nameserver记录broker的列表以及一些元信息,为生产者和消息者查询使用和路由。 讲了那么多,记不住?直接上图理解 消息领域模型 message

微服务全流程分析

余生颓废 提交于 2020-01-07 11:09:25
转眼已经2020,距离微服务这个词落地已经过去好多年!(我记得2017年就听过这个词)。然而今天我想想什么是微服务,其实并没有一个很好的定义。为什么这样说,按照微服务的定义: 微服务架构就是将一个庞大的业务系统按照业务模块拆分成若干个独立的子系统,每个子系统都是一个独立的应用,它是一种将应用构建成一系列按业务领域划分模块的,小的自治服务的软件架构方式,倡导将复杂的单体应用拆分成若干个功能单一、松偶合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发,及持续集成与交付活动。 根据这个定义,不难看出其实就是对复杂的业务系统统一做逻辑拆分,保持逻辑上的独立。那么逻辑上独立就是一个服务这样做真的是好吗,如何界定:小、独,还有要做一个事情,完成单一的业务,单一的功能要拆分出来,为了独立而独立会不会导致拆的过细?不同人有不同的见解,我们今天一起探讨微服务的过去和未来。 微服务缘起 在没有微服务之前,我们最早的架构模式就是 MVC 模式,把业务逻辑分为:表示层,业务逻辑层,数据访问层。MVC模式随着大前端的发展,从一开始的前后端不分离,到现在的前后端分离逐渐演进。这种演进好的一点是剥离了不同开发语言的开发环境和部署环境,使得开发较为便利,部署更直接。然而问题是:这种模式仍然是单体应用模式,如果有一个改动需要上线,你不得不因为这个改动去考虑更多

apicloud 实现长连接

∥☆過路亽.° 提交于 2020-01-04 02:11:42
在制作app的时候,很多时候需要服务端推送消息给app。现在针对apicloud开放梳理几种解决方案 1.ajax轮询 ajax轮询的原理非常简单,让app隔个几秒就发送一次请求,询问服务器是否有新信息。但是轮训一般及时性比较差,而且网络消耗与电量销毁比较多,因此一般推送功能都是通过长连接实现的 场景再现: 客户端:啦啦啦,有没有新信息(Request) 服务端:没有(Response) 客户端:啦啦啦,有没有新信息(Request) 服务端:没有。。(Response) 客户端:啦啦啦,有没有新信息(Request) 服务端:你好烦啊,没有啊。。(Response) 客户端:啦啦啦,有没有新消息(Request) 服务端:好啦好啦,有啦给你。(Response) 客户端:啦啦啦,有没有新消息(Request) 服务端:。。。。。没。。。。没。。。没有(Response) —- loop 2.使用第三方推送服务 apicloud的push模块 官方也有自己开放的推送模块,亲测有效。 不懂的话可以看 https://docs.apicloud.com/Dev-Guide/push-guide 如果出现 push.setListener无效 可以看 https://community.apicloud.com/bbs/thread-112988-1-1.html 还有极光、融云可以选择

高并发IM系统架构优化实践

蹲街弑〆低调 提交于 2020-01-01 18:54:20
互联网+时代,消息量级的大幅上升,消息形式的多元化,给即时通讯云服务平台带来了非常大的挑战。高并发的IM系统背后究竟有着什么样的架构和特性 本文要点: 网易云信 整体架构解析 云信中的客户端连接和接入点管理 服务化和高可用 网易 IM 云分层架构图解析 底层客户端 SDK ,覆盖了安卓,iOS,windows PC桌面端,web网页端和嵌入式设备等多个平台。在SDK层使用的网络协议有4层的TCP协议和基于7层的Socket.IO协议,后者专门用于Web SDK中提供长连接能力;除了集成到应用App中的SDK之外,还提供了供第三方服务器调用的API接口,基于Http协议;最后的A/V SDK是基于UDP协议的实时音视频SDK,用于实现基于网络的语音和视频通话。 网关层:提供客户端直接接入并维护与服务器之间的长连接;其中WebSDK直连的是Weblink服务,这是一个基于Socket.IO协议实现的长连接服务,而供AOS/IOS/PC等客户端SDK直连的是基于TCP协议的Link服务;在Link和WebLink服务中承担的一个非常重要的功能就是所有客户端长连接的管理,后面基于HTTP协议上的网关有API服务,和LBS服务等,其中LBS服务用于帮助客户端SDK选取最合适自己的网关接入点,优化网络效率;而API服务则直接提供来自第三方服务器的业务请求; HA层:在网关接入层之上是HA层