孤芳不自赏

玩命工作应酬,就是年轻时最好的生活。

Maven从仓库解析并使用依赖构建的机制。

当本地仓库没有依赖构件的时候,Maven会自动从远程仓库下载;当依赖版本为快照版本的时候,Maven会自动找到最新的快照。这背后的依赖解析机制可以概括如下: 当依赖的范围是system的时候,Maven直接从本地文件系统解析构件。 根据依赖坐标计算仓库路径后,尝试直接从本地仓库寻找构件,如果发...

2018-10-29 15:17:06

阅读数:14

评论数:0

几种静态化方案的设计及选择。

下面详细分析如何设计静态化架构,首先要考虑方案应该遵循的几个原则,涉及如何回答以下几个问题。     是否一致性Hash分组?做缓存一定是和命中率紧密相关的,命中率和数据的集中度相关,而要让数据集中一致性Hash就是一个必然选择。但是一致性Hash有一个天然的缺陷就是会导致热点问题,当热点特别集...

2018-08-21 16:10:28

阅读数:90

评论数:0

什么是静态化系统。

静态系统通常有如下几方面的特征。     一个页面对应的URL通常固定。不同的URL表示不同的内容,让返回的请求和URL相关,也就是通过URL能唯一标识一个页面。     在页面中不能包含与浏览者相关的因素。这里所说的“不能包含”不包含JS动态生成的部分,也就是在页面中HTML代码不能明显的含...

2018-08-21 15:46:38

阅读数:50

评论数:0

iBatis框架的运行原理。

本文分析iBatis框架的主要类是如何串联起来、如何工作的。下图描述了整个过程中的主要执行步骤。 在上图中描述的SqlMapSession对象的创建和释放根据不同的情况会有所不同,因为SqlMapSession负责创建数据库的连接,包括对事务的管理,iBatis既可以自己管理事务又可以由外部...

2018-08-21 14:05:52

阅读数:44

评论数:0

iBatis框架的设计策略。

iBatis的主要设计目的还是为了让我们在执行SQL时对输入输出的数据的管理更加方便,所以方便让我们写出SQL和方便地获取SQL的执行结果才是iBatis的核心竞争力。那么iBatis是怎么体现他的核心竞争力呢? iBatis框架的一个重要组成部分就是其SqlMap配置文件,SqlMap配置文件...

2018-08-21 13:57:58

阅读数:19

评论数:0

SpringMVC的总体设计。

要使用SpringMVC,只需在web.xml中配置一个DispatcherServlet,再定义一个dipatcherServlet-servlet.xml配置文件,这样一个简单的基于SpringMVC的应用就创建完成了。 实际上SpringMVC的使用非常简单,我们只要扩展一个路径映射关系;...

2018-08-20 17:10:01

阅读数:31

评论数:0

如何将class文件加载在JVM中。

    如下图所示是ClassLoader加载一个class文件到JVM时需要经过的步骤。          第一个阶段是找到.class文件并把这个文件包含的字节码加载到内存中。     第二个阶段又可以分为三个步骤,分别实字节码验证、Class类数据结构及相应的内存分配和最后的符号表的链接。 ...

2018-08-03 17:21:17

阅读数:326

评论数:0

ClassLoader的等级加载机制。

    ClassLoader顾名思义就是类加载器,负责将Class加载到JVM中,他就好比开会时门口的接待员,负责给进入会场的嘉宾发放入会证明,入会的嘉宾分为VIP会员、黄金会员、白金会员和普通会员等。对应的接待室也会分为VIP会员接待室、黄金会员接待室、白金会员接待室和普通接待室,不同等级的会...

2018-08-03 16:07:57

阅读数:63

评论数:0

Javac如何编译程序。

转化步骤     首先,要读取源代码,一个字节为一节的度进来,找出在这些字节中有哪些是我们定义的语法关键词,如Java中的if、else、for、while等关键词:要识别哪些if是合法的关联词,哪些不是,这个步骤就是词法分析过程。     此法分析的结果就是从源代码中找出一些规范化的Token...

2018-08-03 11:31:53

阅读数:60

评论数:0

一次HTTP请求的编解码。

