庄小焱
码龄5年
  • 575,870
    被访问
  • 799
    原创
  • 1,864
    排名
  • 1,319
    粉丝
关注
提问 私信

个人简介:我是庄小焱。任职于世界100强的软件研发中心,高级软件开发工程师,CSDN博文专家。 本人在系统架构、容器化技术、大数据、机器学习领域不断耕耘,我将在博客中持续不断分享自己的学习知识和相关技术,欢迎大家和我交流学习,欢迎大家关注我的博客。 个人社区账号:gitee:https://gitee.com/xjl2462612540 github: https://github.com/2462612540

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2018-01-08
博客简介:

庄小焱

博客描述:
一个在技术路上孤独的前行者
查看详细资料
  • 7
    领奖
    总分 3,689 当月 73
个人成就
  • DELL EMC高级软件工程师
  • 博客专家认证
  • 获得394次点赞
  • 内容获得192次评论
  • 获得2,215次收藏
创作历程
  • 172篇
    2022年
  • 439篇
    2021年
  • 181篇
    2020年
  • 4篇
    2019年
  • 3篇
    2018年
成就勋章
TA的专栏
  • 算法训练营
    20篇
  • 操作系统
    17篇
  • 计算机网络
    26篇
  • JDK源码分析
    38篇
  • 计算机语言
    34篇
  • 软件设计模式
    12篇
  • JUC并发编程
    18篇
  • 数据库
    60篇
  • 数据库中间件
    5篇
  • Spring框架
    29篇
  • JVM虚拟机
    22篇
  • Netty
    24篇
  • RPC框架
    23篇
  • 注册中心
    20篇
  • Nginx
    2篇
  • KafkaMQ
    8篇
  • RabbitMQ
    15篇
  • Redis
    30篇
  • Mybatis
    9篇
  • Kubernetes
    33篇
  • Docker
    24篇
  • 软件测试
    5篇
  • Git
    14篇
  • DevOps
    11篇
  • 云计算
    1篇
  • 大数据技术
    29篇
  • 系统架构设计
    34篇
  • 计算机AI
    19篇
  • 工作经历
    23篇
  • 资源共享仓库
    3篇
  • 兴趣爱好
    2篇
  • 项目管理工具
    4篇
  • 常见业务error示例
    3篇
  • 系统开发环境设置
    13篇
  • 工作项目实战
    42篇
兴趣领域 设置
  • 大数据
    hadoophivestormsparkflink
  • 数据库管理
    数据仓库数据库架构
  • 人工智能
    机器学习tensorflow图像处理
  • 运维
    网络
  • 服务器
    linuxcentos
  • 最近
  • 文章
  • 资源
  • 问答
  • 关注/订阅/互动
搜TA的内容
搜索 取消

项目管理工具——项目开发者工具

云效云端开发平台DevStudio是面向云原生的WebIDE产品,只需一个浏览器即可获得与本地IDE一致的开发体验。通过预置开发环境,使用智能编码能力,即可快速地编辑、调试、运行、部署云端代码。还给开发者提供了不少免费的开发者工具。本博文就详细的介绍阿里云上8款免费的开发者工具,帮助大家更好的学习和工作。但是个人觉得这个属于的先免费后面在收割的方案。不过我们还是有必要去了解一下相关的好的产品。......
原创
发布博客 2022.07.22 ·
83 阅读 ·
1 点赞 ·
0 评论

项目管理工具——阿里云Projex介绍与实战

云效项目协作Projex是新一代企业级项目协作工具,提供项目管理、需求管理、缺陷管理、任务管理、迭代规划等丰富的项目管理功能及效能数据统计,支持单项目管理、跨项目协作等丰富的协作场景,以及Scrum、LeSS、ALPD等不同复杂度的研发模式,助力企业实现组织敏捷。...
原创
发布博客 2022.07.22 ·
58 阅读 ·
0 点赞 ·
0 评论

计算机网络——CDN加速技术原理

与其他CDN服务商相比,CDN的主要优势包括稳定快速、性价比高、简单易用、高效智能。比较多的用户会问到稳定快速这个优点,一般来说,的CDN特点是分担源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速。......
原创
发布博客 2022.07.13 ·
222 阅读 ·
1 点赞 ·
0 评论

