自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

庄小焱

博主在微服务、虚拟化、系统架构、大数据、机器学习领域不断耕耘

  • 博客(857)
  • 收藏
  • 关注

原创 庄小焱——个人基本介绍

我是庄小焱。任职于世界100强软件研发中心,PMP项目管理专家、系统架构设计师(高级)、CSDN博文专家。 博主在系统架构、容器化技术、大数据、机器学习领域不断学习,同时我将在博客中持续不断分享自己的学习知识和相关技术, 欢迎大家和我交流学习,欢迎大家关注我的博客。https://blog.csdn.net/weixin_41605937/category_11405346.html?spm=1001.2014.3001.5482https://blog.csdn.net/weixin_41605937/c

2020-07-02 11:44:35 1623 2

原创 JAVA单元测试——JMockit教程

JMockit是一款Java类/接口/对象的Mock工具,目前广泛应用于Java应用程序的单元测试中。首先,不会测试的不是好开发,不会Mock的不是好测试。因而,不会Mock的不是好开发。当然,Java Mock工具很多,比如easyMock,Mockito等等。为什么要选择JMockit呢?其实也没有啥特别原因,Mock工具的原理都差不多,就看Mock工具封装的API是否易用了。JMockit的API易用,丰富! 写出来的Mock程序代码完全面向对象。

2024-03-23 23:55:47 743

原创 RocketMq——Consume相关源码

RocketMQ只要有CommitLog文件就可以正常运行了,那为何还要维护ConsumeQueue文件呢?ConsumeQueue是消费队列,引入它的目的是为了提高消费者的消费速度。毕竟RocketMQ是基于Topic主题订阅模式的,消费者往往只关心自己订阅的消息,如果每次消费都从CommitLog文件中检索数据,无疑性能是非常差的。有了ConsumeQueue,消费者就可以根据消息在CommitLog文件中的偏移量快速定位到消息进行消费了。

2024-03-03 08:50:11 857

原创 RocketMq——NameServer源码分析

RocketMQ架构体系里有四个角色:NameServer、Broker、Producer、Consumer。其中,Broker统称为服务端,Producer属于消息生产者和Consumer属于消息消费者,他们统称为客户端。客户端要如何与服务端通信?拿消息发送举例,一个消息可以发送到哪些Broker上?有新的Broker上线/旧的Broker下线,客户端如何感知到?在RocketMQ中就是NameServer来实现的。。

2024-02-18 23:50:52 478

原创 支付交易——清结算

清分是根据交易的的终态结果,对商户、用户和支付通道进行手续费计算,账单和账款资金的核对,结算是根据清分的数据,用与商户、用户、支付通道等约定的结算方式,借宿那周期进行资金的调拨,清分与结算合称为结算。

2024-02-14 19:39:07 400

原创 支付交易——BIN服务

