HttpClient源码分析和使用
前言:httpclient是我们日常开发不和绕过的一个话题,开发中遇到很多疑问,看过很多blog,这里通过阅读关键部分的源码,总结了部分个人觉得比较重要的部分。具体使用强烈建议阅读《亿级流量网站架构核心技术》这本书的第10.3,12.2节,写得非常好。 一. 重要参数含义 set
前言:httpclient是我们日常开发不和绕过的一个话题,开发中遇到很多疑问,看过很多blog,这里通过阅读关键部分的源码,总结了部分个人觉得比较重要的部分。具体使用强烈建议阅读《亿级流量网站架构核心技术》这本书的第10.3,12.2节,写得非常好。 一. 重要参数含义 set
前言: 主要介绍下精确计算java对象大小的两种方法:Instrumentation和Unsafe方式。关于Instrumentation的使用和原理Google一大推,这里说说如何在IDEA中,一步一步的操作,计算对象的大小!关于Unsafe方式,这个使用方法很简单,直接复制代
一. 位图(BitMap)位图,一种数据结构,数组中的每一位(bit)存放某种状态,每一位对应一个整数下标表示位置。 是用一个数组中的每个数据的每个二进制位表示一个数是否存在。1表示存在,0表示不存在 通常用一个long[]数组作为bitMap的存储结构;如果要保存2个以上的
前言:一次broker的failover,导致DLQ队列中多出了很多消息,这些消息都是由client端报duplicate message异常提交到DLQ队列中的。由此必须得深入client端的源码了解一下其机制。 消息是如何保证不被重复消费? 上述现象在client端是如何产
1. 开发的一次OOM OOM程序逻辑程序注册MessageListener进行消息的消费,采用一个newFixedThreadPool(10)的线程池处理消息。 Broker的架构AMQ采用HA架构,一台Master,两条Slaver,消息持久化是LevelDB,通过注册中心Z
一. Client运行流程1. Client Consumer的工作流程消息到达socket,触发TCPTransport.run() – TCPTransport.doRun() – … – 调用ActiveMQConnection.onCommand(obj)– Activ
前言: 基于activemq-client 5.14版的开发,如果简单需求,可以参照网上的教程。但是面对较复杂或者想弄清楚发送和接收的过程,阅读源码的基础上再开发,十分有必要,这里提供了一份对activemq-client进行二次封装的实现,详见githubactivemq-si
一. Broker HA架构ActiveMQ提供Master-Slaver模式的主从架构模式,简单Master-Slaver只能保证消息的可恢复,Master-Slaver-Slaver模式能保证系统的高可用,其中一台宕掉,仍能正常提供服务。 持久化Broker支持基于Kahad
前言:通常在开发Mq时,我们有必要关注一个点:消息从producer发往broker的速度,consumer消息的消费速度.而上面的点又涉及到:游标策略(Message Cursors), prefetchSize和producerWindowSize,生产者流控制(Produc
前言: 本篇是根据相关资料和MQ运维过程中编辑整理出来的,主要在broker端配置topic和queue的相关策略,二者有很多的相似之处。个人不建议在broker端配置topic和queue的分发策略,只有在特殊情况下或保护broker稳定运行前提下,进行配置,通常使用默认配置即