系统架构设计——秒杀系统架构设计

秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注。博文主要介绍的有关于秒杀系统的设计和底层实现原理。通过对需求分析,我们提炼出秒杀活动的三大子流程,即:有了这个整体把握,我们再针对每一个子流程,分析该场景下需要编排哪些产品功能。创建秒杀活动:做的事情很简单,需要配置好
原创
发布博客 2022.07.13 ·
477 阅读 ·
3 点赞 ·
3 评论

Spring——Alibaba-pandora boot实战

阿里的Pandora Boot的核心是Pandora,因此在介绍Pandora Boot之前需要先介绍Pandora。在阿里集体内部,几乎所有的应用都用到了各式各样的中间件,比如HSF、TDDL、Diamond等等。本身中间件之间可能就有版本依赖的问题,比如你的应用HSF和Diamond分别依赖了同名jar包的不同版本,maven只会引入其中一个版本。同样的中间件和应用之间也存在同样的Jar包依赖的问题,出于要解决这些依赖冲突的问题,阿里就开发了Pandora。简单的来说就是一个类隔离容器,对外以taoba
原创
发布博客 2022.07.10 ·
218 阅读 ·
1 点赞 ·
0 评论

系统架构设计——互联网金融架构设计

根据第三方机构预统计,自2016年-2019年,我国零售信贷规模维持20%以上的高复合增长率,2017年中国零售信贷规模达到27万亿,到2019年,总规模超过37万亿。近年来互联网金融蓬勃发展,在借贷、保险、股权等领域涌现出一大批互联网与金融场景相结合的创新产品。同时作为互联网金融的子领域消费金融领域,在国家消费升级战略下,各大平台推出了如花呗、借呗,微粒贷等众多服务。互联网金融的架构有别于传统金融系统,互联网金融产品依托于互联网的众多技术特性,主要包括三大主要方面:在互联网浪潮的背景下,传统银行、金融行业
原创
发布博客 2022.06.25 ·
1673 阅读 ·
5 点赞 ·
0 评论

微服务系统设计(17)——服务链路跟踪设计

微服务体系下,一个请求会调用多个服务,整个请求就会形成一个调用链,普通的日志输出是无法将整个体系串联起来,调用过程中某一个节点出现异常,定位排查难度系数增高,这种情况下就需要一个组件,来分析系统性能、展现调用链路,以便出现故障时快速定位并解决问题,由此 APM 工具闪亮登场。全称是Application Performance Management,关注于系统内部执行、系统间调用的性能瓶颈分析,与传统监控软件(比如 Zabbix)只提供一些零散的监控点和指标相比,即便告警也不知道问题是出在哪里。抛开商业工具
原创
发布博客 2022.06.24 ·
95 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(16)——微服务监控与系统资源监控设计

各个微服务模块基本已经就位,但系统运行的情况是怎么样,有没有办法查看的到呢?本篇就带你一起看看如何查看系统运行时的一些信息。帮助开发工程师排序问题,同时也是运维工程师提供数据的监控和服务的保护。本博文将介绍的微服务的监控功能设计。细心的小伙伴发现了,每个微服务的 pom 文件配置中都有如下的 jar 引用,这是 Spring Boot 提供的一系列额外特性组件以帮助你监控管理运行中的系统应用。除了需要引入对应 jar 包外,还需要指定的配置。由于默认只开放了 health、info 两个 API,其它
原创
发布博客 2022.06.24 ·
115 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(15)——分布式锁服务设计

对于分布式项目来说分布式锁是一个中高级工程师的必备技能。在停车系统中的会员办理月卡或签到累积的积分,可以在指定时间段内兑换商场优惠券,由于数量有限,时间有限,兑换操作相当集中,如果按正常流程处理的话,肯定会出现超兑的情况。比如只有 5000 张券,结果兑换出 8000 张,这对商场来说是一笔经济损失。为防止超兑,自然做法是按总量一个接一个兑换,至到兑换完,但多并发的情况下如何保证还一个一个兑换呢?自然而然就会想到锁上面来。提及锁,你脑海是不是出现了一堆关于锁的场景:死锁、互斥锁、乐观锁、悲观锁等等,本节介绍
原创
发布博客 2022.06.24 ·
107 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(13)——统一鉴权服务设计

