<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Talk is cheap, Show me the code!]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ningdunquan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ningdunquan]]></copyright><item><title><![CDATA[Netty深入解析]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/80342970</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/80342970</guid><author>ningdunquan</author><pubDate>Wed, 16 May 2018 21:05:06 +0800</pubDate><description><![CDATA[一、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...]]></description><category></category></item><item><title><![CDATA[消息队列MQ]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/80072136</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/80072136</guid><author>ningdunquan</author><pubDate>Tue, 24 Apr 2018 22:48:56 +0800</pubDate><description><![CDATA[RocketMQRocketMQ的整体架构如下，可以看到各个组件充当的角色，Name Server 负责维护一些全局的路由信息：当前有哪些broker，每个Topic在哪个broker上; Broker具体处理消息的存储和服务；生产者和消费者是消息的源头和归宿。Producer 发送消息Producer发送消息是如何得知发到哪个broker的 ？ 每个应用在收发消息之前，一般会调用一次produc...]]></description><category></category></item><item><title><![CDATA[JVM相关]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/80072082</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/80072082</guid><author>ningdunquan</author><pubDate>Tue, 24 Apr 2018 22:46:46 +0800</pubDate><description><![CDATA[一、JVMjvm将类加载到jvm的内存中，总共经历七个阶段，加载、验证、准备、解析、初始化、使用、卸载。加载是指将class文件从磁盘load到jvm的方法区的内存中，在堆区创建一个Class对象，封装这个类在方法区的数据结构Java程序对类的使用方式分为两种：主动使用和被动使用。所有的Java虚拟机实现必须在每个类或接口被Java程序“首次主动使用”时才初始化这个类，否则不执行初始化阶段操作。主...]]></description><category></category></item><item><title><![CDATA[Redis积累]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/80072060</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/80072060</guid><author>ningdunquan</author><pubDate>Tue, 24 Apr 2018 22:44:36 +0800</pubDate><description><![CDATA[一、Redis简介Redis是一个开源的内存中的数据结构存储系统，它可以用作：数据库、缓存和消息中间件。书籍：《redis设计与实现》1.1 Redis数据类型： 字符串（String）散列（Hash）列表（List）集合（Set）有序集合（SortedSet或ZSet）BitmapsHyperloglogs地理空间（Geospatial） 它支持多种类型的数据结构，如字符串（String），散列...]]></description><category></category></item><item><title><![CDATA[Zookeeper解析]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/80072018</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/80072018</guid><author>ningdunquan</author><pubDate>Tue, 24 Apr 2018 22:42:54 +0800</pubDate><description><![CDATA[zk的角色1.领导者（Leader）：进行投票的发起和决议，更新系统状态2.学习者（Learner）跟随者（Follower）：接受客户端请求并向客户端返回结果，在选主过程中参与投票观察者（Observer）：接收客户端的连接，将写请求转发给leader节点。但Observer不参加投票，只同步leader状态。Observer的目的是为了扩展系统，提高读取速度3.客户端（Client）：请求发起...]]></description><category></category></item><item><title><![CDATA[关于http请求串行问题的研究分析]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/79910745</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/79910745</guid><author>ningdunquan</author><pubDate>Thu, 12 Apr 2018 11:11:17 +0800</pubDate><description><![CDATA[一.问题描述周五 同事在学习tomcat的时候写了一个简单的ServletDemo1继承了HttpServlet，在doGet方法中处理逻辑，同时在方法中设置线程sleep 8s的时间。主体代码：但是发现了一个奇怪的现象，在浏览器的多个窗口打开同一个路由到此Servlet的url，如http://localhost:8080/name，却发现这几个窗口的页面是串行打开的，请求耗时都是在前面请求的基...]]></description><category></category></item><item><title><![CDATA[CAS原理]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/79910619</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/79910619</guid><author>ningdunquan</author><pubDate>Thu, 12 Apr 2018 11:04:31 +0800</pubDate><description><![CDATA[CASCAS：现代的处理器都包含对并发的支持，其中最通用的方法就是比较并交换（compare and swap），简称CAS。CAS是非阻塞的同步机制，锁解决的是阻塞的同步机制，但是锁需要借助操作系统，线程的挂起和恢复都有很大的开销。而CAS在不释放cpu的情况下进行同步，这是CAS的功能。CAS 操作包含三个操作数 —— 内存位置（V）、预期原值（A）和新值(B)。如果内存位置的值与预期原值相匹...]]></description><category></category></item><item><title><![CDATA[Java中的锁]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/79910556</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/79910556</guid><author>ningdunquan</author><pubDate>Thu, 12 Apr 2018 11:01:46 +0800</pubDate><description><![CDATA[一. Java的锁机制1.1 锁的类型乐观锁：读多写少的情况，读数据不加锁，写数据加锁。java中的乐观锁基本都是通过CAS操作实现的，CAS是一种更新的原子操作，比较当前值跟传入值是否一样，一样则更新，否则失败。悲观锁：悲观的意思是写多，每次去拿数据的时候都认为别人会修改，所以每次在读写数据的时候都会上锁，这样别人想读写这个数据就会block直到拿到锁。java中的悲观锁就是Synchroniz...]]></description><category></category></item><item><title><![CDATA[RPC框架pigeon源码分析]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/79910367</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/79910367</guid><author>ningdunquan</author><pubDate>Thu, 12 Apr 2018 10:57:08 +0800</pubDate><description><![CDATA[Pigeon是一个分布式服务通信框架（RPC），是美团点评最基础的底层框架之一。已开源，链接：https://github.com/dianping/pigeon从接下来三个方面来分析pigeon的源码。一. 基础框架1.1 rpc的基础架构rpc最基础的架构图1.2 rpc的基本流程客户端在调用某一个服务时，这个服务实际上是通过动态代理生成的一个代理类的对象。因此在执行方法的时候，实际上执行的是...]]></description><category></category></item><item><title><![CDATA[Java线程池分析]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/79910341</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/79910341</guid><author>ningdunquan</author><pubDate>Thu, 12 Apr 2018 10:51:45 +0800</pubDate><description><![CDATA[1. Executor框架Executor是一套线程池管理框架，接口里只有一个方法execute，执行Runnable任务。ExecutorService接口扩展了Executor，添加了线程生命周期的管理，提供任务终止、返回任务结果等方法。AbstractExecutorService实现了ExecutorService，提供例如submit方法的默认实现逻辑。ThreadPoolExecuto...]]></description><category></category></item><item><title><![CDATA[网络通信之TCP协议]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/79908937</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/79908937</guid><author>ningdunquan</author><pubDate>Thu, 12 Apr 2018 10:30:35 +0800</pubDate><description><![CDATA[TCP是一个巨复杂的协议，在网络通信中他需要解决很多问题，所以这里是带着大家来了解TCP协议的魅力，关于协议的细节，推荐去看W.Richard Stevens的《TCP/IP 详解 卷1：协议》。一. tcp概念TCP四元组：[源ip，源端口号，目的ip，目的端口号]TCP（Transmission Control Protocol 传输控制协议）是一种面向连接的、可靠的、基于字节流的传输层通信协...]]></description><category></category></item><item><title><![CDATA[性能优化的方法论建设]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/79908880</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/79908880</guid><author>ningdunquan</author><pubDate>Thu, 12 Apr 2018 10:27:08 +0800</pubDate><description><![CDATA[一. 相关概念系统性能有两个相关的概念：Throughput ，吞吐量。也就是每秒钟可以处理的请求数，任务数。Latency， 系统延迟。也就是系统在处理一个请求或一个任务时的延迟。而这两者之间又是存在着一些联系Throughput越大，Latency会越差。因为请求量过大，系统太繁忙，所以响应速度自然会低。Latency越好，能支持的Throughput就会越高。因为Latency短说明处理速度...]]></description><category></category></item><item><title><![CDATA[Tomcat是如何启动及运行—对tomcat的源码解析]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/51721469</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/51721469</guid><author>ningdunquan</author><pubDate>Mon, 20 Jun 2016 16:12:21 +0800</pubDate><description><![CDATA[本文是我阅读了Tomcat源码后的一些心得。 主要是讲解Tomcat的系统框架，启动流程已经运行过程。若有错漏之处，敬请批评指教。

先给出几个问题：

tomcat作为一个应用服务器的程序入口在哪里？

tomcat的整体组件结构是什么样的？

tomcat是如何及什么时候创建线程来处理请求的？

tomcat的配置文件context.xml,server.xml,tomca]]></description><category></category></item><item><title><![CDATA[Java虚拟机与GC]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/50602990</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/50602990</guid><author>ningdunquan</author><pubDate>Thu, 28 Jan 2016 20:18:48 +0800</pubDate><description><![CDATA[Java内存区域
        1.程序计数器(Program Counter Register)（线程私有的）
        2.Java虚拟机栈 (Java Virtual Machine Stacks)（线程私有的）
        3.本地方法栈 (Native Method Stack)（Native方法）
        4.Java堆 (Java Heap)（线程共享）]]></description><category></category></item><item><title><![CDATA[Nginx+Tomcat 配置负载均衡]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/50572011</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/50572011</guid><author>ningdunquan</author><pubDate>Mon, 25 Jan 2016 00:52:38 +0800</pubDate><description><![CDATA[目录：
一.搭建环境
二.软件安装
三.集群配置
四.Session处理方式
五.其他]]></description><category></category></item><item><title><![CDATA[数据结构—Java版链表相交问题的终极解决方案]]></title><link>https://blog.youkuaiyun.com/ningdunquan/article/details/48418835</link><guid>https://blog.youkuaiyun.com/ningdunquan/article/details/48418835</guid><author>ningdunquan</author><pubDate>Sun, 13 Sep 2015 19:55:09 +0800</pubDate><description><![CDATA[【题目】

判断两个链表（链表可以有环，可以无环）是否相交，若相交，则返回相交节点，不相交则返回null
1.判断两个链表是否相交
【思路】
两个链表分三种情况：
①两个链表均为非环链表；
②两个链表一个为环，一个非环；
③两个链表均为环
第一种情况非环链表根据链表的定义，只需比较两个链表尾节点是否相同，若相同则一定相交，不同则一定不相交；
第二种情况由于链表的next指针永远]]></description><category></category></item></channel></rss>