URL的编解码        注意:这里所说的URL和URI是针对Servlet进行描述的,也就是request.getRequestURL()和request.getRequestURL()返回的URL和URI结果。        解析请求的URL是在org.apache.coyote.HTT...

2018-08-01 14:46:44

阅读数:149

评论数:0

NIO的工作机制。

下图描述了基于NIO工作方式的Socket请求过程     上图中的Selector可以同时监听一组通信信道(Channel)上的I/O状态,前提是这个Selector已经注册到这些通信信道中。选择器Selector可以调用select()方法检查已经注册的通信信道上I/O是否已经准备好,如...

2018-07-30 17:18:46

阅读数:19

评论数:0

Http协议三次握手过程。

TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) ...

2018-07-30 16:32:30

阅读数:30

评论数:0

Java SOcket的工作机制。

下图是典型的基于Socket的通信场景。      主机A的应用程序要能和主机B的应用程序通信,必须通过SOcket建立连接,而建立Socket连接必须由底层TCP/IP来建立TCP连接。建立TCP连接需要底层IP来寻址网络中的主机。我们知道网络层使用的IP可以帮助我们根据IP地址来找到目标...

2018-07-30 16:25:27

阅读数:13

评论数:0

TCP状态转化。

TCP连接的状态转换如下图所示。  CLOSED:起始点,在超时或者连接关闭时进入此状态。 LISTEN:Server端在等待连接时的状态,Server端为此要调用Socket、bind、listen函数,就能进入此状态。这称为应用程序被动打开(等待客户端来连接)。 SYN-SENT:客户端...

2018-07-30 16:04:12

阅读数:21

评论数:0

CDN架构。

    如上图所示,一个用户访问某个静态文件(如CSS文件),访问这个静态文件的域名,首先要向Loacal DNS服务器发起请求,一般经过迭代解析后回到这个域名的注册服务器去解析,一般每个公司都会有一个DNS解析服务器。这时这个DNS解析服务器通常会把他重新CNAME解析到另外一个域名,而这个...

2018-07-30 14:30:47

阅读数:55

评论数:0

DNS域名解析过程。

当一个用户在浏览器中输入网址时,DNS解析将会有近10个步骤,这个过程大体描述如下。     当用户在浏览器中输入域名并按下回车键后,第1步,浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且...

2018-07-30 11:46:57

阅读数:38

评论数:0

B/S网络请求涉及操作概述。

    当一个用户在浏览器里输入URL时,将会发生很多操作。首先他会请求DNS把这个域名解析成对应的IP地址,然后根据这个IP地址在互联网上找到对应的服务器。向这个服务器发起一个get请求,由这个服务器决定返回默认的数据资源给访问的用户。在服务器端实际上还有很复杂的业务逻辑:服务器可能有很多台,到...

2018-07-30 10:34:56

阅读数:36

评论数:0

服务提供者框架。

       服务提供者框架是指:多个服务提供者实现一个服务,系统为客户端提供多个实现,并把他们从多个实现中解耦出来。服务提供者的改变对它们的客户端是透明的,这样提供了更好的可扩展性。例如,JDBC,JMS等就是用了服务提供者框架。       他们之间的关系如下图:    1.服务具体实现类...

2018-07-02 10:36:16

阅读数:21

评论数:0

关于大型网站技术演进的思考--存储的瓶颈。

        此文为转载文章,作者是博客园的博主:夏天的森林。存储的瓶颈(一)存储的瓶颈(二)存储的瓶颈(三)存储的瓶颈(四)存储的瓶颈(五)存储的瓶颈(六)存储的瓶颈(七)存储的瓶颈(八)...

2018-06-11 14:36:16

阅读数:67

评论数:0

网站静态化处理。

网站静态化处理——总述。       提到像hao123这样的导航网站只要它部署的web服务器数量足够,它可以承载超大规模的并发访问量,如果是一个动态的网站,特别是使用到了数据库的网站是很难做到通过增加web服务器数量的方式来有效的增加网站并发访问能力的。但是现实情况是像淘宝、京东这样的大型动态网...

2018-06-07 14:18:49

阅读数:60

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