商场停车场景中,除了极少数功能不需要用户登陆外(如可用车位数),其余都是需要用户在会话状态下才能正常使用的功能。要在网关层实现统一的认证操作,本博文介绍网关层增加一个公共鉴权功能,来实现简单的认证,采用轻量级解决方案 JWT 的方式来完成。JSON Web Token(缩写 JWT)是比较流行的轻量级跨域认证解决方案,Tomcat 的 Session 方式不太适应分布式环境中,多实例多应用的场景。JWT 按一定规则生成并解析,无须存储,仅这一点要完爆 Session 的存储方式,更何况 Session 在多
原创
发布博客 2022.06.24 ·
113 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(14)——分布式事务服务设计

系统中的某些涉及多服务调用过程中多个数据库写入操作,可能涉及到数据的读写和多服务的数据分读写等……,通常spring中通过 @Transactional 注解进行事务控制,服务内尚未保证数据的完整性,跨服务后数据的完整性无法得到保护。利用分布式事务可以解决这类问题,本博文使用 Seata 组件来进行来确保跨服务场景下的数据完整性问题。先拿一个关键场景来铺垫下主题。车辆交费离场后,主要业务逻辑如下:涉及到三个服务间协作,数据分别写入三个存储库,是一个典型的分布式事务数据一致性问题。来看下正常场景的代码逻辑:
原创
发布博客 2022.06.24 ·
75 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(12)——API 网关服务设计

由于服务粒度的不同以及数据包装因端而异的差异需求,由于的系统采用的是的前后端分离的结构。调用端可以直接调用 BFF 层,由 BFF 层再将请求分发至不同微服务,进行数据组装。由于很多子服务都需要用户验证、权限验证、流量控制等,真的要在每个子服务中重复编写用户验证的逻辑吗?在大型微服务设计时候都在网关层统一处理这些共性需求。如果没有网关的情况下,服务调用面临的几个直接问题:现有系统的调用结构如下图所示:直接由前端发起调用,服务间的调用可以 由服务注册中心调配,但前端调用起来就没这么简单了,特别是后端服务以多实
原创
发布博客 2022.06.24 ·
121 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(11)——消息缓存服务设计

