开发框架与中间件

#开发框架与中间件#

已有96人关注此标签

内容分类

丁威

RocketMQ 平滑升级到主从切换实战

本文主要介绍如何将 RocketMQ 集群从原先的主从同步升级到主从切换。 首先介绍与 DLedger 多副本即 RocketMQ 主从切换相关的核心配置属性,然后尝试搭建一个主从同步集群,再从原先的 RocketMQ 集群平滑升级到 DLedger 集群的示例,并简单测试一下主从切换功能。

丁威

源码分析 RocketMQ DLedger 多副本即主从切换实现原理

DLedger 基于 raft 协议,故天然支持主从切换,即主节点(Leader)发生故障,会重新触发选主,在集群内再选举出新的主节点。 RocketMQ 中主从同步,从节点不仅会从主节点同步数据,也会同步元数据,包含 topic 路由信息、消费进度、延迟队列处理队列、消费组订阅配置等信息。

丁威

RocketMQ 整合 DLedger(多副本)即主从切换实现平滑升级的设计技巧

源码分析 RocketMQ DLedger 多副本系列已经进行到第 8 篇了,前面的章节主要是介绍了基于 raft 协议的选主与日志复制,从本篇开始将开始关注如何将 DLedger 应用到 RocketMQ中。

知了一笑

基于Shard-Jdbc分库分表,数据库扩容方案

本文源码:GitHub·点这里 || GitEE·点这里 一、数据库扩容 1、业务场景 互联网项目中有很多“数据量大,业务复杂度高,需要分库分表”的业务场景。 这样分层的架构 (1)上层是业务层biz,实现业务逻辑封装; (2)中间是服务层service,封装数据访问; (3)下层是数据层db...

丁威

基于 raft 协议的 RocketMQ DLedger 多副本日志复制设计原理

上一篇 源码分析 RocketMQ DLedger(多副本) 之日志复制(传播) ,可能有不少读者朋友们觉得源码阅读较为枯燥,看的有点云里雾里,本篇将首先梳理一下 RocketMQ DLedger 多副本关于日志复制的三个核心流程图,然后再思考一下在异常情况下如何保证数据一致性。

丁威

源码分析ElasticJob任务运行事件监听器

在任务执行的前后,ElasticJob可以提供扩展,其主要类图如下:ElastciJobListener:elasticJob任务执行事件监听器,提供如下两个方法: void beforeJobExecuted(final ShardingContexts shardingContexts); 在任务执行之前调用,shardingContexts为分片上下文信息。

丁威

源码分析ElasticJob任务错过机制(misfire)与幂等性

任务在调度执行中,由于某种原因未执行完毕,下一次调度任务触发后,在同一个Job实例中,会出现两个线程处理同一个分片上的数据,这样就会造成两个线程可能处理到相同的数据。为了避免同一条数据可能会被多次执行的问题,ElasticJob引入幂等机制,确保同一条数据不会再被多个Job同时处理,也避免同一条数据在同一个Job实例的多个线程处理。

丁威

源码分析ElasticJob故障失效转移机制

本节将探讨ElasticJob故障失效转移机制。我们知道ElasticJob是一款基于Quartz的分布式任务调度框架,这里的分布式是数据的分布式,ElasticJob的核心设计理念是一个任务在多个节点上执行,每个节点处理一部分数据(任务待处理数据分片)。

丁威

源码分析ElasticJob分片机制(带分片机制流程图)

本文将重点分析 ElasticJob 的分片机制: ElasticJob分片工作机制: ElasticJob在启动时,首先会启动是否需要重新分片的监听器。代码见:ListenerManager#startAllListeners {...; shardingListenerManager.start();...}。

丁威

源码分析ElasticJob选主实现原理

ElasticJob各分布式调度服务器有两个角色:主服务器、从服务器。这里主从服务器与数据库的主从同步不一样,也不是传统意义上的主备,从执行调度任务这一视角来看ElasticJob主从服务器的地位是相同的,都是任务调度执行服务器(彼此之间共同组成一个集群平等的执行分配给自己的数据执行调度任务),主从服务器共同构成任务调度的分片节点。

宇珩

结构化大数据分析平台设计

前言  任何线上系统都离不开数据,有些数据是业务系统自身需要的,例如系统的账号,密码,页面展示的内容等。有些数据是业务系统或者用户实时产生的,例如业务系统的日志,用户浏览访问的记录,系统的购买订单,支付信息,会员的个人资料等。

丁威

源码分析Elastic-Job前置篇二-基于Spring启动序列图与核心类图

本文主要目的:简单梳理了基于 Spring ElasticJob 的启动流程,从下文开始,将重点剖析 ElasticJob 的核心实现细节,例如选主、分片、失效转移机制等等。 1、在Spring中使用Elastic-Job的示例如下: <job:simple id="areaSyncJob" cl...

丁威

源码分析Elastic-Job前置篇:Spring自定义命名空间原理

在 Spring 中使用 Elastic-Job 的示例如下:

丁威

源码分析 RocketMQ DLedger(多副本) 之日志复制(传播)

本文紧接着 源码分析 RocketMQ DLedger(多副本) 之日志追加流程 ,继续 Leader 处理客户端 append 的请求流程中最至关重要的一环:日志复制。 DLedger 多副本的日志转发由 DLedgerEntryPusher 实现,接下来将对其进行详细介绍。

丁威

Mybatis一二级缓存实现原理与使用指南

Mybatis 与 Hibernate 一样,支持一二级缓存。一级缓存指的是 Session 级别的缓存,即在一个会话中多次执行同一条 SQL 语句并且参数相同,则后面的查询将不会发送到数据库,直接从 Session 缓存中获取。

丁威

源码分析Mybatis插件(Plugin)机制与实战

源码分析Mybatis系列目录:1、源码分析Mybatis MapperProxy初始化之Mapper对象的扫描与构建2、源码分析Mybatis MappedStatement的创建流程3、Mybatis执行SQL的4大基础组件详解4、源码解析MyBatis Sharding-Jdbc SQL语句执行流程详解 有了《Mybatis执行SQL的4大基础组件详解》 与 《源码解析MyBatis Sharding-Jdbc SQL语句执行流程详解》两篇文章的铺垫,本文将直奔主题:Mybatis插件机制。

xshell

thinkphp6.0 集成Alipay 手机和电脑端支付的方法

第一步   下载 Alipay 的PHP SDK :https://docs.open.alipay.com/54/103419/ 第二步   解压下载都到的压缩包:   解压后得到的文件内容如图    第三步、上传得到的目录中的 aop 文件夹到 thinkphp 6.

丁威

源码解析MyBatis Sharding-Jdbc SQL语句执行流程详解

本文以SQL执行序列图开始,以SQL执行流程图结束。详细介绍了Mybatis Sharding-jdbc SQL语句的执行流程,重点讲述了java.sql.Connection、java.sql.Statement对象的创建流程、SQL结果集的处理,并重点阐述了 Mybaits与Sharding-jdbc整合时分库分表(sharding-jdbc的路由机制的触发时机)。