黄太洪的博客

Talk is cheap,show me the code

排序:
默认
按更新时间
按访问量

Maven JAR包冲突问题排查及解决方案

前言 写这篇文章的初衷是因为今天在使用mvn dependency:tree命令时,突然想起一年前面试阿里的一道面试题。面试题是说假设线上发生JAR包冲突,应该怎么排查?我那时候的回答是IDEA有个Maven Helper的插件,可以帮忙分析依赖冲突,然后还有一种办法是如果一个类import的时...

2018-08-17 15:23:05

阅读数:704

评论数:0

死磕Netty源码之Netty编解码源码解析

前言 Netty的底层是基于TCP实现的,TCP协议在传输数据的过程中一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,因此我们需要考虑Netty的粘包拆包问题 源码分析 Netty提供了拆包的基类ByteToMessageDecoder,如...

2018-07-14 20:26:12

阅读数:202

评论数:0

死磕Netty源码之内存分配详解(四)PoolArena全局内存分配

内存分配 关于我:http://huangth.com GitHub地址:https://github.com/RobertoHuang 免责声明:本系列博客并非原创,主要借鉴和抄袭闪电侠,占小狼等知名博主博客。如有侵权请及时联系 全局分配 内存池的初始阶段线...

2018-07-14 20:25:20

阅读数:144

评论数:0

死磕Netty源码之内存分配详解(三)PoolThreadCache线程缓存内存分配

内存分配 关于我:http://huangth.com GitHub地址:https://github.com/RobertoHuang 免责声明:本系列博客并非原创,主要借鉴和抄袭闪电侠,占小狼等知名博主博客。如有侵权请及时联系 线程私有分配 在介绍Pool...

2018-07-14 20:24:46

阅读数:239

评论数:0

死磕Netty源码之内存分配详解(二)PoolArena内存分配结构分析

前言 在应用层通过设置PooledByteBufAllocator来执行ByteBuf的分配,但是最终的内存分配工作被委托给PoolArena。由于Netty通常用于高并发系统所以各个线程进行内存分配时竞争不可避免,这可能会极大的影响内存分配的效率,为了缓解高并发时的线程竞争,Netty允许使用...

2018-07-14 20:23:09

阅读数:128

评论数:0

死磕Netty源码之内存分配详解(一)(PooledByteBufAllocator)

前言 为了避免频繁的内存分配给系统带来负担以及GC对系统性能带来波动,Netty4使用了内存池来管理内存的分配和回收,Netty内存池参考了Slab分配和Buddy分配思想。Slab分配是将内存分割成大小不等的内存块,在用户线程请求时根据请求的内存大小分配最为贴近Size的内存快,减少内存碎片同...

2018-07-14 18:52:51

阅读数:344

评论数:0

死磕Netty源码之ChannelPipeline源码解析(二)

前言 在上一篇博客中我们介绍了Pipeline数据结构以及节点的相关操作,在这一篇博客中将介绍Pipeline的事件传播 关于我:http://huangth.com GitHub地址:https://github.com/RobertoHuang 免责声明:本系列博...

2018-07-14 12:15:12

阅读数:78

评论数:0

死磕Netty源码之ChannelPipeline源码解析(一)

前言 ChannelPipeline数据管道是ChannelHandler数据处理器的容器,负责ChannelHandler的管理和事件的拦截与调度 关于我:http://huangth.com GitHub地址:https://github.com/RobertoHuang ...

2018-07-11 22:31:26

阅读数:84

评论数:0

死磕Netty源码之新连接接入源码解析

前言 本博客主要是介绍Netty在新连接接入后的相关处理 关于我:http://huangth.com GitHub地址:https://github.com/RobertoHuang 免责声明:本系列博客并非原创,主要借鉴和抄袭闪电侠,占小狼等知名博主博客。如有侵权...

2018-07-11 21:46:47

阅读数:205

评论数:0

死磕Netty源码之Reactor线程模型详解(二)NioEventLoop的执行

前言 在上一篇博客介绍了NioEventLoop的启动流程,这篇博客将介绍NioEventLoop的执行流程 博客地址:http://huangth.com GitHub地址:https://github.com/RobertoHuang 免责声明:本系列博客并非原创,主要借...

2018-07-08 13:38:44

阅读数:180

评论数:0

死磕Netty源码之Reactor线程模型详解(一)NioEventLoop的启动

