IoAcceptor用于监听客户端的连接,每监听一个端口建立一个线程。IoConnector用于与服务端建立连接,每连接一个服务端就建立一个线程。
简单的说, tcpreplay是一种pcap包的重放工具, 它可以将用ethreal, wireshark工具抓 下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意的修改(主要是指对2层 , 3层, 4层报文头), 指定重放报文的速度等, 这样tcpreplay就可以用来复现抓包的情景 以定位bug, 以极快的速度重放从而实现压力测试.
利用官方例子讲解httpClient4.1的用法 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文利用官方例子来介绍HttpClient的用法。
已经有了ConfigServer,为什么还需要DiamondConfigServer将专注于非持久数据的推送HSF服务地址列表NotifyServer地址列表随着ConfigServer集群内机器的增加,主动推送持久配置不够稳定涉及集群间持久配置数据的同步需要实现和使用都很简单的方式关键时刻,人工可以介入Diamond的特点简单数据库集中存储,没有集群间同步
Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。。本文将通过官方网站上的快速入门程序 来介绍 MINA 的基础架构的同时演示如何使用MINA 开发网络应用程序。
Apache MINA 是一个网络应用框架,有助于用户非常方便地开发高性能、高伸缩性的网络应用。它通过Java NIO提供了一个抽象的、事件驱动的、异步的位于各种传输协议(如TCP/IP和UDP/IP)之上的API, Apache MINA 通常可被称之为: NIO 框架库; 客户端/服务器框架库; 或者一个网络socket库。Apache MINA 是一个网络应用程序框架,它对Java中的socket和NIO进行了有效和清晰的封装,方便开发人员开发TCP/UDP程序,从而抛开在使用原始的socket时需要考虑的各种繁杂而又烦人问题(线程、性能、会话等),把更多精力专著在应用中的业务逻辑的开发上。
二.Mina一个请求的主要实现流程:服务器启动时,构造NioSocketAcceptor,服务器同时也会构造NioProcessor。client请求->NioSocketAcceptor建立连接,在bind监听端口后,调用startupAcceptor()方法->接收线程Acceptor启动->processHandles()方法调用->初始化session,并把session加入到NioProcessor待处理session队列中。
Reactor模式实现不同,mina中采用了Multiple Reactor的方式,由NioSocketAcceptor和IoProcessor分别承担多个Reactor的职责。NioSocketAcceptor和NioProcessor使用不同selector,能够更加充分的榨取服务器的性能。
如何正确使用NIO来构架网络服务器一直是最近思考的一个问题,于是乎分析了一下Jetty、Tomcat和Mina有关NIO的源码,发现大伙都基于类似的方式,我感觉这应该算是NIO构架网络服务器的经典模式,并基于这种模式写了个小小网络服务器,压力测试了一下,效果还不错。废话不多说,先看看三者是如何使用NIO的。
Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给httpclient替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中的所有问题。
httpclient4中文版帮助文档,最新官方版翻译版前言超文本传输协议(HTTP)也许是当今互联网上使用的最重要的协议了。Web服务,有网络功能的设备和网络计算的发展,都持续扩展了HTTP协议的角色,超越了用户使用的Web浏览器范畴,同时,也增加了需要HTTP协议支持的应用程序的数量。尽管java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的功能。HttpClient就是寻求弥补这项空白的组件,通过提供一个有效的,保持更新的,功能丰富的软件包来实现客户端最新的HTTP标准和建议。
笔者之前的工作主要是做 java 的 web 端开发,后因工作原因参与了一个国家级的大项目,主要负责其中底层通讯的前置机模块。几经波折,将该系统完成后,结果在第一轮的测试中就惨败退回。其根本原因就在于原设计文档的要求单“通信机”与“终端”(注一)之间的并发量要达到 2W 以上的连接通信,而实际运行并发量只能达到 2600 个相差了近十倍左右。经过代码调优、扩展 JVM 内存等等手段,但因基础数据相差过大,所取得的优化效果十分有限。后考虑在根本着手,只有更改整个系统的通信接口,才有可能达到设计文档上的要求。某天在某个技术 QQ 群里一次讨论中,有网友向我推荐了一个框架,这就是本文要介绍的主角 -MINA 。
最近使用Mina开发一个Java的NIO服务端程序,因此也特意学习了Apache的这个Mina框架。Apache的Mina(Multipurpose Infrastructure Networked Applications)是一个网络应用框架,可以帮助用户开发高性能和高扩展性的网络应用程序;它提供了一个抽象的、事件驱动的异步API,使Java NIO在各种传输协议(如TCP/IP,UDP/IP协议等)下快速高效开发。
Mina和Netty都是Java领域高性能和高可伸缩性网络应用程序的网络应用框架,在实际生产应用中都是不错的佼佼者。公司一个的移动通讯查看有关“服务器”的文章">服务器要进行重构,研发经理确定使用Netty,之前我有听说过Mina,也看到一些游戏服务器在使用Mina。刚好乘这个机会系统了解一下这两个project,看看他们各自的特点。
HttpClient简介HTTP协议可能是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。虽然在JDK的java.net包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。
第 1 章 介绍1.1. 什么是Wireshark Wireshark是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样。(当然比那个更高级)过去的此类工具要么是过于昂贵,要么是属于某人私有,或者是二者兼顾。Wireshark出现以后,这种现状得以改变。
针对JDK中的URLConnection连接Servlet的问题,网上有虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式来解决的,而且比较零散,现在对这个类的使用就本人在项目中的使用经验做如下总结
web登陆无非就是网页获取,cookie的管理,post和get方式的模拟。
这是一个网络搜索得到的smtp例示,其中的MailMessage是一个javaBean,主要是设置相关的信息,比如发送头部,发送人等.以下是相关分析:/*使用的是Socket连接,以下五个类是关于输入输出流以及IO异常类,基本思路是建立socket连接之后使用getInputStream得到一个输入流,使用一下的相关输入流修饰器得到带缓存版本的输入流reader以便读入数据。
java中用ganymed实现scp 和sftp文件传输