1.1.1.11 通信框架
ajian005
这个作者很懒,什么都没留下…
展开
-
现代服务器底层奠基(SEDA+Reactor/Proactor+epoll/kqueue )
System|多路复用IO|Kqueue事件通知 https://zhuanlan.zhihu.com/p/157431765。System|网络|分阶段事件驱动架构SEDA https://zhuanlan.zhihu.com/p/161902784。System|网络|Naive SEDA实现 https://zhuanlan.zhihu.com/p/162753075。System|网络|packet的一生 https://zhuanlan.zhihu.com/p/157909533。原创 2023-04-13 14:18:58 · 647 阅读 · 1 评论 -
Nginx相关技术资料梳理
Nginx相关技术资料梳理nginx和openresty的使用 https://blog.csdn.net/sxl47/article/details/105210701。原创 2022-08-12 19:45:34 · 935 阅读 · 0 评论 -
网络抓包工具
抓包工具原创 2022-07-04 19:02:46 · 134 阅读 · 0 评论 -
Sip相关介绍
参考:JAIN SIP API 简介 http://www.oracle.com/technetwork/cn/articles/oem/introduction-jain-sip-090386-zhs.htmlSIP Servlet 编程模型 http://www.oracle.com/technetwork/cn/testcontent/sip-programmi原创 2014-01-17 18:02:47 · 931 阅读 · 0 评论 -
Java Collections Framework之HashMap源码分析(基于JDK1.6)
在Java集合类中最常用的除了ArrayList外,就是HashMap了。本文尽自己所能,尽量详细的解释HashMap的源码。一山还有一山高,有不足之处请之处,定感谢指定并及时修正。 在看HashMap源码之前先复习一下数据结构。 Java最基本的数据结构有数组和链表。数组的特点是空间连续(大小固定)、寻址迅速,但是插入和删除时需要移动元素,所以查询快,增加删除慢。链表恰好相反,转载 2014-01-14 22:46:40 · 1518 阅读 · 0 评论 -
JAVA系列之对象的序列化与反序列化
1 简介对象序列化(Serializable)是指将对象转换为字节序列的过程,而反序列化则是根据字节序列恢复对象的过程。序列化一般用于以下场景:1.永久性保存对象,保存对象的字节序列到本地文件中;2.通过序列化对象在网络中传递对象;3.通过序列化在进程间传递对象。对象所属的类必须实现Serializable或是Externalizable接口才能被序列化。对实现原创 2014-01-12 23:13:24 · 1128 阅读 · 0 评论 -
java NIO模式之Reactor
Java NIO非堵塞应用通常适用于在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。Java NIO非堵塞技术实际是采取React转载 2014-01-12 21:12:53 · 1421 阅读 · 0 评论 -
JAVA NIO2模式之Proactor( JDK7 AIO异步网络IO初探)
按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞IO、非阻塞IO、IO服用、信号驱动IO都是同步IO转载 2014-01-09 22:26:06 · 4413 阅读 · 0 评论 -
dubbo分布式SOA框架
项目地址:http://code.alibabatech.com/wiki/display/dubbo/Home-zh自开源后,已有不少非阿里系公司在使用Dubbo,参见:已知用户那么,Dubbo是什么?Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含:远程通讯: 提供对多种基于长连接的原创 2014-01-06 22:34:00 · 7268 阅读 · 0 评论 -
Apache Tomcat Monitor - Lambda Probe - [Tomcat]
Lambda Probe是一个基于Web以实时的方式来管理单个Tomcat主机的工具。它除了具备标准Tomcat Manager大部份功能之外还提供一些能够帮助Web开发者和系统管理员更加清楚地了解Tomcat运行情况的功能。系统环境:操作系统:Centos 5.3 32bit应用系统:Tomcat 6.0安装路径: /usr/local/tomcat源码位转载 2014-01-02 17:48:10 · 3255 阅读 · 0 评论 -
I/O子系统:select,poll,epoll,kqueue, iocp(Windows)及各种I/O复用机制 模式Reactor Proactor
首先,介绍几种常见的I/O模型及其区别,如下:《Unix网络编程》blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions)读数据的例子blo转载 2014-01-12 17:04:09 · 3759 阅读 · 1 评论 -
Apache Thrift & Google Protocol Buffer & Apache avro比较(先留个位置,待补充内容)
参考:Apache Thrift : http://en.wikipedia.org/wiki/Apache_Thrift原创 2014-03-18 21:38:03 · 967 阅读 · 0 评论 -
Linux epoll浅析(收集整理版)
Linux epoll详解一、什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linuxkernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I原创 2014-07-02 11:17:15 · 1410 阅读 · 0 评论 -
Java_BIO/NIO/AIO
基于NIO的java高性能网络应用的技术研究 http://www.docin.com/p-65119553.html#(一) BIO传统的server/client实现是基于thread per request.(二) NIO最核心的一点就是反应器模式:当有感兴趣的事件发生时,就通知对应的事件处理器去处理事件,如果没有,则不处理。所以使用一个线程做轮询转载 2011-06-07 18:17:00 · 1350 阅读 · 0 评论 -
C++各大有名库的介绍
C++各大有名库的介绍在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。转载 2012-07-15 11:06:10 · 5326 阅读 · 0 评论 -
nginx架构(修改版)
英文:http://www.aosabook.org/en/nginx.htmlnginx(发音为“engine x”)是一个免费的开源Web服务器,由俄罗斯软件工程师Igor Sysoev编写。其在2004年向公众推出以来,nginx一直专注于高性能,高并发性和低内存占用。 Web服务器功能之上的附加功能,如负载均衡,缓存,访问和带宽控制的能力,以及有能力有效整合各种应用,这些都有助于使原创 2015-01-11 20:51:27 · 1536 阅读 · 0 评论 -
从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式
http://blog.csdn.net/cutesource/article/details/6192016如何正确使用NIO来构架网络服务器一直是最近思考的一个问题,于是乎分析了一下Jetty、Tomcat和Mina有关NIO的源码,发现大伙都基于类似的方式,我感觉这应该算是NIO构架网络服务器的经典模式,并基于这种模式写了个小小网络服务器,压力测试了一下,效果还不错。废话不多说,先看转载 2012-09-27 17:45:24 · 1038 阅读 · 0 评论 -
HttpClient介绍
参考HttpClient: PoolingHttpClientConnectionManager HttpClient池:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html http://hc.apache.org/httpcomponents-client-ga/examples原创 2016-04-12 20:07:54 · 892 阅读 · 0 评论 -
C10K、C100K, C1000K=C1M,C10M( concurrent 10M connections)....千万级并发实现的秘密:内核不是解决方案,而是问题所在!
参考资料: The C10K problem: http://www.kegel.com/c10k.html C1M http://www.blogjava.net/yongboy/category/54842.html原创 2016-05-18 16:28:22 · 5770 阅读 · 0 评论 -
二进制协议处理
使用Netty实现通用二进制协议的高效数据传输Netty是一个高性能的NIO通信框架,提供异步的、事件驱动的网络编程模型。使用Netty可以方便用户开发各种常用协议的网络程序。例如:TCP、UDP、HTTP等等。Netty的最新版本是3.2.7,官网地址是:http://www.jboss.org/netty本文的主要目的是基于Netty实现一个通用二进制协议的高效数据传输转载 2013-12-13 12:50:45 · 2774 阅读 · 0 评论 -
TCP/IP,http,socket,长连接,短连接
TCP/IP TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有:TCP包括FTP、HTTP、TELNET、SMTP等协议 UDP包括DNS、TFTP等协议 短连接 连接->传输数据->关闭连接转载 2013-11-11 18:11:59 · 1244 阅读 · 0 评论 -
Tomcat6.0源码学习(参考很重要)
http://blog.163.com/haizai219@126/blog/static/4441255520097162481811/Tomcat6.0源码学习-构建Eclipse源码工程 摘要 对于学习j2ee,且想提高自己Java编程设计水平的每个人来说,研究Tomcat的源码是一件很向往的事,这其中的获益不仅仅是Java编程水平的提转载 2012-09-27 16:17:41 · 1285 阅读 · 0 评论 -
Netty实现原理浅析
Netty是JBoss出品的高效的Java NIO开发框架,关于其使用,可参考我的另一篇文章 netty使用初步。本文将主要分析Netty实现方面的东西,由于精力有限,本人并没有对其源码做了极细致的研 究。如果下面的内容有错误或不严谨的地方,也请指正和谅解。对于Netty使用者来说,Netty提供了几个典型的example,并有详尽的API doc和guide doc,本文的一些内容及图示也来转载 2012-09-27 17:42:54 · 765 阅读 · 0 评论 -
Servlet 工作原理解析
https://www.ibm.com/developerworks/cn/java/j-lo-servlet/从 Servlet 容器说起要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力。虽然它们是彼此依存的,但是又相互独立发展,这一切都是为了适应工业化生产的结果转载 2012-09-26 19:15:02 · 670 阅读 · 0 评论 -
Netty代码分析
Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序[官方定义],整体来看其包含了以下内容:1.提供了丰富的协议编解码支持,2.实现自有的buffer系统,减少复制所带来的消耗,3.整套channel的实现,4.基于事件的过程流转以及完整的网络事件响应与扩展,5.丰富的example。本文并不对Netty实际使用中可能出现的问题做分析,只是从转载 2012-06-26 19:08:49 · 903 阅读 · 0 评论 -
WebService介绍(WebService基础知识、XFire、CXF(基于XFire和Celtix项目整合而来,与Spring融合好)、AXIS1、AXIS2(有AXIS1转换而来,有Java)
1 WebSerice基础2 XFire基础(2007年之后XFire发布1.2.6后停止开发,后续转为CXF项目)3 CXF基础(基于XFire和Celtix项目整合而来,与Spring融合好)4 AXIS1基础(Axis 1.4 Final 2006年后停止开发,转而AXIS2)5 AXIS2基础(有AXIS1转换而来,有Java和C版)1 WebSerice基础转载 2012-09-20 18:49:43 · 3355 阅读 · 0 评论 -
Tomcat 系统架构与设计模式,第 1 部分: 工作原理
http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/本文以 Tomcat 5 为基础,也兼顾最新的 Tomcat 6 和 Tomcat 4。Tomcat 的基本设计思路和架构是具有一定连续性的。Tomcat 总体结构Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最核心的模块,您就抓住了转载 2012-09-26 17:16:32 · 1164 阅读 · 0 评论 -
linux下抓包命令--tcpdump的使用
例:tcpdump host 172.16.29.40 and port 4600 -X -s 500 tcpdump host 218.202.106.167 -X -s 500 -w ADC_TO_SI2.cap (抓包并写文件)tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNO原创 2007-03-23 14:47:00 · 1660 阅读 · 0 评论 -
Jetty 的工作原理以及与 Tomcat 的比较
http://www.ibm.com/developerworks/cn/java/j-lo-jetty/Jetty 的基本架构Jetty 目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器,它有一个基本数据模型,这个数据模型就是 Handler,所有可以被扩展的组件都可以作为一个 Handler,添加到 Server转载 2012-09-26 19:23:22 · 933 阅读 · 0 评论 -
Reactor模式和NIO
本文可看成是对Doug Lea Scalable IO in Java一文的翻译。 当前分布式计算 Web Services盛行天下,这些网络服务的底层都离不开对socket的操作。他们都有一个共同的结构:1. Read request2. Decode request3. Process service4. Encode reply5. Send reply经转载 2012-09-27 17:34:51 · 681 阅读 · 0 评论 -
跨平台的网络通信中间件:ICE和ACE
二十世纪九十年代中期以来,业界一直在使用DCOM和CORBA这样的面向对象的中间件平台。在分布式的应用中,中间件平台托管了大部分网络事务,比如对数据进行编码与解码以进行传送,把逻辑对象地址映射到物理传输端点,根据客户和服务器的机器架构改变数据的表示,以及按照需要自动启动服务器。DCOM和CORBA由于自身的缺点,都没有成功占领大部分分布式计算的市场。DCOM是Microsoft的独家解决方转载 2012-10-28 22:45:25 · 1205 阅读 · 0 评论 -
TCP三次握手/四次挥手详解
TCP协议三次握手过程分析TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(rese转载 2013-11-11 10:22:19 · 1969 阅读 · 0 评论 -
1ActiveMQ使用 2ActiveMQC#Client实现 3ActiveMQC++Client实现通讯 4 ActiveMQJavaClient实现
Active MQ使用Kagula2011-9-6介绍 Active MQ是个消息队列管理器,用于通讯的中间件。Java + Active MQ的常见使用方式有两种:[1]点对点方式(Producer/Consumer)[2]发布/订阅者方式(Publisher/Subscriber Model) 测试环境[1]JDK1.6.x [2]Eclipse Indigo [3原创 2013-07-03 09:47:31 · 2214 阅读 · 3 评论 -
ActiveMQ分享(一)JMS简介
一、概述 Message,即消息。人与人之间通过消息传递信息。言语、眼神、肢体动作都可被视为消息体。当然还有我们经常用到的邮件、短信。计算机系统也由消息来主导运行。每一条指令的执行,每一个数据包的传递。软件系统间的合作也不例外,消息告诉各个系统应该怎样协作。事件处理机制,也是消息传送的过程。消息无处不在。 消息分为同步消息和异步消息。同步消息在接收到对方的返回前,需要挂起,直到返转载 2013-04-07 22:55:09 · 967 阅读 · 0 评论 -
web服务器apache架构与原理
web服务器 在开始了解Apache前,我们先熟悉一下web服务器,因为apache也是web服务器的一种。 Web系统由客户端(浏览器)和服务器端两部分组成。Web系统架构也被称为B/S架构。最常见的Web服务器有Apac转载 2013-06-16 22:57:06 · 1740 阅读 · 0 评论 -
ACE初学者使用指南
注意:ACE网络框架比较有名,30万行左右代码,开发了10几年,数十人的核心开发团队加之数千人的测试队伍,可以说想不开发出好东西也难。 所以要说这个框架好,那好的原因实在太多,最主要的好在于两条:“跨平台(支持几十种平台),可复用”,所以今日说说我认为他不足的地方,以作为这段时间学习它的一个总结: 国内有三本和ACE框架有关的书,我都读了,整个加起来读了能有10几不到20天转载 2013-06-05 09:34:02 · 3634 阅读 · 0 评论 -
Comet:基于 HTTP 长连接的“服务器推”技术
“服务器推”技术的应用请访问 Ajax 技术资源中心,这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛、blog、wiki 和新闻。任何 Ajax 的新信息都能在这里找到。订阅 Ajax 相关文章和教程的 RSS 提要传统模式的 Web 系统以客户端发出请求、服务器端响应的方式工作。这种方转载 2013-01-22 12:23:12 · 731 阅读 · 0 评论 -
SpringOne会前访谈:Josh Long谈Spring发展
Josh Long - 开发人员技术布道师 Josh Long 担任 Spring 开发人员技术布道师。Josh 是 Apress 出版社出版的《Spring Recipes》第 2 版的首席作者,也是 SpringSource 的提交者和贡献者。他在埋头编写代码之余,也会现身于当地的 Java 用户群或当地的咖啡店。Josh 喜欢能够转载 2012-11-15 15:00:09 · 2881 阅读 · 0 评论 -
深入分析 Java I/O 的工作机制
Java 的 I/O 类库的基本架构I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性能瓶颈。正因如此,所以 Java 在 I/O 上也一直在做持续的优化,如从 1.4 开始引入了 NIO,提升了 I/O 的性能。关于 NIO 我们将在后面详细介转载 2012-09-26 19:34:31 · 973 阅读 · 0 评论 -
Socket(TCP/UDP)及服务器、应用层协议(Http/FTP/SIP/Mega/SNMP)及服务器(Apache/FTPServer/SipProxy/MegaServer/SNMPServe
一、从J2SE开始(对J2SE及JVM有一个很深入的研究)推出整个Java企业级世界: 1 Socket协议(TCP/IP)及服务器:现在Java开发对网络协议处理不需要关注底层(如物理层、数据链路层),从IP层和TCP/UDP层开始关注如,自己编写TCP/UDP的SocketServer/SocketClient。 如:聊天室、即时通信工具、QQ、Mina等 从谁编写角原创 2011-05-15 12:39:00 · 2208 阅读 · 0 评论