自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (2)
  • 收藏
  • 关注

原创 Netty深入解析

一、Netty概述1.1 netty是什么?官方解释:Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and strea...

2018-05-16 21:05:06 9955 4

原创 RPC框架pigeon源码分析

Pigeon是一个分布式服务通信框架(RPC),是美团点评最基础的底层框架之一。已开源,链接:https://github.com/dianping/pigeon从接下来三个方面来分析pigeon的源码。一. 基础框架1.1 rpc的基础架构rpc最基础的架构图1.2 rpc的基本流程客户端在调用某一个服务时,这个服务实际上是通过动态代理生成的一个代理类的对象。因此在执行方法的时候,实际上执行的是...

2018-04-12 10:57:08 7524

原创 Java线程池分析

1. Executor框架Executor是一套线程池管理框架,接口里只有一个方法execute,执行Runnable任务。ExecutorService接口扩展了Executor,添加了线程生命周期的管理,提供任务终止、返回任务结果等方法。AbstractExecutorService实现了ExecutorService,提供例如submit方法的默认实现逻辑。ThreadPoolExecuto...

2018-04-12 10:51:45 206

原创 网络通信之TCP协议

TCP是一个巨复杂的协议,在网络通信中他需要解决很多问题,所以这里是带着大家来了解TCP协议的魅力,关于协议的细节,推荐去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》。一. tcp概念TCP四元组:[源ip,源端口号,目的ip,目的端口号]TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协...

2018-04-12 10:30:35 1015

原创 性能优化的方法论建设

一. 相关概念系统性能有两个相关的概念:Throughput ,吞吐量。也就是每秒钟可以处理的请求数,任务数。Latency, 系统延迟。也就是系统在处理一个请求或一个任务时的延迟。而这两者之间又是存在着一些联系Throughput越大,Latency会越差。因为请求量过大,系统太繁忙,所以响应速度自然会低。Latency越好,能支持的Throughput就会越高。因为Latency短说明处理速度...

2018-04-12 10:27:08 2781

原创 Tomcat是如何启动及运行—对tomcat的源码解析

本文是我阅读了Tomcat源码后的一些心得。 主要是讲解Tomcat的系统框架,启动流程已经运行过程。若有错漏之处,敬请批评指教。先给出几个问题:tomcat作为一个应用服务器的程序入口在哪里?tomcat的整体组件结构是什么样的?tomcat是如何及什么时候创建线程来处理请求的?tomcat的配置文件context.xml,server.xml,tomca

2016-06-20 16:12:21 3794 1

原创 消息队列MQ

RocketMQRocketMQ的整体架构如下,可以看到各个组件充当的角色,Name Server 负责维护一些全局的路由信息:当前有哪些broker,每个Topic在哪个broker上; Broker具体处理消息的存储和服务;生产者和消费者是消息的源头和归宿。Producer 发送消息Producer发送消息是如何得知发到哪个broker的 ? 每个应用在收发消息之前,一般会调用一次produc...

2018-04-24 22:48:56 373

原创 JVM相关

一、JVMjvm将类加载到jvm的内存中,总共经历七个阶段,加载、验证、准备、解析、初始化、使用、卸载。加载是指将class文件从磁盘load到jvm的方法区的内存中,在堆区创建一个Class对象,封装这个类在方法区的数据结构Java程序对类的使用方式分为两种:主动使用和被动使用。所有的Java虚拟机实现必须在每个类或接口被Java程序“首次主动使用”时才初始化这个类,否则不执行初始化阶段操作。主...

2018-04-24 22:46:46 206

原创 Redis积累

一、Redis简介Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件。书籍:《redis设计与实现》1.1 Redis数据类型: 字符串(String)散列(Hash)列表(List)集合(Set)有序集合(SortedSet或ZSet)BitmapsHyperloglogs地理空间(Geospatial) 它支持多种类型的数据结构,如字符串(String),散列...

2018-04-24 22:44:36 263

原创 Zookeeper解析

zk的角色1.领导者(Leader):进行投票的发起和决议,更新系统状态2.学习者(Learner)跟随者(Follower):接受客户端请求并向客户端返回结果,在选主过程中参与投票观察者(Observer):接收客户端的连接,将写请求转发给leader节点。但Observer不参加投票,只同步leader状态。Observer的目的是为了扩展系统,提高读取速度3.客户端(Client):请求发起...

2018-04-24 22:42:54 333

原创 关于http请求串行问题的研究分析

一.问题描述周五 同事在学习tomcat的时候写了一个简单的ServletDemo1继承了HttpServlet,在doGet方法中处理逻辑,同时在方法中设置线程sleep 8s的时间。主体代码:但是发现了一个奇怪的现象,在浏览器的多个窗口打开同一个路由到此Servlet的url,如http://localhost:8080/name,却发现这几个窗口的页面是串行打开的,请求耗时都是在前面请求的基...

2018-04-12 11:11:17 2956

原创 CAS原理

CASCAS:现代的处理器都包含对并发的支持,其中最通用的方法就是比较并交换(compare and swap),简称CAS。CAS是非阻塞的同步机制,锁解决的是阻塞的同步机制,但是锁需要借助操作系统,线程的挂起和恢复都有很大的开销。而CAS在不释放cpu的情况下进行同步,这是CAS的功能。CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹...

2018-04-12 11:04:31 141

原创 Java中的锁

一. Java的锁机制1.1 锁的类型乐观锁:读多写少的情况,读数据不加锁,写数据加锁。java中的乐观锁基本都是通过CAS操作实现的,CAS是一种更新的原子操作,比较当前值跟传入值是否一样,一样则更新,否则失败。悲观锁:悲观的意思是写多,每次去拿数据的时候都认为别人会修改,所以每次在读写数据的时候都会上锁,这样别人想读写这个数据就会block直到拿到锁。java中的悲观锁就是Synchroniz...

2018-04-12 11:01:46 249

原创 Java虚拟机与GC

Java内存区域        1.程序计数器(Program Counter Register)(线程私有的)        2.Java虚拟机栈 (Java Virtual Machine Stacks)(线程私有的)        3.本地方法栈 (Native Method Stack)(Native方法)        4.Java堆 (Java Heap)(线程共享)

2016-01-28 20:18:48 500

原创 Nginx+Tomcat 配置负载均衡

目录:一.搭建环境二.软件安装三.集群配置四.Session处理方式五.其他

2016-01-25 00:52:38 627

原创 数据结构—Java版链表相交问题的终极解决方案

【题目】判断两个链表(链表可以有环,可以无环)是否相交,若相交,则返回相交节点,不相交则返回null1.判断两个链表是否相交【思路】两个链表分三种情况:①两个链表均为非环链表;②两个链表一个为环,一个非环;③两个链表均为环第一种情况非环链表根据链表的定义,只需比较两个链表尾节点是否相同,若相同则一定相交,不同则一定不相交;第二种情况由于链表的next指针永远

2015-09-13 19:55:09 419

apache-tomcat-6.0.44源码

apache-tomcat-6.0.44源码,需要看源码的同学可以下载看看

2016-01-16

spring4.0.0jar包

spring4.0.0jar包,比较适合学习

2016-01-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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