摘要:
定义 使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止 使用场景 如果一个请求可能会出现多个或未知个数处理器实例,或者请求处理器可动态配置的情况下,这时候便可使用责任链模式。 几乎所有的开源框架中都使用到该模 阅读全文
摘要:
状态模式 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 状态模式主要解决了当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态转移的判断逻辑转移到表达不同状态的一系列类当中,可以把复杂的逻辑简单化。 结构图: State 接口,抽象的状态处理类,定义一个接口以封装与 阅读全文
摘要:
BIO(blocking io) BIO即为阻塞IO,在网络编程中,它会在建立连接和等待连接的对端准备数据阶段进行阻塞。因此为了支撑高并发的用户访问,一般会为每一个socket 连接分配一个线程。但使用的瓶颈更加明显,无法支持上百万、甚至千万以上的并发。且线程切换带来的开销也更大。 代码示例: Se 阅读全文
摘要:
Rocket 架构主要分为4部分: Producer 消息发布者,支持分布式集群部署。Produer 通过 MQ 负载均衡模块选择相应 Broker 中的 queue 进行消息投递,投递过程支持快速失败并且低延迟 Consumer 消息消费的角色,支持分布式集群方式部署。支持以push推,pull拉 阅读全文
摘要:
背景 1. 前往官网( http://rocketmq.apache.org/dowloading/releases/ ) 下载相应版本 2. 解压缩放到相应到目录 3. 设置 环境变量为ROCKETMQ_HOME为 rocketmq 安装目录 1 集群搭建 1.1 单Master模式 这种方式风险 阅读全文
摘要:
1. jstack 2.jstat 3.jmap 阅读全文
摘要:
前言 有次周末忘记带公司电脑回来,恰好遇到有个问题需要修复,又不想跑公司一趟,于是研究了下如何在自己电脑上同时使用两个 git 账号 正文 1. 首先就和第一次安装 git 时一样,使用 sha算法 与邮箱重新生成公匙和私匙 2.选择你保存公匙和私匙的地址,这里尽量重新命名,如:/c/Users/E 阅读全文
摘要:
本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能。 1 http协议 1.1 描述 1.2 请求包 主要包含三部分:请求行(line),请求头(header),请求正文(body) 请求行 阅读全文
摘要:
前言 Netty 的线程模型是基于NIO的Selector 构建的,使用了异步驱动的Reactor 模式来构建的线程模型,可以很好的支持成百上千的 SocketChannel 连接。由于 READ/WRITE 都是非阻塞的,可以充分提升I/O线程的运行效率 ,避免了IO阻塞导致线程挂起, 同时可以让 阅读全文
摘要:
数据统计分析常用的统计方式: 1、存量:系统在某一时间点下数据在某个条件下的总数; 例: 需求:假设房源状态流转为:上架->下架->上架 (形成闭环) ,按日的维度统计时间范围内每天处于上架状态的存量房源数量 设计中间表(time 时间 , nums 上架房源数量)用来给用户统计用。因为是按日分组, 阅读全文