自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Marion的博客

开放共享,提升自我

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

原创 第13讲:剖析 Trace 在 SkyWalking 中的落地实现方案(下)

一般情况下,在 Agent 插件的前置处理逻辑中,会调用 createEntrySpan() 方法创建 EntrySpan,在 TracingContext 的实现中,会检测 EntrySpan 是否已创建,如果是,则不会创建新的 EntrySpan,只是重新调用一下其 start() 方法即可。在 deserialize() 方法中实现了 ContextCarrier 反序列化的逻辑,即将上述字符串进行切分并赋值到对应的字段中,具体逻辑为 serialize() 方法的逆操作,这里不再展开分析。

2023-07-19 09:19:23 570

原创 第12讲:剖析 Trace 在 SkyWalking 中的落地实现方案(上)

SkyWalking 中 Trace 的相关概念以及实现类与 OpenTracing 中的概念基本类似,像 Trace、Span、Tags、Logs 等核心概念,在 SkyWalking Agent 中都有对应实现,只是在细微实现上略有区别的,其中最重要的是: SkyWalking 的设计在 Trace 级别和 Span 级别之间加了一个 Segment 概念,用于表示一个服务实例内的 Span 集合。

2023-07-11 20:17:52 1142

原创 第11讲:BootService 核心实现解析,Agent 的“地基”原来是这样的

本课时深入介绍了 BootService 的三个核心实现。GRPCChannelManager 负责管理 Agent 到 OAP 集群的网络连接,并实时的通知注册的 Listener。ServiceAndEndpointRegisterClient 的核心功能有三项。注册功能:其中包括服务注册和服务实例注册两次请求。定期发送心跳请求:与后端 OAP 集群维持定期探活,让后端 OAP 集群知道该 Agent 正常在线。

2023-06-24 14:14:32 518

原创 第10讲:深入剖析 Agent 插件原理,无侵入性埋点

在开始之前,先简单回顾上一课时中关于 AbstractClassEnhancePluginDefine 的一个核心知识点:AbstractClassEnhancePluginDefine 是所有插件的父类,SkywalkingAgent.Transformer 会通过其 enhanceClass() 方法返回的 ClassMatch 对象,匹配到要增强的目标类。Dubbo 插件拦截的是 com.alibaba.dubbo.monitor.support.MonitorFilter 这个类;

2023-06-10 21:15:00 1090

原创 第09讲:SkyWalking Agent 启动流程剖析,领略微内核架构之美

初始化配置信息。该步骤中会加载 agent.config 配置文件,其中会检测 Java Agent 参数以及环境变量是否覆盖了相应配置项。查找并解析 skywalking-plugin.def 插件文件。AgentClassLoader 加载插件。PluginFinder 对插件进行分类管理。使用 Byte Buddy 库创建 AgentBuilder。这里会根据已加载的插件动态增强目标类,插入埋点逻辑。使用 JDK SPI 加载并启动 BootService 服务。

2023-05-27 19:15:00 1579

原创 第08讲:搭建 SkyWalking 源码环境,开启征途

SkyWalking 的公共组件和工具类。oap-server/server-configuration/grpc-configuration-sync/target/generated-sources/protobuf 路径下的 grpc-java 目录和 java 目录。oap-server/server-receiver-plugin/receiver-proto/target/generated-sources/protobuf 路径下的 grpc-java 目录和 java 目录。

2023-05-15 17:16:03 1063 1

原创 第07讲:Java High Level Client,读写 ES 利器

分片是 ElasticSearch 中最小的数据分配单位,即一个分片总是作为一个整体被分配到集群中的某个节点。继续深入分片的结构会发现,一个分片是由多个 Segment 构成的,如下图所示:Segment 是最小的数据存储单元,ElasticSearch 每隔一段时间会产生一个新的 Segment,用于写入最新的数据。旧的 Segment 是不可改变的,只能用于数据查询,是无法继续向其中写入数据的。旧 Segment 不支持修改,那么在读操作的时候就不需要加锁,省去了锁本身以及竞争锁相关的开销;

2023-05-11 20:15:00 761

原创 第06讲:为何各大开源框架专宠 SPI 技术?

