首页 文章 精选 留言 我的

精选列表

搜索[声明式],共10000篇文章
优秀的个人博客,低调大师

TiDB 源码系列之沉浸式编译 TiDB

1.背景 最近刚学习完PCTP,对TiDB的各种读写有了粗略的了解,但是要想研究的更细节一些的东西, 肯定离不开学习源码,学习源码的话大家可以参考官方的TiDB源码系列文章,但是官方的文章 都是18年发的,可能会有些滞后,所以大家可以参考这个以及结合源码去学。 TiDB源码系列解读文章:官方源码解读博客地址 然而学习源码肯定编译调试源码是最有效的学习途径,经过这几天的学习,以及请教开发大佬, 成功编译了TiDB,所以分享给对源码感兴趣的小伙伴。 2.准备工具 Goland白嫖款一个(30天) TiDB 最新款源码tar包一份 Mac一台 3.源码下载 1.首先去github上下载源码:源码下载地址 2.选择自己想要看的版本:这里我以最新的5.4.0版本为例。 3.解压tar包 #1.打开终端 #2.到对应目录解压tar包 tar -xzvf tidb-5.4.0.tar.gz #解压后就会得到一个文件夹 4.编译软件下载配置 由于TiDB是使用的go语言编写的,所以我们使用goland进行编译。 1.下载一个30天白嫖版,有能力的可以直接购买付费版(支持正版) 下载地址:goland下载地址 选择适合自己的电脑系统的进行下载: 2.安装完成之后选择对应打开的项目。 3.找到自己刚才解压的TiDB源码文件夹,打开 4.打开后可能会出现很多的报错(如下图),但是问题不大,基本都是因为没有安装go的相关module导致的。 所需的gomodule可以在代码中的下面文件看到,可以看到目前都是红色,说明缺少对应的mod。 5.打开goland的设置,然后下载最新版的goroot,就会安装所需的module。 然后选择一个最新的版本下载就好。 然后在下面就会开始下载相关的依赖: 测试的时候发现只会下载一部分,所以剩下的缺少的可以点击图片中的从github sync。 下载完成之后就会全部变绿,至此环境我们就配置好了。 5.编译过程 经过上面的步骤,基本一切环境已经就绪,接下来我们就可以自己编译TiDB数据库。 1.但是会又有一个问题从哪开始运行? 这里还是要借助我开始说的官方源码系列:如何学习TiDB源码 作为一个非专业开发人员,只能借助官网提示去学习。 从我上面的地址,大家可以看到TiDB源码文件对应什么,以及从哪里开始。 2.从上面我们可以从官方博客知道从tidb-server/main.go运行 首先main.go里面的var就是我们系统的启动参数,大家可以修改对应的参数进行启动 然后下面找到main函数旁边的绿色按钮,大家可以选择debug模式或者直接运行,这里我选择Debug模式,可以看到更多的信息。 点击之后需要等待一会儿,屏幕下方会显示compiling.. 编译完之后,大家就可以在debug栏看到对应的信息: 可以看到[INFO] [server.go:246] ["server is running MySQL protocol"] [addr=0.0.0.0:4000]说明启动成功了。 3.去访问看看是否真正运行成功。 可以看到TiDB服务已经在运行, 使用MySQL命令行访问TiDB,可以看到已经O K,至此编译完成。 6.最后 运行成功后,大家后续就可以通过对不同的函数打断点,然后看自己的SQL会调用哪些代码中的哪些函数。函数的位置可以参考官方博客源码解析进行断点测试。 原文作者:@Jiawei 发表时间:2022/2/24 原文链接:https://tidb.io/blog/5be1e094

优秀的个人博客,低调大师

OpenCTI —— 开放式网络威胁情报平台

OpenCTI 即 Open Cyber Threat Intelligence Platform,开放网络威胁情报平台。它的创建是为了构建、存储、组织和可视化有关网络威胁的技术和非技术信息。 它使用基于 STIX2 标准的知识模式来执行数据的结构化。并被设计为现代 Web 应用程序,包括 GraphQL API 和面向 UX 的前端。此外,OpenCTI 可以与其他工具和应用程序集成,如 MISP、TheHive、MITRE ATT 和 CK 等。 OpenCTI 的目标是创建一个综合工具,允许用户利用技术(如 TTP 和可观测量)和非技术信息,同时将每条信息链接到其主要来源(报告、MISP 事件等),并具有每个信息之间的链接、首次和最后看到的日期、置信水平等功能。该工具能够使用MITRE ATT 和 CK 框架(通过专用连接器)来帮助构建数据。用户还可以选择实现自己的数据集。 一旦数据被利用和处理,就可以从现有关系中推断出新的关系,以便于理解和表示这些信息。这允许用户从原始数据中提取和利用有意义的信息。 OpenCTI 不仅允许导入,还允许以不同格式(CSV、STIX2 捆绑包等)导出数据。目前正在开发连接器以加速工具与其他平台之间的交互。 安装 使用 Docker(推荐) 手动安装

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册