`
shuofenglxy
  • 浏览: 194457 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
额,也算搞了web系统好多年了。现在就八一八web系统吧。 从一个url请求开始,经过一级域名解析,二级域名解析或者单纯分发,再经过相关应用解析,才能进入业务处理。在解析的过程中,会利用负载均衡对访问进行分流,比如F5、LVS等负载手段。进入应用的业务处理后,针对对应的请求,可以通过直接的业务处理,请求获得DB的数据,缓存中的数据,图片服务器的数据来加载渲染请求的页面。  对负载均衡:常用的有F5、LVS等,F5性能较好,但是常常成本比较高;软负载通常是基于OS的负载策略,LVS就是基于Linux的一种负载均衡策略可以结合HA等来保证高可靠性和高性能,大概有NAT、IP TUNN ...
搜索貌似是现在最热门的了,几乎各大 IT 公司都有自己的搜索引擎。百度、腾讯、网易连同淘宝都有了自己的搜索引擎。本文主要谈一下搜索方式和一些简单的搜索设计。 1          大量数据中的搜索: 现今的 ...
又是一年笔试时,很多学弟们开始笔试了。今天学弟问求一个int数的1个数。 分析: 除法+最后一次取余就能得到了。 或者是移位+与运算 粘一个第二种方法的代码: public class getOneCount { public static void main(String[]args){ int n=123; getOneCount(n); } public static void getOneCount(int n){ int count=0; for(int i=31;i>=0;i--){ if((( ...
问题描述:一个人可以一步走1或2或3级台阶,问到N级台阶共有多少种走法,输出各种走法的路径? 分析:如果只是统计走法个数,简单的f(n)=f(n-1)+f(n-2)+f(n-3)【n>=3】即可,但要输出路径,如果考虑递归的话,显然会内存消耗非常大,而循环求解的话,因为每一步都能利用已经存储的值,所以效率更好一些。 具体参见代码:   package Staticsteps; import java.util.ArrayList; import java.util.List; //存储路径用的结果节点 里面放了存储ArrayList的ArrayList publ ...
问题:输入 I am a boy 输出boy a am I  要求:o(1)额外空间 o(n)时间复杂度 分析:最典型的左右手法则用法,只要两次简单的字符串逆序就可以。只是要注意思维上应该再深一点点,你就一定能得到答案。 见下代码:   import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class reverseString { public static void main(String[] args ...
import java.util.Scanner; public class DevivingInteger { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int k =scanner.nextInt(); System.out.println("共找到"+DevivingInt(k)+"种拆分方法"); } public stat ...
  今天实在没事干,刚好别人问了我下斐波那契面试怎么回答。就写了三个最基本的方式来弄吧。 import java.util.Stack; public class StackAndRechurisive { public static void main(String[] args){ int n = 8; System.out.println(StackMethod(n)); System.out.println(ForMethod(n)); System.out.println(Fac(n ...
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如:如果输入如下矩阵: 1 2 3 4 5 6 7 8 9  输出为:1  2 3 6 9 8 7 4 5。(不局限于方阵) 分析:打眼一看不难,但真动手写出代码的话,还是有一些地方需要注意的,比如,边界的判断等。从这个问题来分析一下这种比较复杂繁琐问题的处理思路。首先可以得到是按照回子型一层一层打印,再有就是每一层都可能包含向右打印,向下打印,向左打印,向上打印四种可能。所以,如果将功能细化拆分,那么这个算法的设计就难度不太大了。 思路就是这样,然后看看偶的实现吧,呵呵。     package matri ...

MINA探究之IoSession

    博客分类:
  • MINA
IoSession其实在我看来就是一个用于handler和filter之间共享或是传递数据的一个对象。它是线程安全的。 作为数据共享,它存储了以下几种数据:    IoService getService(); //其实就是connector或者acceptor   IoSessionConfig getConfig();//存放一些关于这个Session的配置信息,如buffer的大小,以及一些统计信息等。   IoFilterChain getFilterChain() //影响这个Session的IoFilter链   比如日志啊 对象序列化工厂,甚至自己配置的业务线程池等 ...
IoFuture可以监听到针对一个特定的IoSession的异步IO操作完成的,具体通过加入一个IoFutureListener的监听器来实现。这个Future和其他的Future没什么两样,无非是异步监听,等待时间完成然后获得IoSession,针对这些功能有一些方法。 而这个IoFutureListenner通过继承EventListene这个空接口,在其Listtenner接口中实现了一个close的静态对象来完成operationComplete事件,具体可以参见如下源码:       /** * Something interested in being notifi ...
Iobuffer比较简单  大局可直接从http://mina.apache.org/iobuffer.html 看,深入源码可以直接读Iobuffer的源码。 IoHandler里处理所有的IO事件,业务逻辑也是从这里关联,具体看http://mina.apache.org/iohandler.html+源码就OK了,针对不同的需要来Override相应的方法就OK了。
IoFilterChain主要是维护一个这样的容器,这个容器维护一个IoSesion和相对应的IoFilterChain(1对1关系),都是串行执行的。 IOFilterChain中主要有事件触发的一些方法和保存每一个具体IoFilter的Entry(存放一些具体IoFilter相关的信息,主要包括名字,IoFilter,下一个IoFilter等,以及一些相对应的操作)。 IoFilterChain的一个实现类是:DefaultIoFilterChain。主要实现的功能是给IoFilterChain中增删IoFilter等。具体实现的办法可以用过如下源码来看:       publ ...
 apache mina是一款可用于开发高性能和高伸缩性网络应用的框架,全称是Multipurpose Infrastructure for Network Applications。主要是基于TCP/IP或者是UDP/IP协议,其高性能主要利用Java NIO的非阻塞式复用通道。mina框架主要包括这么几个核心部分,一个  connector(连接server端用,这个非必须,可以用telnet来远程访问server端),一个acceptor(响应客户端请求用),一个Iohandler(业务数据处理用),一个IoFilterChain(主要用来完成日志记录,协议转换和其他一些需求)。大概业务员 ...
说明:这篇文章的code不是我写的,来自 林昊的分布式Java 基础与应用的示例demo.   server端:   package mytcpnio; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.ServerSocketChannel; ...
恩  return执行时 try finnally的影响,跟加了system.exit()后的变化。 分析:try catch的语句块在执行之后不直接完成响应,而是去finally做完相应的操作.加上system.exit(0)则表示执行到此程序立即终止。如果想要在终止前做点什么 可以定义一个不开启的新thread去完成相应的工作,必须也在exit句之前去完成。   其实也没什么,遇到问题写个代码run一下。然后根据结果google 查阅相应的资料分析就好了。不要想当然就OK.   package demo; public class sf { public s ...
Global site tag (gtag.js) - Google Analytics