对于这些不同的卡,银行和支付平台是怎么通过用户输入的卡号获取对应银行卡的开户行、卡级别、随卡福利等信息的呢? 答案是通过BIN ( Bank Identification Nunber.发卡行标识码〕服务实现BIN服务是一种通过对BIN进行管理并提供外部查询用于识别和判断卡所属银行、卡组织、卡级别的支持服务。

2024-02-14 19:33:27 945

原创 支付交易——重试服务

支付的核心指标之一是支付成功率。提高支付成功率的方法 .有很多,比如提升通道质量、进行系统监控并针对问题通道进行自动熔断、进行队列处理控制并发量、事中路由保证交易可用、根据日切时间进行自动对账时增加处理时间、提升通道限额等,但是在实践中会发现,用了这么多方法提升支付成功率,依然有一些问题会造成交易失败。

2024-02-14 19:01:19 269

原创 支付交易——路由系统

老王有家杂货店,承蒙街坊照顾,生意一直非常红火,慢慢地店面从一家,到两家,到三家,到最后基本上哪里有商业中心,哪里就有老王的店。店面也从当初只有几十平方米的杂货店变成几千平方米的老王连锁超巿。店面大了,大家都喜欢来老王的店里买东西,老王要管理的事情越来越多,要打交道的人越来越多,遇到的问题也越来越多。还有很多诸如此类的问题。“顾客就是上帝。”对于这些问题,老王有着朴素的想法,就是希望服务好顾客,让顾客再满意一点,自己赚得再多一点。发现问题,就要解决问题,我们看看老王是怎么解决这些问题的。老王定了3条策略,要

2024-02-14 18:58:44 329

原创 支付交易——跨境交易

一、跨境支付概览摘要老王兢兢业业经营生意多年,一步步从小杂货店做到现在,成立大型贸易公司。在做大做强的过程中,老王觉得国内市场已经饱和,竞争处处是红海。老王留意海外很多年了,决定走出去,转向海外:将国外的商品引进来,让国内的商品走出去。经过几年耕耘,老王的海外贸易也打出了名堂,越来越多的老外都来跟他做生意。老王和朋友一起喝茶,摆起了“龙门阵”,分享起他的海外生意经:为什么做,做什么,遇到了哪些问题,都是怎么解决的。。

2024-02-14 01:04:20 3070

原创 支付交易——支付通道

老王有个杂货店,起初只是经营食品、饮料、玩具,做的都是些大众品牌。老王原本以为自己的商品挺全的,但经营一段时间后发现,他的商品并不能满足所有客户的需求。下面是老王的小本本上记录的几个客户问题以及老王自己新的问题和新的需求。,老王有很多企业客户,不管是老王和客户之间,还是老王和供应商之间,一般都是后付月结。以前到了时间点,老王就得挨个给供应商打款,但现在商品种类越来越多,供应商越来越多,老王希望能够给每个供应商发张卡,他往卡里充钱,到期了供应商自动扣钱就行,给自己减少点负担。

2024-02-08 20:08:46 291

原创 支付交易——支付原理

交易( Transaction)指引起债权债务关系的各类经济活动,包括商品市场、服务市场、劳务巿场和金融市场的各类交易。交易是支付的前提和基础。在前面的案例中,交易是第一步,即老王要换老李的鸡,老李要换老王的羊。没有这个前提,就不会有后续的清分和结算。我们的生活中有很多交易的例子、比如线上购物、线下打车、转账汇款、聚餐AA制付款等。由于交易十分重要,为了让商家支持自家的交易方式,很多支付服务商或机构会为其提供补贴或建设应用。比如在线下,有支付服务商或机构为了拓展商户,不仅补贴商家手续费,还奖励商家安装费

2024-02-04 23:29:18 841

原创 领域驱动设计——DDD领域驱动设计实战

通过实战,让大家更加的理解和应用DDD在自己的项目中,实战如何用 DDD 设计思想构建企业级可复用的中台业务模型,了解事件风暴以及用事件风暴构建领域模型的过程。带你了解如何用 DDD 设计微服务代码模型,如何从领域模型完成微服务设计,建立领域模型与微服务代码模型的映射关系,如何完成微服务的架构演进等。

2024-01-15 23:12:24 615

原创 领域驱动设计——DDD领域驱动设计进阶

进阶篇主要讲解领域事件、DDD 分层架构、几种常见的微服务架构模型以及中台设计思想等内容。如何通过领域事件实现微服务解耦?、怎样进行微服务分层设计?、如何实现层与层之间的服务协作?、通过几种微服务架构模型的对比分析,让你了解领域模型和微服务分层的作用和价值。中台设计的核心思想,和你探讨如何实现前中后台的协同和融合?如何利用 DDD 进行中台设计?

2024-01-15 23:03:00 1076

原创 二叉树问题——平衡二叉树问题

本博文主要介绍平衡二叉树问题包括,二叉树的高度差,是否为平衡二叉树,有序链表转二叉搜索树,将二叉搜索树变平衡等。

2023-11-01 08:59:56 303

原创 二叉树问题——二叉树的路径问题

二叉树的路径问题

2023-11-01 08:43:33 277

原创 二叉树问题——前中后遍历数组构建二叉树

利用二叉树的前序,中序,后序,有序数组来构建相关二叉树的问题。

2023-11-01 08:30:40 259

原创 二叉树问题——前/中/后/层遍历问题(递归与栈)

博文主要介绍二叉树的前/中/后/层遍历(递归与栈)方法

2023-10-30 07:36:29 581

原创 二叉树问题——二叉树相关属性问题

二叉树相关属性问题包括了深度,高度,节点个数,已经最大路径长度等。

2023-10-29 23:16:27 172

原创 二叉树问题——二叉树公共祖先问题

本博文主要介绍二叉树公共祖先问题。包括最近公共祖先,二叉搜索树的最近公共祖先等。

2023-10-27 14:41:30 311

原创 二叉树问题——二叉搜索树相关问题

二叉搜索树的相关问题

2023-10-27 09:18:18 143

原创 面试经验——面试项目准备工作

本博文主要是分享个人在面试中对于项目思考,希望帮助大家能够面试中能够很好的介绍和分享自己的项目。在面试官心中留下一个好印象,希望你能拿到自己满意的offer。

2023-10-24 10:36:37 378

原创 结构型设计模式——外观模式

本文主要分析设计模式 - 结构型 - 外观(Facade),它提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用。

2023-10-09 20:36:30 547

原创 行为型设计模式——责任链模式

责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。

2023-09-28 09:48:37 1538

原创 结构型设计模式——组合模式

组合模式(composite pattern): 允许你将对象组合成树形结构来表现"整体/部分"层次结构. 组合能让客户以一致的方式处理个别对象以及对象组合。

2023-09-27 08:34:50 594

原创 结构型设计模式——桥接模式

桥接模式(Bridge pattern): 使用桥接模式通过将实现和抽象放在两个不同的类层次中而使它们可以独立改变。

2023-09-27 08:29:49 561

原创 行为型设计模式——中介者模式

本文主要分析设计模式中介者模式(Mediator pattern) : 使用中介者模式来集中相关对象之间复杂的沟通和控制方式。

2023-09-27 08:22:46 422

原创 创建型设计模式——工厂模式

本博文主要介绍软件设计模式中工厂模式,其中工厂设计模式的扩展为简单工厂(Simple Factory)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)三种。

