![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开源项目学习
文章平均质量分 89
xxxxxx91116
这个作者很懒,什么都没留下…
展开
-
《RocketMq》一、网络传输篇
你是否想知道一个分布式系统的网络传输解决方案,那你可以学习下RocketMQ的网络传输原理,从RocketMQ的Remoting网络处理部分,可以学习到如何进行高效的网络传输,这些思想可以应用到不同的业务中。 一、要解决的问题 其实大部分应用的网络处理都要解决如下图所示的问题:那么就以RocketMQ的源码入手,看看它是如何架构如上的结构的。 二、RocketMQ-remoting...原创 2015-12-12 22:38:51 · 11951 阅读 · 4 评论 -
《RocketMq》二、存储篇
RocketMQ的数据存储部分也是一个重头戏,他主要用于存储Producer生产的消息,Consume的逻辑队列,索引,以及主从复制,这里也是一个非常好的范例,我们可以看到如何处理数据存储,如何提高IO效率。东西太多信息量略大有点乱,之后再整理吧......一、总体结构CommitLog:实时执行,真正的I/O写入磁盘操作, 要求是实时的(当然,有时候只是写入内存,定时刷盘);ConsumeQue...原创 2015-12-16 21:31:55 · 21899 阅读 · 3 评论 -
《RocketMq》三、NameServer
RocketMQ-nameSrv用于管理所有broker的信息,以便于Producer和Consumer能够获取到正确的Broker信息,进行业务处理;可以看到NameSrv的主要管理内容如下:1. 接收Broker的注册,注销请求;2. Producer获取topic下的所有BrokerQueue,put消息3. Consumer获取topic下所有的BrokerQueue,get消息所以可以看...原创 2015-12-18 17:41:46 · 8687 阅读 · 2 评论 -
《RocketMq》五、Client-Producer生产者详解
Producer的用途大家都很清楚,主要就是生产消息,那么分布式模式下与单队列模式不一样,如何能够充分利用分布式的优势,将生产的消息分布到不同的队列下呢?Rocket-MQ提供了3种不同模式的Producer:1. NormalProducer2. OrderProducer3. TransactionProducer一、数据结构1. TopicPublicInfo:仅仅是Producer使用,保...原创 2015-12-22 12:53:56 · 8892 阅读 · 0 评论 -
《RocketMq》六、Client-Consumer消费者详解
Consumer-集群Push模式-简介:0、背景介绍 Consumer主要用于向Broker请求Producer产生的消息,对其进行消费;对于RocketMQ,我们一定很好奇,如何实现分布式的Consumer消费,如何保证Consumer的顺序性,不重复性呢? 存在的问题:1. 如果在集群模式中新增/减少 组(group) 消费者,可能会导致重复消费;原因是:假设新增消费者前,C...原创 2015-12-23 23:18:05 · 42755 阅读 · 0 评论 -
《RocketMq》七、Broker中心节点
broker的位置和结构图:由于之前已经把存储,网络分解出来进行了详细的分析,因此Broker部分变得较简单,这里主要分为以下几个部分来说:一、Broker与NameSrv交互Broker会不断发送register信息给NameSrv,将自身的clusterName,brokerName,topic信息发送到Namesrv;而Consumer和Producer则会通过Namesrv获取信息,这里最...原创 2015-12-29 17:33:53 · 3781 阅读 · 0 评论 -
验证码识别
验证码识别是3年前的一个小愿望了(当时是做一个自动回帖器,抽奖iphone),但自己这两年主要在做分布式架构,今年终于抽出了空,又战胜了对数学的恐惧,在coursera上学习了吴恩达的机器学习和深度学习,验证码识别也算是对部分课程的实践,下面就来整理一下这次识别的过程。验证码识别主流程识别细节1 目标检测检测出验证码图片中的字符边距11 labelImg使用12 darknet使用原创 2017-12-31 18:54:51 · 13867 阅读 · 1 评论 -
《RocketMq》四、Client Producer/Consumer总览
一、总览Rocketmq的客户端包括Producer和Consumer,这2个部分。虽然两个部分的细节不同,但在发送消息,维持broker/namesrv连接,等方面有着相同的处理方式,可以对二者统一进行管理。 让我们自己先思考下,一个client需要完成哪些内容:获取namesrv的地址与namesrv交互,获取broker的地址以及TopicRouteData管理进程中所有的p...原创 2018-03-01 16:02:33 · 1155 阅读 · 0 评论