本课时首先介绍了 JDK SPI 机制的原理,并通过 Log 示例演示了 JDK SPI 的使用方式,然后深入到 ServiceLoader 的源码中分析了 JDK SPI 的实现方式,接下来介绍了 JDBC 4.0 如何使用 JDK SPI 机制加载数据库驱动类,最后介绍了 Dubbo 对 JDK SPI 的改进。

2023-04-28 12:00:00 558

原创 第05讲:OpenTracing 简介,先有标准后有天

Trace 简介。

2023-04-19 14:41:27 562

原创 第04讲:实战掌握 Byte Buddy,体验代码生成的顺畅

”本课时首先说明了运行时生成代码技术存在的必要性,然后简单介绍了当前市面上流行的 Java 代码生成库,并简单比较了它们各自优缺点,最后通过多组示例演示了 Byte Buddy 库的基本使用方式,对其中的 API 以及常用注解进行了详细的介绍。

2023-04-17 16:07:56 1032 1

原创 第03讲:掌握 Java Agent 真的可以为所欲为

将 demo-provider 和 demo-webapp 接入 SkyWalking Agent 的时候,只需要在 VM options 中添加下面这一行配置即可:-javaagent:/path/to/skywalking-agent.jar \-Dskywalking_config=/path/to/agent.config并没有修改任何一行 Java 代码。这里便使用到了 Java Agent 技术,本课时我们将对 Java Agent 技术进行简单介绍并通过示例演示 Java A

2023-04-06 22:12:15 552

原创 第02讲:链路追踪利器,快速上手 SkyWalking

ElasticSearch、Kibana、Skywalking 等的安装

2023-04-06 15:40:40 1032

原创 第01讲:为何 SkyWalking 一枝独秀?

skywalking

2023-04-06 15:38:28 490

原创 backend-alarm

skywalking

2022-08-24 12:43:20 361

原创 JVM垃圾回收算法、垃圾收集器以及可视化GC日志分析工具

什么是垃圾回收?垃圾回收的常见算法?垃圾收集器以及内存分配是怎样的?

2022-04-30 19:23:55 519

原创 jvm调优

jvm优化,jvm的运行参数,jps、jmap、jstat等命令,MAT、VisualVM等工具

2022-04-28 15:54:23 748

原创 Spring AOP代码实现:实例演示与注解全解

1 理解AOP1.1 什么是AOPAOP(Aspect Oriented Programming),面向切面思想,是Spring的三大核心思想之一(两外两个:IOC-控制反转、DI-依赖注入)。那么AOP为何那么重要呢?在我们的程序中,经常存在一些系统性的需求,比如权限校验、日志记录、统计等,这些代码会散落穿插在各个业务逻辑中,非常冗余且不利于维护。例如下面这个示意图:有多少业务操作,就要写多少重复的校验和日志记录代码,这显然是无法接受的。当然,用面向对象的思想,我们可以把这些重复的代码抽离出来,写

2022-04-10 23:21:22 11376 4

原创 Singleton你真的懂单例模式吗?

单例设计模式singleton

2021-12-31 15:21:58 456

原创 7种内聚与7种耦合的类型及强弱关系

根据模块独立性排序内聚与耦合的类型模块的内聚类型通常可以分为7种 ,根据内聚度从低到高排序。类型说明偶然(巧合)内聚指一个模块内的各处理元素之间没有任何联系。 例如:三条不相关的语句( move O to R , read file F , move S toT ),模块B 和C需要都使用了这三条语句。于是将这三条语句提取出来形成 模块 A 。模块 A 中的语句就是偶然内聚。逻辑内聚指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。例如:将功能上

2021-04-20 09:57:56 14979

原创 计算机网络

网络互联模型1977 年,国际标准化组织为适应网络标准化发展的需求,制定了开放系统互联参考模型(Open System Interconnection/Reference Model,OSI/RM),从而形成了网络架构的国际标准。OSI/RM 构造了由下到上的七层模型,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。口诀:“巫术忘传会飚鹰”。互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为

2021-04-12 14:50:58 257

原创 mysql中performance schema详解与实践操作

