- 浏览: 87463 次
- 性别:
- 来自: 深圳
最新评论
文章列表
Socket详解
“一切皆Socket!”
话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。
——有感于实际编程和开源项目研究。
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:
1、网络中进程之间如何通信?
2、Socket是什么?
3、socket的基本操作
...
Java NIO2 AIO开发核心流程
按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞IO、非阻塞IO、IO服用、信号驱动IO都是同步IO,如果不阻塞,而是操作系统帮你做完IO操作再将结果返回给你,那么就是异步IO。阻塞IO和非阻塞IO的区别在于第一步,发起IO请求是否会被阻塞,如果阻塞直 ...
Java中的BIO、NIO、AIO(NIO2)
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下:
序号
问题
1
什么是同步?
2
什么是异步?
3
什么是阻塞?
4
什么是非阻塞?
5
什么是同步阻塞 ...
java nio对OP_WRITE的处理解决网速慢的连接
对企业级的服务器软件,高性能和可扩展性是基本的要求。除此之外,还应该有应对各种不同环境的能力。例如,一个好的服务器软件不应该假设所有的客户端都有很快的处理能力和很 ...
【转】OIO、NIO、AIO区别
- 博客分类:
- 工作平台
OIO、NIO、AIO区别
网上很多IO资料,对新手来说,越看越晕。根据自己的理解,总结对比了一下OIO、NIO、AIO。
OIO:线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。如下图:
NIO(reactor模型):线程发起IO请求,立即返回;内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成。如下图:
sudo apt-get install gs pdftk
gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=firstANDsecond.pdf -dBATCH first.pdf second.pdf
有关maven不能加载ojdbc14.jar解决方法
首先下载ojdbc14-10.2.0.4.0.jar这个包,然后在cmd下输入以下
mvn install:install-file -DgroupId=com.oracle -DartifactIdojdbc14
-Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=C:\ojdbc14-10.2.0.4.0.jar
当然这里的-Dfile是指本地存放ojdbc14-10.2.0.4.0.jar的位置,然后再把C:\ojdbc14-10.2.0.4.0.jar这个包复制到maven管理的本地库中, ...
ubuntu中使用SQuirreL连接sql server
首先下载:
http://sourceforge.net/projects/squirrel-sql/
然后确保自己已经安装java,然后切换到squirrel-sql-Snapshot-20130727_2001-install.jar所在目录执行:
java -jar squirrel-sql-Snapshot-20130727_2001-install.jar
Reactor模式,或者叫反应器模式
Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些。通过了解,这个模式更像一个侍卫,一直在等待 ...
Netty系列之Netty高性能之道
- 博客分类:
- web
Netty系列之Netty高性能之道
1. 背景
1.1. 惊人的性能数据
最近一个圈内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性能提升了8倍多。
事实上,我对这个数据并不感到惊讶,根据我5年多的NIO编程经验,通过选择合适的NIO框架,加上高性能的压缩二进
常用ubuntu命令
- 博客分类:
- 工作平台
df -h
查看文件夹大小
du -sh [filename]
系统操作命令
打开命令窗口ctrl+alt+t,ctrl+shift+t
sudo apt-get update
sudo apt-get dist-upgrade
检查是否安装软件包
sudo dpkg -s libaio-dev
【转】一分钟教你知道乐观锁和悲观锁的区别
- 博客分类:
- Database
一分钟教你知道乐观锁和悲观锁的区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数 ...
系统核心配置项加密解决方案
背景
对系统安全稍微有点要求的系统,一般都会核心的配置项数据进行加密,尤其是在配置文件放在用户目录场景下。这类配置项一般包括但不限于数据库连接信息、核心资源服务器的连接信息(比如LDAP服务器)等。
实现方案
DES算法已经能够满足当前的安全需求,后续如果需要更高级别的加密算法,可以自行扩展,通过-Dsupport.crypt.coder={对称加密算法} 动态参数扩展。
用户账号密码字段的加密,当前采用MD5,主要考虑到各种前段技术对它支持比较全面,虽然该算法可以理论上被碰撞破解,但足以保障一般安全系统的运转。
...
实战体验几种MySQLCluster方案
详见附件
基于SpringMVC后端系统RESTful中间路径解决方案
背景
当前行业为了规范和版本控制,基于RESTful风格的设计,一般喜欢在URL设计时加上/api/{version}这样的中间路径。
但是SpringMVC没有默认的提供和支持这样的需求,当然这个问题可以通过很简单的Servlet容器(如tomcat)中配置context来解决。但这样势必影响了部署的灵活性。
为此,像这类设计,尽量做到以下设计目标和要求:
1)该中间路径对Servlet容器透明;
2)该中间路径对业务开发透明;
3)支持{version}动态可配置;(建议在api工程classpath路径下配置服 ...