摘要: 上篇文章中我们梳理了ChannelPipeline中入站事件的传播,这篇文章中我们看下出站事件的传播,也就是ChannelOutboundHandler接口的实现。 1、出站事件的传播示例 我们对上篇文章中的示例代码进行改造,在ChannelPipeline中加入ChannelOutboundHan 阅读全文
posted @ 2020-03-16 20:52 DaFanJoy 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 之前的文章中我们说过ChannelPipeline作为Netty中的数据管道,负责传递Channel中消息的事件传播,事件的传播分为入站和出站两个方向,分别通知ChannelInboundHandler与ChannelOutboundHandler来触发对应事件。这篇文章我们先对Netty中入站事件 阅读全文
posted @ 2020-02-14 12:44 DaFanJoy 阅读(866) 评论(0) 推荐(1) 编辑
摘要: 在项目当中数据库一般都会成为主要的性能与负载瓶颈,那么针对数据库各项性能指标的监控与对应的优化是开发与运维人员需要面对的主要工作,而且这部分的工作会贯穿项目从开发到运行的整个周期里。 这篇文章中我们对MySql数据库中的几个主要的性能指标的计算与统计进行下说明与总结。 在MySql中通过show g 阅读全文
posted @ 2020-01-24 18:19 DaFanJoy 阅读(6947) 评论(0) 推荐(0) 编辑
摘要: 上篇文章中,我们对Netty中ChannelPipeline的构造与初始化进行了分析与总结,本篇文章我们将对ChannelHandler的添加与删除操作进行具体的的代码分析; 一、ChannelHandler的添加 下面是Netty官方的一段demo源码,可以看到在服务端初始化时执行了向Channe 阅读全文
posted @ 2019-12-07 16:27 DaFanJoy 阅读(881) 评论(0) 推荐(1) 编辑
摘要: Netty中ChannelPipeline实际上类似与一条数据管道,负责传递Channel中读取的消息,它本质上是基于责任链模式的设计与实现,无论是IO事件的拦截器,还是用户自定义的ChannelHandler业务逻辑都做为一个个节点被添加到任务链上。 一、ChannelPipeline的设计与构成 阅读全文
posted @ 2019-10-26 15:00 DaFanJoy 阅读(806) 评论(0) 推荐(1) 编辑
摘要: 当我们使用kafka向指定Topic发送消息时,如果该Topic具有多个partition,无论消费者有多少,最终都会保证一个partition内的消息只会被一个Consumer group中的一个Consumer消费,也就是说同一Consumer group中的多个Consumer自动会起到负载均 阅读全文
posted @ 2019-09-06 12:25 DaFanJoy 阅读(3190) 评论(0) 推荐(1) 编辑
摘要: 一、版本 CentOS 7.5 zookeeper-3.4.12 kafka _2.12-1.1.0 二、zookeeper安装 1、下载解压zookeeper压缩包 tar -zvxf zookeeper-3.4.12.tar.gz 2、创建数据与日志文件夹 mkdir /usr/local/zo 阅读全文
posted @ 2019-08-24 16:50 DaFanJoy 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 《Scalable IO in Java》 是java.util.concurrent包的作者,大师Doug Lea关于分析与构建可伸缩的高性能IO服务的一篇经典文章,在文章中Doug Lea通过各个角度,循序渐进的梳理了服务开发中的相关问题,以及在解决问题的过程中服务模型的演变与进化,文章中基于R 阅读全文
posted @ 2019-07-28 15:11 DaFanJoy 阅读(8947) 评论(3) 推荐(5) 编辑
摘要: Semaphore信号量通常做为控制线程并发个数的工具来使用,它可以用来限制同时并发访问资源的线程个数。 一、Semaphore使用 下面我们通过一个简单的例子来看下Semaphore的具体使用,我们同时执行10个计数线程,并定义一个Semaphore变量用来控制并发值,同一时间只允许两个线程并发执 阅读全文
posted @ 2019-07-06 18:06 DaFanJoy 阅读(955) 评论(0) 推荐(0) 编辑
摘要: 一、CyclicBarrier使用 CyclicBarrier从字面上可以直接理解为线程运行的屏障,它可以让一组线程执行到一个共同的屏障点时被阻塞,直到最后一个线程执行到指定位置,你设置的执行线程就会触发运行;同时CyclicBarrier相比与CountDownLatch,它是可以被重置的;下面我 阅读全文
posted @ 2019-06-30 18:27 DaFanJoy 阅读(364) 评论(0) 推荐(0) 编辑