2023-09-26 14:44:22 390

原创 分布式系统技术——分布式系统知识脑图

本博文主要介绍分布式系统知识脑图,帮助大家更好的快速的了解分布式系统相关知识。同时也是为大家在工作中应对分布式系统设计提供相关参考。

2023-09-21 09:32:50 194

原创 系统设计——JAVA开发规范设计

本博文将对阿里巴巴java开发手册进行详细的解释和说明,帮助的大家更好的理解java开发规范。更好实践在自己的项目中,让自己的编码养成一个好习惯,努力成为一名优秀的程序员。

2023-09-20 08:47:45 514

原创 JDK源码——ConcurrentHashMap源码

本博文主要介绍ConcurrentHashMap的基本原理,重点分析ConcurrentHashMap如何保证线程安全以及扩容原理。

2023-09-18 18:39:39 200

原创 SpringBoot——SpringBoot访问外部接口

在SpringBoot接口开发中,存在着本模块的代码需要访问外面模块接口或外部url链接的需求, 比如调用外部的地图API或者天气API。那么有哪些方式可以调用外部接口呢?本博文将介绍SpringBoot常见的访问外部接口方式。帮助大家更好的使用SpringBoot访问外部接口。

2023-09-17 23:06:44 1171 2

原创 Spring——Spring IOC原理

IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;有了IoC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是 松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。其实IoC对编程带来的最大改变不是从代码上,而是从思想上,发生了“主从换位”的变化。

2023-09-05 09:56:27 371

原创 ShardingJDBC——基于JPA的读写分离实战

本博文主要介绍基于JPA的读写分离实战,帮助大家更好的学会使用读写分离。透明化读写分离所带来的影响,让使用方尽量像使用一个数据库一样使用主从数据库集群,是ShardingSphere读写分离模块的主要设计目标。

2023-09-01 21:05:27 430

原创 ShardingJDBC——分库分表实践

本文主要介绍分表分库,以及SpringBoot集成基于ShardingJDBC的单库分表实践。

2023-09-01 21:01:53 281

原创 ShardingSphere——压测实战

Apache ShardingSphere 关注于全链路压测场景下,数据库层面的解决方案。 将压测数据自动路由至用户指定的数据库,是 Apache ShardingSphere 影子库模块的主要设计目标。

2023-09-01 20:12:24 306

原创 ShardingSphere——弹性伸缩原理

支持自定义分片算法,减少数据伸缩及迁移时的业务影响,提供一站式的通用弹性伸缩解决方案,是 Apache ShardingSphere 弹性伸缩的主要设计目标。对于使用单数据库运行的系统来说,如何安全简单地将数据迁移至水平分片的数据库上,一直以来都是一个迫切的需求; 对于已经使用了 Apache ShardingSphere 的用户来说,随着业务规模的快速变化,也可能需要对现有的分片集群进行弹性扩容或缩容。

2023-09-01 20:08:48 327

原创 ShardingSphere——柔性事务SEATA原理

Apache ShardingSphere集成了 SEATA 作为柔性事务的使用方案,本文主要介绍其实现ShardingSphere中柔性事务SEATA原理原理。帮助你更好的理解ShardingSphere原理。同时帮助大家更好的使用柔性事务SEATA原理。

2023-09-01 20:05:05 539

原创 Mybatis——Mybatis设计模式分析

本博文主要介绍Mybatis中应用的设计模式,帮助大家在学习Mybatis的同时更好的理解的设计模式在Mybatis中应用。帮助大家更好的阅读Mybatis的源码。

2023-08-30 22:43:36 202

原创 MyBatis——MyBatis插件原理

本博文主要介绍MyBatis插件机原理,帮助大家更好的理解和学习MyBatis。

2023-08-30 08:53:30 1148

原创 MyBatis——MyBatis数据源与连接池

博文主要介绍MyBatis数据源与连接池,更好的理解MyBatis数据源与连接池。

2023-08-30 08:51:42 928

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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