MYSQL performance schema详解0、performance_schema的介绍​ MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况。​ 特点如下:​ 1、提供了一种在数据库运行时实时检查server的内部执行情况的方法。performance_schema 数据库中的表使用performance_schema存储引擎。该数据库主要关注数据库运行过程中的性能相关的数据,与informatio

2021-03-30 23:33:37 336

原创 索引优化explain分析案例

索引优化分析案例预先准备好数据SET FOREIGN_KEY_CHECKS=0;DROP TABLE IF EXISTS `itdragon_order_list`;CREATE TABLE `itdragon_order_list` ( `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键id,默认自增长', `transaction_id` varchar(150) DEFAULT NULL COMMENT '交易号', `gross

2021-03-18 17:02:11 93

原创 MySQL内置函数

1、MySQL 字符串函数函数描述实例ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。返回 CustomerName 字段第一个字母的 ASCII 码:SELECT ASCII(CustomerName) AS NumCodeOfFirstCharFROM Customers;CHAR_LENGTH(s)返回字符串 s 的字符数返回字符串 itcast 的字符数SELECT CHAR_LENGTH("itcast") AS LengthOfString;

2021-03-04 22:15:31 162 1

原创 使用vue预览PDF

效果图讲解之前先看案例,强烈推荐此项目vue-pdf.js-demo前端:方法filePreview(row){ if (row.projectFeasibilityAnalysis != null ){ let name = row.projectFeasibilityAnalysis[0].label let url = row.projectFeasibilityAnalysis[0].value if (nam

2020-12-25 13:23:23 236

原创 1267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for

其实很简单:在jion 后 on两边的条件都加上COLLATE utf8mb4_general_ci就可以了

2020-11-24 09:08:31 3042

原创 使用freemarker循环图片(附demo)

使用freemarker循环图片一.效果展示(word文档)今天重点讲解图片部分,基础数据展示不做讲解,要求对freemarker有一定的基础,详看使用Freemarker输出word文档到浏览器与本地今天为什么要单独讲解图片循环呢?因为在word生成的过程中,word的生成策略运用了比较多的关联最重要的是使用freemarker你找不到循环体,所以今天特别写了这篇文章,demo放在最后,大家可自行下载首先先讲一下word的生成策略:1.数据源2.关联2.正文先看数据源的位置:<p

2020-08-17 17:35:26 3685 3

原创 idea快速上手指南

Idea快速入门指南*1.*配置我们在启动界面打开配置页面:或者进入idea以后,我们可以进行一系列配置。1.1.字体和主题:另外,主题也可以到网上下载,但是建议大家不要去浪费时间了。1.2.启动项:1.3.快捷键类名自动补全:默认并不是Alt + /。而大家玩eclipse比较熟悉了,所以我们改成Alt + /习惯使用Eclipse快捷键的也可以自行选择代码生成...

2020-05-02 21:57:48 1067

原创 thymeleaf语法入门

1.Thymeleaf简介官方网站:https://www.thymeleaf.org/index.htmlThymeleaf是用来开发Web和独立环境项目的现代服务器端Java模板引擎。Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 - HTML。可以在直接浏览器中正确显示,并且可以作为静态原型,从而在开发团队中实现更强大的协作。借助Spring Framework的...

2020-04-19 22:07:52 240

原创 使用Freemarker输出word文档到浏览器与本地

本期我们介绍如何使用Freemarker导出word文档?项目需求如下:前些时间开发人力资源项目,项目在正式上线之后,客户录入的大良人员基础信息,包括人员基础信息,教育经历,工作经历,培训经历与家庭情况,这些数据都是使用独立的表来存储的,后来客户反馈,说查看个人信息不方便,在人员调动时候还需要打印个人简历给领导看,特别提出导出个人简历功能最后输出效果如下:经过考虑: 有两种备选方案,第一...

2020-04-02 09:37:28 2388 8

原创 Freemarker初识与核心指令

1、注释,即<#‐‐和‐‐>,介于其之间的内容会被freemarker忽略2、插值(Interpolation):即${..}部分,freemarker会用真实的值代替${..}3、FTL指令:和HTML标记类似,名字前加#予以区分,Freemarker会解析标签中的表达式或逻辑。4、文本,仅文本信息,这些不是freemarker的注释、插值、FTL指令的内容会被freemarker忽略解析,直接输出内容。

2020-04-01 23:02:22 333

原创 使用docker完成MySQL、tomcat、Nginx、Redis部署

使用docker完成MySQL、tomcat、Nginx、Redis部署Docker简介1.1 什么是虚拟化1.2 什么是Docker为什么选择Docker?1.3 容器与虚拟机比较1.4 Docker 组件1.4.1 Docker服务器与客户端1.4.2 Docker镜像与容器1.4.3 Registry(注册中心)2 Docker安装与启动2.1 安装Docker2.2 设置ustc的镜像2....

2019-12-26 17:29:38 1365

原创 mysql-8.0下载安装教程

下载本次安装以8.0.18为例下载地址:https://dev.mysql.com/downloads/mysql/安装1、解压文件(记好目录,我的C盘放不下了,不能有中文)在 D:\software\mysql-8.0.18-winx64(你自己的安装目录) 目录下新建一个my.ini的文件,并添加一下内容[mysqld]# 设置3306端口port=3306# 设置m...

2019-11-21 11:55:08 876

原创 中国地图省份坐标

以下数据为SQL语句,可直接运行到数据库百度云链接:https://pan.baidu.com/s/1iU-8YTk54ftPzqAguzWHwA提取码:gr6r内容展示如下:详情请点击下载

2019-11-06 23:00:33 2630

原创 idea中RunDashboard怎么调出来的解决办法

首先打开idea搜索:RunDashboard添加配置: <option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set> </option&g...

2019-10-21 11:42:35 1071

原创 微信模拟器不显示鼠标解决办法

最近在微信开发时候用笔记本外联了一个显示器,出现了在模拟器上鼠标不显示的情况,在网上也搜了一些办法,大多都是更改鼠标指针选项,显示指针轨迹,但是实在是很不习惯,于是想到另一种基于显卡的解决办法如图:鼠标右键点击显卡设置——显示器——一般设置——选择外接的显示器——量化范围改成全范围。完美解决...

2019-10-17 15:10:52 3381

原创 百度文库免费下载含豆丁、道客巴巴等

下载百度文库收我钱,不可能的,冰点下载器绝对满足你上资源:网盘地址https://pan.baidu.com/s/1nmsAfRaOJfjdZWjHJfyhTA提取码:1xvq下载后直接解压即可使用示例如下:打开百度文库随便点击一个如下1、复制链接2、回到冰点下载,支持自动粘贴到文本框中,点击下载3、点击进入以下载即可看到想要的文件,右键点击打开所在文件夹,或者打开文件都可以,...

2019-09-17 17:35:46 1759

原创 ES6 新特性

1 、ES6 新特性现在使用主流的前端框架中,如ReactJS、Vue.js、angularjs等,都会使用到ES6的新特性,作为一名高级工程师而言,ES6也就成为了必修课,所以本套课程先以ES6的新特性开始。1.1、了解ES6ES6,是ECMAScript 6的简称,它是 JavaScript 语言的下一代标准,己于 2015 年 6 月正式发 布。它的目标是使 JavaScript语言...

2019-08-11 20:31:12 2423

java项目使用百度云AI完成刷脸登录

刷脸登录理解刷脸登录的需求理解刷脸登录的开发流程实现刷脸登录功能1 浅谈人工智能1.1 人工智能的概述人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领...

2019-07-08 13:21:02 1197 1

原创 RabbitMQ安装使用教程及入门程序

1 介绍1.1 RabbitMQMQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced MessageQueue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。RabbitMQ官方地址:http://www.rabbitmq.com/开发中消息队列通常有如...

2019-07-03 11:28:05 660

原创 Push to origin/master was rejected异常解决办法

今天新写了一个项目,创建本地仓commit之后想push到git被拒绝了找了一些资料,大致得出一个比较靠谱的解决办法,如下第一步切换到自己项目所在的目录,右键选择GIT BASH Here,Idea中可使用Alt+F12或者点击Terminal按钮(同Alt+F12)进入命令行第二步:在terminl窗口中依次输入命令git pull# 相当于是从远程获取最新版本并merge到本地...

2019-06-13 16:55:32 913

空空如也

空空如也

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

TA关注的人

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