前言 Netty中最核心的就是Reactor线程,对应Netty中的代码就是NioEventLoop。NioEventLoop是通过NioEventLoopGroup进行维护的,所以在介绍NioEventLoop前我们先介绍一下NioEventLoopGroup 博客地址:http://...

2018-07-08 13:32:37

阅读数:164

评论数:0

死磕Netty源码之服务端启动源码解析

前言 本博客讲述的是Netty是如何绑定端口、启动服务。启动服务的过程中你将会了解到Netty各大核心组件 博客地址:http://huangth.com GitHub地址:https://github.com/RobertoHuang 免责声明:本系列博客并非原创,主要借鉴...

2018-07-08 12:47:23

阅读数:199

评论数:1

(九) RabbitMQ实战教程(面向Java开发人员)之SpringBoot整合RabbitMQ

SpringBoot整合RabbitMQ使用SpringBoot整合RabbitMQ非常简单,它极大程度的简化了开发成本,使用SpringBoot整合RabbitMQ需导入如下依赖<parent> <groupId>org.springframework.boot&...

2018-03-19 20:44:28

阅读数:534

评论数:3

(八) RabbitMQ实战教程(面向Java开发人员)之RabbitMQ实现异步RPC

RabbitMQ实现异步RPC本系列博客源码GIT地址:https://github.com/RobertoHuang/RGP-RABBITMQ.gitRabbitMQ Java Client服务端步骤:1.服务端监听一个队列,监听客户端发送过来的消息 2.收到消息之后调用RPC服务得到调用结果 ...

2018-03-19 20:01:42

阅读数:549

评论数:0

(七) RabbitMQ实战教程(面向Java开发人员)之RabbitMQ常用属性详解

RabbitMQ常用属性详解Alternate ExchangeAlternate Exchange简称AE,当消息不能被正确路由时,如果交换机设置了AE则消息会被投递到AE中,如果存在AE链则会按此继续投递,直到消息被正确路由或AE链结束消息被丢弃。通常建议AE的交换机类型为Fanout防止出现...

2018-03-19 18:06:48

阅读数:468

评论数:0

(六) RabbitMQ实战教程(面向Java开发人员)之RabbitMQ消息的可靠性

消息可靠性在项目中使用RabbitMQ时,我们可能会遇到这样的问题:如一个订单系统当用户付款成功时我们往消息中间件添加一条记录期望消息消费者修改订单状态,但是最终实际订单状态并没有被修改成功。遇到这种问题我们排查的思路如下:1.消息是否已经成功发送到消息中间件 2.消息是否有丢失的情况 消息是否已...

2018-03-18 21:56:55

阅读数:1385

评论数:0

(五) RabbitMQ实战教程(面向Java开发人员)之RabbitMQ异常处理

RabbitMQ异常处理使用JAVA客户端整合RabbitMQ进行的许多操作都会抛出异常,我们可以自定义异常处理器进行处理,比如我们希望在RabbitMQ消费消息失败时记录一条日志,又或者在消息消费失败时发送一则通知等操作本系列博客源码GIT地址:https://github.com/Robert...

2018-03-18 00:37:33

阅读数:1112

评论数:0

(四) RabbitMQ实战教程(面向Java开发人员)之@RabbitListener消息消费

使用RabbitListener注解进行消息消费在前一篇博客中我们往MessageListenerContainer设置了MessageListener进行消息的消费,本篇博客将介绍一种更为简单的消息消费方式:使用@RabbitListener注解方式。使用RabbitListener进行消息的消...

2018-03-13 17:48:23

阅读数:9495

评论数:0

(三) RabbitMQ实战教程(面向Java开发人员)之Spring整合RabbitMQ

Spring整合RabbitMQ(Spring AMQP)Spring AMQP是对AMQP协议的抽象和封装,从官方网站上得知它是由两个项目组成的(spring-amqp和spring-rabbit)。在使用Spring整合RabbitMQ时我们主要关注三个核心接口(MessageListener...

2018-03-13 15:58:27

阅读数:1287

评论数:0

(二) RabbitMQ实战教程(面向Java开发人员)之Rabbit Java Client

RabbitMQ Java Client在介绍完RabbitMQ基本概念后,我们使用Java代码来模拟一套生产者和消费者的模型。Talk is cheap,直接上代码了(在Demo工程中我会尽可能的应用上常用的方法,但由于篇幅有限所以无法在代码中体现不同交换机的用法,还请多多见谅)相关代码1.创建...

2018-03-12 14:02:44

阅读数:3189

评论数:0

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