自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 第一次正经的开源:x-compute一个基于AviatorScript框架设计的开源业务计算引擎

x-compute是基于框架设计的开源业务计算引擎,继承AviatorScript自身拥有的特性,主要扩展封装了一些函数计算及数据类型校验处理,同时提供一些业务集成能力,包括引用计算、临时计算、计算复制等,帮助快速搭建计算引擎业务。

2023-12-05 15:36:15 87

原创 SkyWalking-9.4.0版本docker部署流程

首先原项目中使用的SkyWalking的版本是8.9.0,而自9.x版本之后SkyWalking的功能及UI都发生了较大的变化,所以决定升级到最新的9.4.0版本,同时本文描述尽量简单。

2023-06-15 14:10:06 2740

原创 保姆级文档-接口平台Yapi及接口文档生成插件部署使用

文章目录前言Yapi部署-dockerMongoDB部署Yapi部署接口文档生成插件前言先来描述下背景:由于新公司业务属于自研产品开发,但是发现各产品业务线对于接口文档暂时还是通过集成Swagger来维护,准确来说是knife4j(Swagger的增强解决方案)。但是对于产品型开发而言,会产生一些如项目代码侵入性高、版本兼容问题、文档完全规范化较难、团队无法在线协同等的问题。个人建议Swagger更适合用于一些对接口规范及维护要求较低的行业项目类软件开发,相对于开发而言,接口的文档生成及调试更加方便快捷

2022-03-04 13:48:35 2303 2

