井底之蛙

学而知不足,思而得远虑

RocketMQ原理学习--索引

  1、RocketMQ原理学习--RocketMQ源码运行   2、RocketMQ原理学习--RocketMQ整体架构窥探   3、RocketMQ原理学习--消息类型   4、RocketMQ原理学习-- Name Server   5、RocketMQ原理学习---生产者...

2019-01-04 13:59:23

阅读数:69

评论数:2

Dubbo源码学习--SPI实现@SPI和@Adaptive

上一篇博客 Dubbo入门学习--Dubbo服务提供接口SPI机制我们已经简单介绍了Dubbo的SPI机制,这篇博客我们来剖析一下Dubbo是如何使用SPI机制的,在接口中使用@SPI("值")使用默认的实现类,如果我们不想使用默认的实现类是如何处理的。1、获取...

2017-08-23 22:21:15

阅读数:3673

评论数:2

Spring源码学习--Bean对象循环依赖问题解决(四)

循环依赖就是N个类相互嵌套引用,如果通过new对象的方式产生循环依赖的话会导致程序内存溢出报错,接下来我们了解一下spring是如何解决循环依赖问题。第一种:prototype原型bean循环依赖对于原型bean的初始化过程中不论是通过构造器参数循环依赖还是通过setXxx方法产生循环依赖,Spr...

2017-07-05 18:28:17

阅读数:1829

评论数:0

并发编程--AbstractQueuedSynchronizer介绍和原理分析

AbstractQueuedSynchronizer是并发编程包中最重要的类,是并发编程包的实现基层。简单来说,AbstractQueuedSynchronizer提供了一个基于FIFO的队列,用于存储处于阻塞状态的线程;提供了一个volatile修改的state变量,用于作为锁获取的标识位,对于...

2017-04-17 21:09:19

阅读数:1753

评论数:2

springMVC源码分析--容器初始化(一)ContextLoaderListener

在spring Web中,需要初始化IOC容器,用于存放我们注入的各种对象。当tomcat启动时首先会初始化一个web对应的IOC容器,用于初始化和注入各种我们在web运行过程中需要的对象。当tomcat启动的时候是如何初始化IOC容器的,我们先看一下在web.xml中经常看到的配置: con...

2016-10-10 19:12:48

阅读数:10637

评论数:4

Mybatis逻辑分页原理解析RowBounds

