- 博客(18)
- 收藏
- 关注
原创 我理解的Sentinel:时间窗统计
1 时间窗口基础参数:intervalLength: 区间长度,即统计的时间长度,决定了计算数据时统计的窗口个数windowLength:时间窗宽度count:时间窗内统计量startTime: 每个时间窗的起始时间如下图所示,每个时间点都会归属于一个时间窗口,即会将时间轴按照时间窗宽度windowLength进行划分。每个时间窗都有一个起始时间startTime。获取某个时间的统计量获取当前时间currTime根据currTime - (已用时间窗).startTime <
2021-02-14 00:28:09
1568
原创 我理解的RocketMQ—消息偏移量管理分析
1 客户端逻辑1.1 概述偏移量管理主要是指管理每个消息队列的消费进度:集群模式消费下会将消息队列的消费进度保存在Broker端,广播模式消费下消息队列的消费进度保存在消费者本地。组件分析:RocketMQ定义了一个接口OffsetStore。它的实现类有两个:RemoteBrokerOffsetStore和LocalFileOffsetStore前者主要是集群消费模式下使用,即与broker进行打交道,将消息队列的消费偏移量通过网络传递给Broker;后者主要是广播消费模式下使用,即直接将消费偏移量
2021-02-09 20:35:45
1771
原创 我理解的RocketMQ—消费者负载均衡的实现
1 负载均衡实现组件分析1.1 负载均衡整体概述概述所谓的负载均衡指的就是,在集群消费模式下,一个消费组里面有多个消费者订阅了一个主题,此主题有多个消息队列(MessageQueue),负载均衡组件就将这些消息队列平均分给消费组里面的消费者。使用注意点同一个消费组内的消费者要保持一样主题订阅,否则会导致某些消费队列没有消费者进行消费。组件分析(核心类和策略类)负载均衡只对集群消费模式的消费者有效,对广播模式的消费者无效的。RocketMQ的负载均衡是在消费者客户端完成的。首先抛开
2021-02-08 21:06:18
990
2
原创 我理解的RocketMQ:同步发送消息源码分析
1 概述将发送消息的过程逻辑分为三层:应用层,传输层,网络层client/DefaultMQProducer/DefaultMQProducerImpl:这三者中的逻辑属于应用层的处理逻辑,主要逻辑就是处理消息本身相关的事情MQClientAPIImpl:此类中的逻辑归属于传输层,应用层与网络层之间的桥梁,主要的逻辑是将应用层的结果封装为网络层协议RemotingCommand以及消息头HeaderNettyRemotingClient:网络层,处理通信相关的通信整个同步发送消息过程的时序图
2021-01-17 22:33:33
282
原创 我理解的RocketMQ:网络层的通信协议
1 概述如下图所示,业务层与Netty客户端之间用RemotingCommand进行交互,即业务层调用Netty发送消息时,会将消息封装在RemotingCommand对象里面,而Netty接收到外部消息的时候会给业务层返回RemotingCommand的对象实例。Netty与外部世界通过字节流进行传输。Netty在发送消息的时候,对RemotingCommand进行编码(对象–>字节流);在接收到外部消息的时候会对字节流进行解码(字节流–>对象)。业务层与Netty之间交互方式的伪代码
2021-01-17 18:05:01
781
原创 我理解的RocketMQ:主从复制HA(high availability)的机制分析
1 概述主从消息复制方式:RocketMQ中主从同步采用的是主节点主动向从节点发送同步消息,是由一个后台不断运行的线程执行。注意是后台。并不是生产者给主Broker发送消息,主Broker处理接收消息时进行显示调用同步消息给从Broker。从Broker向主Broker反馈主从消息复制进度:从Broker定时的向主Broker反馈复制消息进度。主Broker便知道从Broker的消息复制进度。这个反馈主要是用来实现主从同步复制。发送消息同步的方式进行主从消息复制的实现:主Broker在处理接收消息时,
2021-01-17 00:32:25
409
转载 Java中的String2
在Java语言中,所有类似“ABC”的字面值,都是String类的实例;String类位于java.lang包下,是Java语言的核心类,提供了字符串的比较、查找...
2020-08-20 08:45:44
333
转载 Java中的String的Hash
JDK6的源码: [java] viewplain copy public int hashCode() { int...
2020-08-20 08:41:38
1574
转载 Spring中的@AliasFor标签
原创文章,转载请注明出处在Spring的众多注解中,经常会发现很多注解的不同属性起着相同的作用,比如@RequestMapping的value属性和path属性,这就需要做一些基本的限制,比如value和path的值不能冲突,比如任意设置value或者设置path属性的值,都能够通过另一个属性来获取值等等。为了统一处理这些情况,Spri...
2020-08-18 10:56:16
145
转载 spring validation实现对Restful请求的数据进行校验
spring validation实现对Restful请求的数据进行校验转发:https://blog.csdn.net/steven2xupt/article/details/874526641、前言数据的校验是交互式网站一个不可或缺的功能,前端的js校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的...
2020-08-10 23:17:45
704
1
原创 pyenv的基本用法
#### step 1安装库文件sudo apt-get updatesudo apt-get updatesudo apt-get install make build-essential libssl-dev zlib1g-devsudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl...
2019-02-25 21:12:38
2544
原创 np.newaxis的使用
在python中a = [1 2 3 4] 能使用a[np.newaxis,:] 输出:[[1,2,3,4]]或者 a[:,np.newaxis] 输出:[[1],[2],[3],[4]]b = [[1,2,3],[4,5,6]] 能使用[[[1,2,3],[4,5,6]]][[[1,2,3]],[[4,5,6]]][[[1],[2],[3]],[[4],[5...
2018-12-27 18:06:10
159
原创 plot
fig = plt.figure()subFig1 = fig.add_subplot(121)subFig1.scatter(X[:,0],X[:,1],c=y,s=30,cmap=plt.cm.Paired)subFig1.set_title("Scatter")plt.xlabel('x1')plt.ylabel('x2')subFig1 = fig.add_subplot(1...
2018-12-19 11:18:01
160
原创 scikit-learn的数据集
数据集是在datasets这个对象中,所以要从sklearn导入datasets这个模块。1.载入数据集,例如diabetes数据集diabetes = datasets.load_diabetes()2.数据集datasets的格式:datasets.load_diabetes()返回的是一个对象,该对象中包含data,target这两个属性,代表的是ndarray,或者直...
2018-12-10 22:28:31
574
原创 Anaconda+Opencv
用Anaconda配置可以使用opencv python库的一个环境1.第一步,在Environment 目录下电击create,准备创建一个名为opencv的新环境。 第二步. 点进去之后输入环境名称,例如“opencv”,并且选择你的python环境,再点击创建就创建成功了。第三步,下载opencv的python扩展包(.whl后缀文件)https://www.lfd....
2018-12-10 01:08:20
1238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人