crm系统java源代码,链路追踪 SkyWalking 源码分析——Collector Storage

er26582
er26582 这家伙很懒,还没有设置简介...

0 人点赞了该文章 · 70 浏览

crm系统java源代码,链路追踪 SkyWalking 源码分析——Collector Storage

摘要: 原创出处 「芋道源码」欢迎转载,保留摘要,谢谢!

本文主要基于 3.2.6 正式版

1. 概述

本文主要分享 存储组件。顾名思义,负责将调用链路、应用、应用实例等等信息存储到存储器,例如,ES 、H2 。

友情提示:建议先阅读 《 源码分析 —— 初始化》 ,以了解 组件体系。FROM

crm系统java源代码_java超市收银系统代码_crm系统用哪些java技术

下面我们来看看整体的项目结构,如下图所示 :

java超市收银系统代码_crm系统用哪些java技术_crm系统java源代码

下面,我们从接口到实现的顺序进行分享。

2. apm–core

apm–core 的 data 和 包,如下图所示:

crm系统java源代码_crm系统用哪些java技术_java超市收银系统代码

我们对类进行梳理分类,如下图:

crm系统java源代码_java超市收银系统代码_crm系统用哪些java技术

2.1 Table

org..apm..core.data. ,通用表。

在 — 的 table 包下,我们可以看到所有 Table 类,以 “Table” 结尾。每个 Table 的表名,在每个实现类里,例如 。

2.2

org..apm..core.data. ,表定义抽象类。

不同的存储组件实现,有不同的 实现类,如下图:

crm系统java源代码_crm系统用哪些java技术_java超市收银系统代码

2.2.1

org..apm..core.data. ,字段定义抽象类。

在 –xxx- 模块中, 、efine 实现 。

2.2.2

涉及到的类如下图所示:

java超市收银系统代码_crm系统用哪些java技术_crm系统java源代码

org..apm..core.data. ,调用 org..apm..core.. ,从 org..apm..core.data.e 中,加载 实现类数组。

另外,在 –es- 和 –h2- 里都有 . 文件,如下图:

java超市收银系统代码_crm系统java源代码_crm系统用哪些java技术

代码比较简单,中文注释已加,胖友自己阅读理解下。

2.3 Data

org..apm..core.data.Data ,数据抽象类。

在 — 的 table 包下,我们可以看到所有 Data 类,非 “Table” 结尾,例如 。

2.3.1

org..apm..core.data. ,字段。

2.3.2

org..apm..core.data. ,操作接口。用于两个值之间的操作,例如,相加等等。目前实现类有:

3. —

— :定义存储组件接口。项目结构如下 :

crm系统java源代码_java超市收银系统代码_crm系统用哪些java技术

3.1

org..apm… ,实现 抽象类,集群管理 。

#name() 实现方法,返回模块名为 “” 。

#() 实现方法,返回 类名:在 org..apm…dao 包下的所有类 和 。

3.2 table 包

在 org..apm…table 包下,定义了存储模块所有的 Table 和 Data 实现类。

3.3

org..apm… ,存储安装器抽象类,基于 ,初始化存储组件的表。

3.4 dao 包

在 — 项目结构图,我们看到一共有两个 bao 包:

java超市收银系统代码_crm系统用哪些java技术_crm系统java源代码

3.4.1 系统 DAO

org..apm…base.dao.DAO ,继承 接口,DAO 接口。

无任何方法。

3.4.1.1

org..apm…base.dao. ,实现 DAO 接口,DAO 抽象基类。

在 –xxx- 模块中,H2DAO 、EsDAO 实现 。

3.4.1.2

org..apm…base.dao. ,实现 DAO 接口,持久化 DAO 接口,定义了 Data 的增删改查操作。

3.4.1.3

org..apm…base.dao. ,实现 DAO 接口,批量操作 DAO 接口。

在 –xxx- 模块中, 、 实现 。

3.4.2 业务 DAO

