« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。 |
Blog信息 |
blog名称: 日志总数:210 评论数量:205 留言数量:-19 访问次数:918158 建立时间:2007年5月10日 |

| |
[Apache Mina]转:Apache Mina使用手记(二) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2009/8/21 15:31:46 |
Mina主要是作为服务器端底层框架来实现数据处理,它的实现很简单,如下例所示:
view plaincopy to clipboardprint?
package com.gftech.mytool.mina;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.sessio |
|
[Apache Mina]转:Apache Mina使用手记(一) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2009/8/20 17:59:59 |
1.Apache Mina是一个高性能的基础网络构架平台,构建在java NIO的基础上
2.Mina使用了SLF4J做为日志记录器,全称Simple Logging Facade for Java,它是一个日志门面,只负责为客户端提供应用接口,实际的日志记录由Log4j/JUL等日志记录器实现。如下图所示:
3.Mina主要有IoConnector,IoAccepter,IoSession,IoSessionConfig,IoHandler,IoFilter,IoFuture,EventListener等对象组成
4.IoConnector实现客户端的连接功能,IoAccepter实现服务端的接收功能,它们都继承自IoService
5.IoSession为客户端和服务端的一个会话,每一个会话都包括会话的建立,打开,注销等功能
6.IoSession中还包括发送或接收到的数据,以及会话上触发相应事件的侦听器
7.而IoSession的相关配置由IoSessionConfig实现
8.IoHandler为数据处理器,在此对象中可以对接收 |
|
[J2SE相关]java.nio.Buffer分析 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2009/8/20 17:55:18 |
在研究Apache Mina源代码时,在IoFilter中使用IoBuffer做为数据缓冲对象,而IoBuffer的实现来自于java.nio.Buffer。Buffer中的flip()、clear()、reset()、mark()等概念让我有点糊涂,仔细看了jdk的文档说明,才对Buffer对象的概念了然于胸。
在Buffer类当中有以下四个重要的属性:
mark:标记位,用于reset()时把position恢复到原来的位置,调用mark()方法使position的值赋与mark
position:表示Buffer中第一个可以被读取或写入的数据的位置,每次调用put()方法时,把写入的数据放到position位置,然后position的值就会加1
limit:表示buffer中第一个不可被读取或写入的数据的位置,也即停止位,数据操作到此为止
capacity:初始化时调用allocate(int size)为buffer分配的空间大小,不可变
演示代码如下:
view plaincopy to clipboardprint?
import |
|
[MYSQL]数据库水平切分的实现原理解析 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2009/6/25 17:19:29 |
作者 lishuaibt 发表时间:2009-06-16 关键字: 分库
http://www.javaeye.com/topic/409294
第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台机器的访问负载 |
|
[J2SE相关]javanio:java nio本质与精要 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2009/6/25 16:19:58 |
NIO之关键: 1.数据缓冲(Buffer)处理 数据缓冲是IO操作的基本元素.从本质上来说,无论是磁盘还是网络IO,应用程序所作的所有事情就是把数据放到相应的数据缓冲当中去(写操作),或者从相应的数据缓冲中提取数据(读操作).至于数据缓冲中的数据IO设备之间的交互,则是操作系统和硬件驱动程序所关心的事情了.因此,数据缓冲在IO操作中具有重要的作用,是操作系统与应用之间的IO桥梁. 在java.nio中, "Direct ByteBuffer"是一个值得关注的Buffer类型.在创建ByteBuffer的时候可以使用ByteBuffer.allocateDirect()来创建一块直接(Direct)的ByteBuffer.这一块数据缓冲和一般的缓冲不一样.第一,它是一块连续的空间.第二,它的实现不是纯java的代码,而是本地(native)代码.它内存的分配不在Java的堆栈中,不受java内存回收的影响. |
|
[Hibernate]不要依赖hibernate的二级缓存 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2009/4/26 22:28:07 |
关键字: 不要依赖hibernate的二级缓存
一、hibernate的二级缓存 如果开启了二级缓存,hibernate在执行任何一次查询的之后,都会把得到的结果集放到缓存中,缓存结构可以看作是一个hash table,key是数据库记录的id,value是id对应的pojo对象。当用户根据id查询对象的时候(load、iterator方法),会首先在缓存中查找,如果没有找到再发起数据库查询。但是如果使用hql发起查询(find, query方法)则不会利用二级缓存,而是直接从数据库获得数据,但是它会把得到的数据放到二级缓存备用。也就是说,基于hql的查询,对二级缓存是只写不读的。 针对二级缓存的工作原理,采用iterator取代list来提高二级缓存命中率的想法是不可行的。Iterator的工作方式是根据检索条件从数据库中选取所有目标数据的id,然后用这些id一个一个的到二级缓存里面做检索,如果找到就直接加载,找不到就向数据库做查询 |
|
|