Mybatis提供了一个简单的逻辑分页使用类RowBounds,在DefaultSqlSession提供的某些查询接口中我们可以看到RowBounds是作为参数用来进行分页的,如下接口: public List selectList(String statement, Object param...

2016-09-21 19:14:26

阅读数:25773

评论数:3

Elasticsearch原理学习--分片原理及分片路由转发

一、分片与副本设置 1、分片(shard) Elasticsearch集群允许系统存储的数据量超过单机容量,实现这一目标引入分片策略shard。在一个索引index中,数据(document)被分片处理(sharding)到多个分片上。Elasticsearch屏蔽了管理分片的复杂性,使得多个...

2019-01-13 21:24:02

阅读数:32

评论数:0

Elasticsearch原理学习--Rest请求处理流程

         之前我们已经通过博客《Elasticsearch学习--ES源码下载、导入及运行》了解学习到如何在本地将Elasticsearch服务运行起来,整个2018年下半年过去了,由于在学习其他知识,对于ES学习这块就暂时先放下的,接下来我们就对ES有一个系统的学习。 这篇博客我们通过...

2019-01-13 15:08:37

阅读数:25

评论数:0

RocketMQ原理学习--消费者消费消息

        在之前的一篇博客《RocketMQ原理学习--消息类型》中我们有介绍过RocketMQ的消息类型,这篇博客我们简单介绍一下RocketMQ消费者是如何消费消息的。 一、Pull or Push         简单来说RocketMQ给我们提供了两种消息消费方式,Pull模式和...

2018-12-31 15:08:46

阅读数:42

评论数:0

RocketMQ原理学习--死信消息实现原理

        上一篇博客《RocketMQ原理学习--失败消息实现原理》中我们了解到RocketMQ对于失败消息的处理原理,当消息一直失败的情况下RocketMQ是如何处理的,这篇博客我们通过分析源码简单了解一下。         RocketMQ对于失败次数超过16次的消息设置为死信消息,消...

2018-12-16 20:42:06

阅读数:85

评论数:0

RocketMQ原理学习--失败消息实现原理

        上一篇博客《 RocketMQ原理学习--延时消息实现原理》我们介绍了延时消息的实现原理,这篇博客我们看看RocketMQ在消费者消息消费失败的情况下是如何处理的。         正常情况下消费者在消息消费失败时会马上重新消费消息,正常情况下再次消费应该会将消息消费完成的,但是...

2018-12-15 13:36:33

阅读数:72

评论数:0

RocketMQ原理学习--延时消息实现原理

         RocketMQ提供了延时消息类型,简单来说就是生产者在发送消息的时候指定一个延时时间,当到达延时时间之后消息才能够被投送到消费者。       首先我们可以考虑一下RocketMQ的延时消息是如何实现: (1)生产者将延时消息发送到Broker,Broker是如何区分普通消...

2018-12-15 12:54:41

阅读数:148

评论数:0

RocketMQ原理学习---Broker消息接收处理

         上一篇博客《RocketMQ原理学习---Producer消息发送》中我们简单了解了RocketMQ生产者消息发送的过程,接下来我们看看Broker是如何处理接收到的消息。        RocketMQ的Broker接收消息涉及到很多操作,首先我们需要对RocketMQ所保存...

2018-12-08 14:10:46

阅读数:103

评论数:0

RocketMQ原理学习---生产者事物消息发送

        上一篇博客《RocketMQ原理学习---生产者普通消息发送》我们已经对生产者发送普通消息有了简单的了解,这篇博客我们来学习一下RocketMQ在发送事物消息时做了什么处理操作。 一、生产者发送消息        RocketMQ通过实现2PC协议来实现分布式事物,Rocket...

2018-12-04 21:45:36

阅读数:124

评论数:0

RocketMQ原理学习---生产者普通消息发送

        上一篇博客RocketMQ原理学习-- Name Server中我们介绍了Name Server提供的相关功能,这篇博客我们来介绍一下生产者消息发送相关的内容。 消息发送示例: public class Producer { public static void m...

2018-12-02 15:08:03

阅读数:91

评论数:0

RocketMQ原理学习-- Name Server

       Name Server作为RocketMQ的一个组件,其作用就是一个注册中心,用于管理Broker相关的一些信息,生产者和消费者可以从Name Server中获取Broker中相关的Topic信息等,Name Server可以单台部署也可以多台部署,相互之间不存在联系。 Name ...

2018-12-01 13:23:42

阅读数:63

评论数:0

RocketMQ原理学习--RocketMQ整体架构窥探

 RocketMQ总体架构图: RocketMQ简单架构 角色简介: 1、Name Server:简单可以理解为注册中心,Broker相关信息会注册到Name Server集群中,维护Broker及Broker中相关Topic信息,这样生产者和消费者就可以从Name Server中定时(3...

2018-11-28 22:05:35

阅读数:300

评论数:0

RocketMQ原理学习--消息类型

一、集群消息与广播消息 集群消费:当使用集群消费模式时,MQ 认为任意一条消息只需要被集群内的任意一个消费者处理即可。 广播消费:当使用广播消费模式时,MQ 会将每条消息推送给集群内所有注册过的客户端,保证消息至少被每台机器消费一次。 集群消费模式: 适用场景&注...

2018-11-27 22:33:21

阅读数:118

评论数:2

RocketMQ原理学习--RocketMQ源码运行

    最近打算对RocketMQ相关的知识和源码进行学习一下,首先能把源码导入及运行能比较方便我们通过跟踪源码进行相关知识学习。 一、工程导入 git地址:https://github.com/apache/rocketmq.git 直接以maven工程的形式导入到IDEA中即可 二...

2018-11-25 20:48:00

阅读数:90

评论数:0

ZipKin原理学习--zipkin支持日志打印追踪信息

       目前在zipkin brave已经提供功能在我们使用logback或log4j等时可以在日志信息中将traceId和spanId等信息打印到运行日志,这样可能对我们通过日志查看解决问题有比较大的帮助。       地址:https://github.com/openzipkin/b...

2018-10-20 21:29:43

阅读数:2788

评论数:0

提示
确定要删除当前文章?
取消 删除