在 #() 方法里,我们可以看到,业务 DAO 按照用途可以拆分成四种:

那么整理如下:

/ I关联文章√

√√√

√√

√√

√√

√√

√√

nce

√√

√√

√√

√√

√√

√√

√√

√√

4. –h2-

–h2- ,基于 H2 的存储组件实现。项目结构如下 :

java超市收银系统代码_crm系统用哪些java技术_crm系统java源代码

该实现是单机版,建议仅用于 快速上手,生产环境不建议使用。

由于生产环境主要使用 ES 的存储组件实现,所以本文暂不解析相关实现,感兴趣的胖友自己嗨起来。

5. –es-

–es-crm系统java源代码,基于 ES 的存储组件实现。项目结构如下 :

java超市收银系统代码_crm系统java源代码_crm系统用哪些java技术

实际使用时,通过 .yml 配置如下:

storage: elasticsearch: cluster_name: elasticsearch cluster_transport_sniffer: true cluster_nodes: 127.0.0.1:9300 index_shards_number: 2 index_replicas_number: 0 ttl: 7

5.1 der

org..apm…es.der ,实现 抽象类,基于 ES 的存储组件服务提供者。

#name() 实现方法,返回组件服务提供者名为 “” 。

() 实现方法,返回组件类为 。

#() 实现方法,返回依赖组件为 “” 。

#() 实现方法,执行准备阶段逻辑。

#start() 实现方法,执行启动阶段逻辑。

#() 实现方法,执行启动完成逻辑。

5.2 包

在 –es- 项目结构图,我们看到一共有两个 包:

5.2.1 fine

org..apm…es.base..fine ,实现 接口,基于 的表定义抽象类。

5.2.2 efine

org..apm…es.base..efine ,实现 抽象类,基于 ES 的字段定义。

5.2.3 业务 实现类

在 org…apm…es. 包里,我们可以看到,所有基于 ES 的业务 实现类。例如:fine 。

整体 #() 方法返回的结果如下:

5.2.4

友情提示: 主要是对 Java API 的使用,所以不熟悉的胖友crm系统java源代码,可以 下。

org..apm…es.base.. ,实现 抽象类, 基于 ES 存储安装器实现类。

5.3 dao 包

在 –es- 项目结构图,我们看到一共有两个 dao 包:

5.3.1 EsDAO

org..apm…es.base.dao.EsDAO ,实现 抽象类,基于 ES 的 DAO 抽象类。

5.3.2

org..apm…es.base.dao. ,实现 接口,继承 EsDAO 抽象类,基于 ES 批量操作 DAO 实现类。

5.3.3 业务 DAO 实现类

在 org…apm…es.dao 包里,我们可以看到,所有基于 ES 的业务 DAO 实现类。

实现代码易懂,胖友可以自己阅读。良心如我们,按照 DAO 的业务用途,推荐例子如下:

5.4

org..apm…es. ,过期数据删除定时器。通过该定时器,只保留 N 天内的数据。

如下是不会删除的数据的表:

:-D 搜索微信号(ID:芋道源码),可以获得各种 Java 源码解析、原理讲解、面试题、学习指南。

:-D 并且,回复【书籍】后,可以领取笔者推荐的各种 Java 从入门到架构的 100 本书籍。

java超市收银系统代码_crm系统用哪些java技术_crm系统java源代码

来吧,骚年~

发布于 2023-03-23 06:21

免责声明:

本文由 er26582 原创或收集发布于 火鲤鱼 ,著作权归作者所有,如有侵权可联系本站删除。

推荐内容

德鲁克管理思想的启示
时间管理的误区
大学生时间管理现状
时间管理方法(7种方法详细版)
稻盛和夫哲学是什么意思
稻盛和夫的经营十二条
德鲁克与戴明
稻盛和夫与敬天爱人
稻盛和夫大事记
稻盛和夫与阿米巴经营
火鲤鱼 © 2026 专注小微企业服务 冀ICP备09002609号-8