缓存与队列,是应对互联网高并发高负载环境的常见策略,缓存极大地将数据读写,队列有效地将压力进行削峰平谷,降低系统的负载。实现队列较好的解决方案就是利用消息中间件,但消息中间件绝不止队列这一个特性,还可以应用于异步解耦、消息驱动开发等功能,本博文介绍微服务下的消息驱动开发。消息中间件产品不可谓不多,常见的有 Apache ActiveMQ、RabbitMQ、ZeroMQ、Kafka、Apache RocketMQ 等等,还有很多,具体如何选型,网络中存在大量的文章介绍(这里有一篇官方的文档,与 ActiveM
原创
发布博客 2022.06.24 ·
76 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(10)——分布式定时服务设计

用户通过绑定手机号的注册为会员,并可以补充完个人信息,比如姓名、生日等信息,拿到用户的生日信息之后,就可以通过会员生日信息进行营销,此处就涉及到定时任务执行营销信息推送的问题。本篇就带你走入微服务下的定时任务的构建问题。常见的定时任务的解决方案有以下几种:右半部分基于 Java 或 Spring 框架即可支持定时任务的开发运行,左侧部分需要引入第三方框架支持。针对不同方案,作个简单介绍:引入第三方分布式框架会增加项目复杂度,Timer、TimerTask 比较简单无法符合复杂的分布式定时任务,本次选择基于
原创
发布博客 2022.06.24 ·
103 阅读 ·
1 点赞 ·
0 评论

微服务系统设计(09)——分布式缓存服务设计

前面都是在会员与积分模块的业务功能,引领大家尝试了服务维护、配置中心、断路器、服务调用等常见的功能点。本博文节开始进入核心业务模块——停车计费,有两块数据曝光率特别高:进场前的可用车位数和计费规则,几乎每辆车都进出场都用到,这部分俗称为热数据:经常会用到。读关系库很明显不是最优解,引入缓存才是王道。这里仅讨论软件服务端的缓存,不涉及硬件部分。缓存作为互联网分布式开发两大杀器之一(另一个是消息队列),应用场景相当广泛,遇到高并发、高性能的案例,几乎都能看到缓存的身影。从应用与缓存的结合角度来区分可以分为本地缓
原创
发布博客 2022.06.24 ·
39 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(08)——服务熔断和降级设计

OpenFeign 完成了微服务间的调用,并且在多实例集群的情况下,通过调整负载策略很好应对并发调用。网络产品开发时,网络有时可能是不可用的,服务亦有可能是不可用的,当调用服务响应慢或不可用时,大量的请求积压,会成为压倒系统骆驼的最后一根稻草。它是分布式系统提供的一个低时延容错机制的基础组件,提供限流、服务降级、系统熔断保护、快速失败等多个维度来保障微服务的稳定性。Hystrix 也是 Netflix 套件的一部分。遗憾的是 1.5.18 版本之后进入了维护模式,官方提供了替代方案:resilience4j
原创
发布博客 2022.06.24 ·
92 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(07)——微服务调用设计

已经引入 Nacos 基础组件,完成了服务注册与发现机制,可以将所有服务统一的管理配置起来,方便服务间调用。本篇将结合需求点,进行服务间调用,完成功能开发。服务间调用常见的两种方式:RPC 与 HTTP,RPC 全称 Remote Produce Call 远程过程调用,速度快,效率高,早期的 WebService 接口,现在热门的 Dubbo、gRPC 、Thrift、Motan 等,都是 RPC 的典型代表,有兴趣的小伙伴可以查找相关的资料,深入了解下。HTTP 协议(HyperText Transfe
原创
发布博客 2022.06.24 ·
80 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(06)——服务注册与发现和配置设计

大型系统中的都是众多服务相互调用来完成某一项功能,这其中就会涉及到是服务的相互调用和发现功能。本博文主要介绍的服务注册与发现设计。在分析业务需求时,其中有个简单的功能点:会员可以开通月卡,开通月卡的同时,需要增加相应的积分。开通月卡功能在会员服务模块维护,但增加积分功能在积分服务模块维护,这就涉及到两个模块间的服务调用问题。单实例情况:可以采用点对点的 HTTP 直接调用,采用 IP + Port + 接口的形式进行。也可以对外暴露 WebService 服务供外部模块调用,但 WebService 的形式
原创
发布博客 2022.06.24 ·
77 阅读 ·
0 点赞 ·
0 评论

微服务系统设计(05)——Spring微服务技术选型设计

微服务设计中的两个重要的项目:Spring Cloud 及Spring Cloud Alibaba,我们需要从理论角度作个整体性掌握,后续进入开发实战作好铺垫工作。为后续的微服务工具的选择和开发选择好的相关的准备。本博文将详细的介绍的Spring Cloud 及Spring Cloud Alibaba的微服务设计。它是由很多个组件共同组成的一套微服务技术体系解决方案,目前最新版本是 Hoxton,它的版本并不是我们常见的大版本、小版本的数字形式,Spring Cloud 的版本规划是按伦敦地铁站的名称先后顺
原创
发布博客 2022.06.24 ·
110 阅读 ·
1 点赞 ·
0 评论

微服务系统设计(04)——接口文档管理设计

整个系统是多个应用一起构建,由于服务不会单独存在,服务开发团队必然与其他服务团队进行服务调用,暴露出对外接口势在必行。早期做开发的时候,大家习惯于以 word 或 excel 的形式,但弊端显而易见,一旦接口发生变动,文档需要同步更新,遗憾的是很多接口已经更新,但文档都没有跟上,相信你也有过痛苦的经历。本文带领你认识几款接口文档管理工具,并实现本案例实践中用到的在线接口文档管理。我们迫切需要一个接口文档工具,能实时与系统接口保持同步,无须额外付出成本(资金成本、时间成本)最好。这里介绍几个开源的 API 工
原创
发布博客 2022.06.24 ·
581 阅读 ·
5 点赞 ·
3 评论
加载更多