Zhewen Cao

CICD

CICD

CI/CD 的概述 CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。 CI/CD 的核心概念是持续集成、持续交付和持续部署。它是作为一个面向开发和运营团队的解决方案,主要针对在集成新代码时所引发的问题(也称为:“集成地狱”)。 CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。 这些关联的事务通常被统称为 CI/CD 流水线(pipeline),由开发和运维团队以敏捷方式协同支持。 * 哦!原来是这个东东。其实平时开发需求都在用集成平台,但是却不知道它背后的概念。 CI 持续集成(Continuous Integration) 协同开发是目前主流的开发方式,也就是多位开发人员可以同时处理同一个应用的不同模块或者功能。 但是,如果企业计划在同一天,将所有开发分支代码集成在一起,最终可能会花费很多时间和进行很多重复劳动,费事费力。因为代码冲突是难以避免的。 如果开发人员本地的环境和线上不一致的话,那么这个问题就更加复杂了。 持续集成

By Zhewen Cao
商业智能报表(Business Intelligence)

商业智能报表(Business Intelligence)

企业BI报表,即商业智能(Business Intelligence)报表,是一种利用商业智能技术将企业中的数据转换为有意义的信息和可视化展示的报告。它通过将数据转化为直观、易于理解的图表和指标,帮助决策者快速捕捉关键业务信息,识别趋势和模式,从而做出更加精准和及时的决策。以下是关于企业BI报表的详细解析: 一、BI报表的定义与功能 定义: * BI报表是一种数据分析和可视化工具,通过商业智能技术,将企业内部的海量数据转化为有价值的信息和图表,支持企业的决策过程。 功能: 1. 数据可视化:将复杂的数据转化为直观的图表和图形,便于理解和分析。 2. 实时更新:提供实时或近乎实时的数据更新,确保决策者掌握最新信息。 3. 多维分析:支持从多个角度对数据进行深入分析,如钻取、切片、旋转等。 4. 自助式分析:让不懂编程的业务人员也能自行完成数据分析任务,提高分析效率。 5. 决策支持:为决策者提供数据驱动的决策支持,帮助制定更科学的战略和计划。 二、BI报表在行业中的应用 电商行业: * 通过BI报表,电商企业可以实时监控和分析销售数据,发

By Zhewen Cao

发布-订阅模式:构建高效、解耦的通信架构

引言 在现代软件系统中,组件之间的通信是构建复杂功能的关键。随着系统规模的扩大和复杂度的增加,传统的直接通信方式(如请求-响应模式)逐渐暴露出耦合度高、扩展性差等问题。为了解决这些问题,发布-订阅模式(Publish-Subscribe Pattern)应运而生,它提供了一种高效、解耦的通信方式,广泛应用于消息队列、事件驱动架构、物联网(IoT)等领域。 发布-订阅模式概述 发布-订阅模式是一种消息传递模式,它允许消息的发送者(发布者)和接收者(订阅者)之间不直接进行通信,而是通过一个共同的通信渠道(消息代理或事件总线)来交换消息。发布者将消息发布到通道上,而不关心哪些订阅者会接收到这些消息;订阅者则从通道上订阅自己感兴趣的消息,并处理这些消息,而不需要知道这些消息是由谁发布的。 核心组件 * 发布者(Publisher):负责将消息发布到消息代理上。发布者不需要知道有哪些订阅者会接收这些消息。 * 订阅者(Subscriber):从消息代理上订阅自己感兴趣的消息,并处理这些消息。订阅者不需要知道这些消息是由谁发布的。 * 消息代理(Message Bro

By Zhewen Cao
RAFT协议的term

RAFT协议的term

Follower的任期编号与同步Master的数据之间有一定的间接关系,但这种关系并非直接的数据同步过程,而是涉及到选举和日志复制的一致性保证。 任期编号的作用 在Raft协议中,任期编号(Term)是一个关键概念,用于标识集群中的一次选举周期。每个节点都会维护一个当前的任期编号,并在进行选举、日志复制等操作时携带该编号。任期编号的主要作用是确保集群中的操作是有序的,避免因为网络延迟或分区等原因导致的操作冲突。 Follower的任期编号与选举 Follower节点的任期编号会在以下情况下发生变化: * 当Follower在一段时间内没有收到Leader的心跳消息时,它会认为Leader可能已经宕机,此时Follower会增加自己的任期编号,并转变为Candidate状态,发起选举。 * 如果Follower收到了来自其他节点(如新当选的Leader)的更高任期编号的心跳消息,它会更新自己的任期编号,并承认该节点的Leader地位。 任期编号与数据同步 虽然任期编号本身并不直接参与数据的同步过程,但它确保了数据同步的正确性和一致性。在Raft协议中

By Zhewen Cao
RocketMQ DLedger模式

RocketMQ DLedger模式

引入DLedger模式在RocketMQ中是一个重要的演进,它主要解决了Broker组内自动故障转移的问题,并提升了系统的高可用性和数据一致性。以下是对引入DLedger模式的详细解释: 一、DLedger模式的定义 DLedger是OpenMessaging中一个基于Raft协议的CommitLog存储库实现。从RocketMQ 4.5.0版本开始,RocketMQ引入DLedger模式,利用Raft算法来管理Broker的日志复制和选举过程,从而实现了Broker组内的自动故障转移。 二、引入DLedger模式的目的 在RocketMQ 4.5版本之前,RocketMQ主要采用Master/Slave部署模式,这种模式虽然提供了一定的高可用性,但在故障转移方面存在缺陷。例如,当Master节点宕机时,需要人工手动进行重启或切换,无法自动将一个Slave节点转换为主节点。DLedger模式的引入正是为了解决这一问题,通过自动选举新的Leader节点,确保Broker集群的高可用性。 三、DLedger模式的核心优势 1. 自动故障转移:当Master节点宕机时,D

By Zhewen Cao