原创 深入MySQL:InnoDB存储引擎-事务[#4]

文章目录前言事务ACID特性实现原理持久性原子性隔离性读一致性问题InnoDB的隔离级别实现方案LBCCMVCC前言之前我们已经详细介绍了InnoDB存储引擎的基础架构原理,相信对其已经有了较深的了解,但是那些只是InnoDB的基础能力,我们在使用中往往更为关注可能就是它所支持的一些重要特性,那这里我们先来看看其中特性之一:事务。首先事务这个特性并不是InnoDB引擎所特有的,还有其他存储引擎同样也支持,像NDB等;甚至你可以自己实现一个支持事务安全的存储引擎,但是在深入了解InnoDB中事务是如何实

2022-02-24 09:38:02 630

原创 计算机网络-体系结构[#3]

文章目录前言体系结构OSI七层体系结构TCP/IP四层体系结构常见的五层体系结构传输过程网络协议前言前面两篇我们分别介绍了计算机网络中的网络类别和基础的性能指标,基本上算是对我们平时生活中的计算机网络的概念描述的一种完善,接下来我们将会正式详细地去了解有关计算机网络的原理。但是问题来了,我们该从哪里去入手呢?其实很简单,就像生活中我们到了景区一样,要想知道从那里开始游玩以及终点,我们必须先看下整个景区的分布总览,也就是导航地图;放到技术学习上也是一样,在之前的Spring源码解析中也提到过,要先得看

2021-12-28 17:08:42 1267

原创 计算机网络-性能指标[#2]

文章目录前言性能指标速率带宽吞吐量时间延时往返时间时延带宽积利用率前言前一篇文章我从平时生活方面入手介绍了什么是计算机网络,以及它的一些类别的划分,让我们对计算机的网络有了大概的雏形认识;我们知道,在实际生活中,计算机网络基本都是已经建设完善好的,大部分情况下十分稳定正常,通常直接连接使用即可。那回想一下,在使用网络的时候我们通常最关心的是什么?相信你也才能猜到,那就是网速,我们经常会抱怨网络太慢了,怎么看视频、下载、上传这么慢,才几十、几百KB/S,但其实“网速”是一个很通俗的概念性囊括的词,具体

2021-12-24 13:56:23 928

原创 计算机网络-网络类别[#1]

文章目录前言基础概念网络类别作用范围使用者分类拓扑结构交换技术前言作为一名CRUD的业务工程师,在实际开发中,我们接触的最多最近却最容易不受重视的技术可能就是计算机网络了,通常我们深陷于业务需求->开发的重复劳动中,用吴晟大佬(Skywalking的项目VP)的话来说就是属于劳动密集型工作,从而对分布式、微服务、各种中间件框架技术十分向往,然而了解之后,你会发现它们所涉及的技术中不可缺少的都有网络通信模块,不管是RPC还是HTTP通信,都是基于TCP/IP协议,可见其非常重要。所以这两个星期内,

2021-12-23 17:17:51 1588

原创 走进SkyWalking-插件概念[#2]

文章目录前言基础概念ContextManagerSpanContext结尾前言在解析SkyWalking的源码之前,我们先来了解下SkyWalking中的插件机制,那它的作用是什么?为什么先要去了解它呢?我们知道SkyWalking是用来监控应用程序的系统,那它必然需要收集我们应用程序中需要监控的相关数据,那问题就来了,它怎么知道我们系统中需要收集哪些数据?所以插架的作用就在于此,由于对监控的应用程序的不确定性,进而提供了可扩展的插件机制来满足实际的业务监控需求。为什么先要去了解它?因为对监控数据的来

2021-11-24 17:11:38 467

原创 聊聊Jdk中你没听过的关键词-synthetic

文章目录前言什么是synthetic?作用和原理产生的问题什么是NBAC?前言为什么要讲讲synthetic和NBAC呢?其实在这之前,对Jdk中这两种机制并不了解,甚至没有听过,主要原因还是因为在阅读SkyWalking中Agent源码过程中,有这么一行,AgentBuilder agentBuilder = new AgentBuilder.Default(byteBuddy).ignore( nameStartsWith("net.bytebuddy.")

2021-11-08 16:33:37 327

原创 走进SkyWalking-基础概念及使用[#1]

文章目录前言基础架构和概念部署使用准备部署单机部署集群部署总结前言由于之前项目的业务需求而使用了微服务的架构体系,而微服务架构中对于服务的监控治理能力甚为重要,所以在分析了市面上常见的一些链路追踪框架之后,最终选择了国产开源框架SkyWalking,同时它也是Apache基金会中的孵化项目,项目VP为吴晟大佬。最初使用它的本意仅仅是因为其服务之间链路追踪的功能,了解使用之后,发现其功能强大远不止如此,正如官方文档中所说的那样,SkyWalking是一个开源的可观测平台,用于从服务和云原生基础设施收集,

2021-11-05 11:23:06 1576

原创 深入MySQL:走进存储引擎-InnoDB[#3]

文章目录前言InnoDB重要特性架构设计内存结构磁盘结构更新sql的执行总结前言接着上一篇sql语句的执行过程原理,我们开始接触到了存储引擎,同时也已经了解存储引擎的作用,它是数据存储与查询的底层支撑。我们知道MySQL的存储引擎设计是基于插件式架构,它支持了很多不同存储引擎的实现,像InnoDB、MyISAM、CSV、Memory等等,而他们各自的优缺点及适用场景前文也已经介绍过了。InnoDB虽然存储引擎的种类比较多,但是我们不用每个都深入了解,先挑一个重点且优先级高的来,举一反三,所以接下来

2021-11-03 14:17:51 140

原创 深入MySQL:sql优化-执行原理[#2]

文章目录前言场景解决方案执行原理缓存解析器优化器Optimizer查询执行引擎存储引擎总结前言前篇已经从全局多个维度对MySQL的性能调优进行了分析总结,那废话不多说,接下来我们就先从客户端的sql语句优化作为开始,来打开MySQL原理内幕的大门。场景通常实际开发中经常能碰到这些业务场景:需要对业务日志中检测到的一些慢sql进行优化,减少它所执行的时间,来提高业务接口的响应效率,也就是降低接口的RT(Response Time)。一般sql的执行时间优化到毫秒级别基本就满足业务需求了,当然某些场景

2021-10-25 16:39:19 262

原创 深入MySQL:从性能调优开始[#1]

文章目录前言场景需求核心维度客户端优化服务端优化架构层优化总结前言通常对MySQL进行深入了解,会从基础入手,从而循序渐进;但是本系列会从性能优化这个切点去深入MySQL原理内幕,但是这里有个前提是你已经有MySQL相关的实际开发经验或者比较熟练的掌握了MySQL的基本使用。为什么要从性能优化这样的”高级“方面作为入口?我们知道从基础来深入一门技术是枯燥的,学习周期也比较长,容易导致学习的目的性分散,同时如果没有很好的实践也是易忘的,需要反复回顾来加深印象,总的下来,学习成本会比较高。而对于掌握基本

2021-09-28 20:53:50 124

原创 Spring源码解析之事务篇

文章目录什么是事务?准备工作特性并发问题隔离级别传播行为声明式配置事务的流程事务管理器启用流程启用代理事务管理配置定义生成代理类处理流程获取拦截器链执行代理方法1.准备工作2.处理策略3.创建事务4.执行代理方法5.异常事务处理6.清除事务信息7.返回后事务提交总结什么是事务?事务(Transaction):指访问并可能更新数据库中各种数据项的一个程序执行单元(unit),它是恢复和并发控制的基本单位。通常我们在业务逻辑处理代码中对数据库的同一组增删改查操作就是一个事务操作,由此可见事务的前提必须是使

2021-09-23 12:51:15 550

原创 Spring源码解析之MVC篇

文章目录什么是MVC?准备工作支持的功能DispatcherServletServlet配置关键Bean初始化流程注册DispatcherServlet初始化Servlet初始化相关组件调用流程1.开始解析2.多部分请求转换3.获取请求对应的Handler4.获取HandlerAdapter5.LastModified缓存机制6.拦截器的前后置处理7.处理请求8.异常处理9.视图渲染什么是MVC?MVC(Model-View-Controller):它是一种软件架构设计模式,分为三个部分:Model

2021-09-12 17:56:30 212

原创 Spring源码解析之AOP篇

文章目录什么是AOP?准备工作基础概念使用方式代理机制调用流程启用自动代理注册后置处理器解析@Aspect切面配置生成代理对象调用代理方法什么是AOP?AOP(Aspect Oriented Programming):面向切面编程,与面向对象编程OOP的关键单位是类不一样,它的关键单位是切面,它通过提供改变程序结构的方式来补充OOP。通俗点就是说我们可以通过预编译或者运行时动态代理在不修改方法源码的情况下增强方法的功能。实际开发中,AOP的出现方便了业务需求和系统功能之间的解耦和扩展,比如日志、事务、

2021-08-19 17:16:34 201

原创 Spring源码解析之循环依赖

文章目录什么是循环依赖?Spring中的循环依赖原因发生场景与分析有参构造方法注入无参构造方法注入@DependsOn注解解决方案主、辅缓存@Lazy注解设计本意总结什么是循环依赖?循环依赖:在依赖注入的过程中,多个Bean对象互相持有对方的引用,比如A对象中包含B对象,B对象中包含A对象,以此类推,它们看上去就像是一个圆环,首尾相连。了解完之后你可能会有疑问:这样的情况会引发什么问题?所谓知其然还要知其所以然,所以解决问题之前我们还需要思考它发生的原因。Spring中的循环依赖原因首先我们

2021-08-12 17:53:25 279

原创 Spring源码解析之DI篇

文章目录什么是DI?准备工作第一步:注入时机第二步:注入策略第三步:自动装配方式第四步:关键类和属性依赖注入流程1.转换真正的beanName2.从缓存中获取Bean3.对依赖的Bean先进行初始化4.根据不同Scope的Bean进行实例化(**重点**)4.1.实例化Bean4.2.提前缓存Bean4.3.属性注入4.4.初始化Bean4.5.注册Bean5.获取真正需要的Bean6.类型转换总结什么是DI?DI(Dependency Injection)依赖注入:当对象内包含对其他对象的引用时,Sp

2021-08-09 17:50:47 278

原创 Spring源码解析之IOC篇

文章目录学习重点什么是IOC?准备工作第一步:配置元数据第二步:配置解析第三步:关键类IOC的初始化(从无到有)基于XML的IOC容器的初始化1.定位2.加载3.注册基于Annotation的IOC容器的初始化1.入口2.直接解析配置注解的类3.扫描指定包路径下的所有类总结学习重点不要想着背!不要想着背!不要想着背!:顺着流程和思路逐步理解。知行合一!知行合一!知行合一!:学完每个阶段性知识,一定要文档输出或实践。OK,说完重点,我们开始!什么是IOC?IOC(Inversion Of Cont

2021-08-04 17:23:32 206

原创 SpringBoot+Druid+Log4j2配置总结

前言前面为搭建流程;后面为踩坑及处理方法所用版本:SpringBoot 2.3 Druid 1.1.10 Log4j2 2.10.0正文一、Maven配置

2018-08-09 16:00:37 12985 5

空空如也

空空如也

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

TA关注的人

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