导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:308
阅读量:796953
访问量:73864
至今:
×
分享博文列表
· 真正理解线程上下文类加载器(多案例分析)
    此前我对线程上下文类加载器(ThreadContextClassLoader,下文使用TCCL表示)的理解仅仅局限于下面这段话:Java提供了很多服务提供者接口(ServiceProviderInterface,SPI),允许第三方为这些接口提供实现。常见的SPI有JDBC、JC ...更多
(163)阅读 2019-07-02

· Jedis一致性哈希实现
    一致性哈希算法介绍:一致性哈希算法导入Jedis依赖<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><versio ...更多
(118)阅读 2019-06-07

· 数据库连接池性能比对(hikari druid c3p0 d
    背景对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推荐出最优的数据库连接池。NOTE:本文所有测试均是MySQL库测试结论1:性能方面hikariCP>druid>tomcat-jdbc>dbcp>c3p0。hikariCP的高 ...更多
(90)阅读 2019-05-30

· TCP长连接的一些事儿
    1、TCP的特点以及与应用TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接。TCP建立连接需要经过三次握手,首先,客户端发送一段报文给服务器,表示我要连你,服务器收到报文后马上 ...更多
(145)阅读 2019-05-26

· JVM命令大全
    运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的MemoryAnalyzer等等,但是在生产环境出现问题的时候,一方面工具的使用会有所限制,另一方面喜欢装X的 ...更多
(199)阅读 2019-05-26

· Netty 4.0 新的特性及需要注意的地方
    这篇文章和你一起过下Netty的主发行版本的一些显著的改变和新特性,让你在把你的应用程序转换到新版本的时候有个概念。项目结构改变Netty的包名从org.jboss.netty改为io.netty,因为我们不在是JBoss.org的一部分了。二进制JAR包被分为了多个子模块以便用 ...更多
(197)阅读 2019-05-08

· Netty3.x和Netty4.x的线程模型
    了解完了Netty4的串行化设计理念之后,我们继续看Netty3线程模型存在的问题,总结起来,它的主要问题如下:1)Inbound和Outbound实质都是I/O相关的操作,它们的线程模型竟然不统一,这给用户带来了更多的学习和使用成本;2)Outbound操作由业务线程执行,通常 ...更多
(172)阅读 2019-05-08

· netty3与netty4的区别
    今天遇到一个人问我netty3与netty4有什么区别。因为我之前使用netty做过网络程序开发,心里还是有点谱的。很自然地就说到了一些主要区别一些术语的变化,如Upstream变为了Inbound,Downstream变为了Outboundnetty3对每个读或写的操作,还会额 ...更多
(289)阅读 2019-05-08

· Netty并发优化之ExecutionHandler
    上文《Netty框架入门》说到:如果业务处理handler耗时长,将严重影响可支持的并发数。针对这一问题,经过学习,发现了可以使用ExecutionHandler来优化。先来回顾一下没有使用ExecutionHandler优化的流程:1)Boss线程(接收到客户端连接)-> ...更多
(152)阅读 2019-05-08

· ThreadPoolExecutor线程池参数设置技巧
    一、ThreadPoolExecutor的重要参数corePoolSize:核心线程数核心线程会一直存活,及时没有任务需要执行当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理设置allowCoreThreadTimeout=true(默认false)时,核心 ...更多
(213)阅读 2019-04-19

· ZooKeeper和CAP理论及一致性原则
    一、CAP理论概述CAP理论告诉我们,一个分布式系统不可能同时满足以下三种一致性(C:Consistency)可用性(A:Available)分区容错性(P:PartitionTolerance)这三个基本需求,最多只能同时满足其中的两项,因为P是必须的,因此往往选择就在CP或者 ...更多
(122)阅读 2019-04-07

· HashMap分析之红黑树树化过程
    概述HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文主要分析一下HashMap中红黑树树化的过程 ...更多
(186)阅读 2019-04-03

· 史上最清晰的红黑树讲解(下)
    上一篇文章史上最清晰的红黑树讲解(上)对JavaTreeMap的插入以及插入之后的调整过程给出了详述。本文接着以JavaTreeMap为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以方便理解。寻找节点后继对于 ...更多
(188)阅读 2019-04-03

· 史上最清晰的红黑树讲解(上)
    本文以JavaTreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Blacktree)的插入,删除以及由此产生的调整过程。总体介绍JavaTreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评 ...更多
(123)阅读 2019-04-02

· 红黑树之原理和算法详细介绍
    R-BTree简介R-BTree,全称是Red-BlackTree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节 ...更多
(271)阅读 2019-04-02

· jstack 堆栈日志分析
    一、线程的状态线程间的状态转换:1.新建(new):新创建了一个线程对象。2.可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权。3.运行(running ...更多
(111)阅读 2019-03-17

· 深入理解jstack日志
    在分析线上问题时常使用到jstack<PID>命令将当时Java应用程序的线程堆栈dump出来。面对jstack日志,我们如何查看?首先要清楚线程的状态线程的状态有:new、runnable、running、waiting、timed_waiting、blocked、 ...更多
(149)阅读 2019-03-17

· 通过jstack日志分析和问题排查
    前段事件公司出现了一个严重故障(调用dubbo服务一直处于超时,整个服务系统发生雪崩,系统彻底访问不了),一开始怎么都找不到问题的根源,日志的表现形式是dubbo线程池用完了,那么具体是什么导致的没有找到,后然通过jstack日志分析才找到问题的根源,根源就是系统日志代码写有问题 ...更多
(319)阅读 2019-03-17

· 为什么Redis内存不宜过大
    redis这个内存数据库,它的高性能、稳定性都是不用怀疑的,但我们塞进redis的数据过多,内存过大,那如果出问题,那它可能会带给我们的就是灾难性。这几年的线上业务表明,redis这个内存数据库,它的高性能、稳定性都是不用怀疑的,但我们塞进redis的数据过多,内存过大,那如果出 ...更多
(123)阅读 2019-03-14

· HTTP访问控制(CORS)跨域- 学习笔记
    今天在写一个简单的mock-server的时候遇到了跨域问题,导致前端页面不能正常与mock-server进行数据交互,之后我查询了相关资料,了解了一下CORS的相关知识。一.简介当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时,资源会发起一个跨域HTTP请求。而 ...更多
(518)阅读 2019-03-08