- 博客(10)
- 收藏
- 关注
原创 HAProxy了解
在项目中,为实现高可用的MQ服务,需要搭建HAProxy+多台MQ,故对HAProxy进行了解。对HAProxy的理解(1)首先是高可用的,可以支持上万的连接。(2)支持第四层、第七层的代理(3)隐匿后台复杂的部署,提供单一的入口(4)为每个服务提供负载均衡、健康检查功能。(5)作为唯一入口,在此步做好所有安全控制(6)在ssl、http压缩方面做了优化,提高传输速度基本的代理配置...
2019-03-26 20:40:01 490
原创 Netty关于select/epoll
使用Netty构建服务器时,需要指定parent线程池和child线程池,parent线程负责监听端口,一旦有连接接入,则注册到child线程池中的一个线程上,该连接的IO操作/任务都由该线程完成。换句话说,一个线程会负责多个连接的IO操作,也就是多路复用。Netty底层是使用系统提供的select或者epoll来实现多路复用的。先来科普下select/poll/epoll。select/p...
2019-03-25 14:55:39 8984
原创 TLSv1.3学习
TLSv1.3于2018年8月正式发布最终版本。如果想要浏览基于TLSv1.3的网页,需要浏览器支持,chrome的话需要打开chrome://flags/搜索tls并选择启用。浏览网页时打开开发者调试工具查看Security页签可以观察到网站使用TLSv1.2还是1.3。现在大部分网站还是使用TLSv1.2的,也有少部分使用TLSv1.3的网站的,如https://boke112.com/bk...
2019-03-24 21:44:40 6980
原创 TLSv1.2协议了解
首先明确TLS的作用三个作用(1)身份认证通过证书认证来确认对方的身份,防止中间人攻击(2)数据私密性使用对称性密钥加密传输的数据,由于密钥只有客户端/服务端有,其他人无法窥探。(3)数据完整性使用摘要算法对报文进行计算,收到消息后校验该值防止数据被篡改或丢失。TLS传输过程下面是使用wireshark抓包的结果,其中1-4是握手阶段,5是指握手后双方使用商议好的秘钥进行通讯。...
2019-03-23 00:17:53 66661 1
原创 SSL证书生成与使用(基于Netty)
为了接入SSL,故了解证书的种类/结构/生成方式和使用方式。证书的结构证书包含签发方信息,拥有者信息,公钥,签名等。签名是使用签发方私钥对证书进行加密运算的来,通过使用签发方公钥解密可以验证证书真伪。证书格式参考:https://blog.csdn.net/jjxojm/article/details/81266601证书的种类先了解两种证书,一种是自签证书,另一种是由机构签发的证书。...
2019-03-19 10:47:10 4983
原创 RocketMQ-NameServer分析
Rocketmq中的NameServer主要负责两个工作,broker管理和路由管理。这篇文章主要是分析NameServer如何完成这两个工作的。一、broker管理broker会定时上报broker的基本信息以及主题信息给NameServer,NameServer会将这些信息存储到RouteInfoManager中1. broker上报信息我们看看broker启动时关于上报信息的代码/...
2019-03-13 21:38:01 882
原创 RocketMQ集群-主题创建及队列分布
先了解集群是怎么搭建的,再了解主题在集群上的创建过程以及队列分布状态。搭建集群这里讨论主备和多主,暂不讨论多主备1. 主备master主要配置brokerClusterName = DefaultClusterbrokerName = broker-abrokerId = 0brokerRole = ASYNC_MASTERslave主要配置brokerClusterName...
2019-03-06 15:51:16 11329 3
原创 RocketMQ客户端源码分析-DefaultMQPushConsumer
与DefaultMQProducer类似,DefaultMQPushConsumer包含了defaultMQPushConsumerImpl,而defaultMQPushConsumerImpl又包含了MQClientInstance。start观察MQClientInstance的start方法,重点关注以下两句this.pullMessageService.start();此处是对于...
2019-03-04 16:11:34 874
原创 RocketMQ客户端源码分析-底层通讯
RocketMQ客户端所有与NameServer和Broker的通讯都是通过MQClientAPIImpl完成的。MQClientAPIImpl包含一个NettyRemotingClient,使用netty实现。在启动MQClientAPIImpl时,会启动NettyRemotintClient,设置通讯时的线程池以及pipeline。pipelineNettyEncoderNetty...
2019-03-01 17:02:21 546
原创 RocketMQ客户端源码分析-DefaultMQProducer
结构DefaultMQProducer包含了DefaultMQProducerImpl,而DefaultMQProducerImpl又包含了MQClientInstance。startstart的逻辑主要在MQClientInstance,做了这四个事情:this.mQClientAPIImpl.start();APIImpl主要负责对外的API请求,比如在需要获取broker状态时...
2019-03-01 15:15:08 1466 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人