摘要: Tomcat 连接池是从 Tomcat 7 开始重新编写的高并发连接池,用以取代以前 Tomcat 中使用的 DBCP 1 连接池,它可以配置在 Tomcat 中使用,也可以单独使用。 【注意的地方】: 在web应用程序中配置了Tomcat JDBC池,并使用Tomcat8.0.38添加了maven 阅读全文
posted @ 2022-09-23 22:39 茁壮的小草 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 一、JDBC数据库连接池的必要性 1、在开发基于数据库的web程序时,传统的模式基本是按以下步骤: (1)在主程序中建立数据库连接(2)进行sql操作(3)断开数据库连接 2、这种模式开发,存在的问题: (1)普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时 阅读全文
posted @ 2022-09-23 22:15 茁壮的小草 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 1 JDBC简介 JDBC(Java DataBase Connectivity) :Java数据库连接技术:具体讲就是通过Java连接广泛的数据库,并对表中数据执行增、删、改、查等操作的技术。 以前我们通过 Navicat等图形化客户端发送SQL操作数据库。本质上,JDBC的作用和图形化客户端的作 阅读全文
posted @ 2022-09-23 22:03 茁壮的小草 阅读(31) 评论(0) 推荐(0) 编辑
摘要: Hadoop:hadoop-2.6.4 jdk:1.7.0_79 提前在所有机器上安装hadoop和jdk,打通互信,关闭防火墙,配置主机名映射,这里不介绍。 注意:本机需要ssh 本机: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 一、集群配置 阅读全文
posted @ 2022-04-29 17:14 茁壮的小草 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 一、架构与组件 YARN核心思想是将资源管理和任务调度/监控等功能拆分成两个独立的守护进程。 基于这个思想,设计了一个全局的资源管理器ResourceManager(RM)和为每个应用程序提供一个单应用程序控制器Application Master(AM)。 一个应用程序是一个单独的作业或者一组作业 阅读全文
posted @ 2022-04-27 13:40 茁壮的小草 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 一、准备 本文中的示例运行环境及相关软件版本如下: Kubernetes v1.16.3 Go 1.15.6 Kubebuilder 3.1.0 Docker 20.10.7 安装kubebuilder: #下载kubebuilder 3.1.0,建议二进制版本:https://github.com 阅读全文
posted @ 2022-03-08 20:19 茁壮的小草 阅读(1385) 评论(0) 推荐(0) 编辑
摘要: /* 题目: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表 */ #include <stdio.h> #include <stdlib.h> typedef struct ListNode { int val; struct ListNode *next; }ListNode; 阅读全文
posted @ 2022-03-04 14:34 茁壮的小草 阅读(55) 评论(0) 推荐(1) 编辑
摘要: 单链表的基本操作 /* 单链表分两种:有头结点和无头结点 插入单链表方式:头部插入和尾部插入,不管是头部插入还是尾部插入,步骤是: 1) 先把新结点的next指针指向下一个结点 2)再把前一个结点的next指向新结点 */ #include <stdio.h> #include <stdlib.h> 阅读全文
posted @ 2022-03-02 20:49 茁壮的小草 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 环境: golang 1.15 依赖包采用go module 实例:现在往 Kubernetes 添加一个名叫 Network 的 API 资源类型。它的作用是,一旦用户创建一个 Network 对象,那么 Kubernetes 就应该使用这个对象定义的网络参数,调用真实的网络插件,为用户创建一个真 阅读全文
posted @ 2022-02-14 17:02 茁壮的小草 阅读(833) 评论(0) 推荐(0) 编辑
摘要: Go语言1.14版本之后推荐使用go modules管理依赖,也不再需要把代码写在GOPATH目录下。 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ 版本的选择 Windows平台和Mac平 阅读全文
posted @ 2022-02-12 15:30 茁壮的小草 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 本文基于社区版Redis 4.0.8 1、命令解析 Redis服务器接收到的命令请求首先存储在客户端对象的querybuf输入缓冲区,然后解析命令请求的各个参数,并存储在客户端对象的argv和argc字段。 客户端解析命令请求的入口函数为readQueryFromClient,会读取socket数据 阅读全文
posted @ 2022-02-10 12:33 茁壮的小草 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 如何给容器化部署业务配置合适的探针? readinessprobe简介 readinessprobe,就绪探针,是k8s中的一个概念。当 readinessprobe 检查通过,表示服务就绪,可以接受流量。当 readinessprobe 检查不通过,表示服务没有就绪,不具备提供服务流量的能力。和我 阅读全文
posted @ 2022-02-09 11:42 茁壮的小草 阅读(3889) 评论(0) 推荐(1) 编辑
摘要: 本文基于社区版Redis 4.0.8 1、复现条件 版本:社区版Redis 4.0.10以下版本 使用场景:开启读写分离的主从架构或者集群架构(master只负责写流量,slave负责读流量) 案例: # 写入一条带过期时间10s的key 10.90.73.147:12345> set luxiu1 阅读全文
posted @ 2022-02-08 13:02 茁壮的小草 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 本文基于社区版Redis 4.0.8 1、 初始化参数配置 由函数initServerConfig()实现,具体操作就是给配置参数赋初始化值: //设置时区 setlocale(LC_COLLATE,""); //设置随机种子 char hashseed[16]; getRandomHexChars 阅读全文
posted @ 2022-02-07 20:22 茁壮的小草 阅读(299) 评论(0) 推荐(0) 编辑
摘要: K8S中yaml文件主要由5个部分组成: apiVersion - 创建该对象所使用的 Kubernetes API 的版本 kind - 想要创建的对象的类别 metadata - 帮助唯一性标识对象的一些数据 spec: spec 的精确格式对每个 Kubernetes 对象来说是不同的,包含了 阅读全文
posted @ 2021-06-07 19:56 茁壮的小草 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 1、安装mysql5.7 brew install mysql@5.7 2、安装mysql-client brew install mysql-client 3、vim ~/.bash_profile export LDFLAGS="-L/usr/local/opt/mysql-client/lib 阅读全文
posted @ 2020-12-25 17:03 茁壮的小草 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 一、项目文件夹已存在 1、登陆公司的gitlab并创建一个空项目 2、进入本地项目文件夹 cd myproject git init git remote add origin gitlab项目地址 git add . git commit -m "Initial commit" git push 阅读全文
posted @ 2020-10-24 14:59 茁壮的小草 阅读(909) 评论(0) 推荐(0) 编辑
摘要: 1、 安装python3.8 mac自带python2.7版本 # install python3,自动安装到/usr/local/Cellar/python@3.8/3.8.6/bin目录中 brew install python 2、安装虚拟环境 pip install virtualenv p 阅读全文
posted @ 2020-10-12 20:12 茁壮的小草 阅读(2956) 评论(0) 推荐(0) 编辑
摘要: 一 系统环境 windows 10 64-bit 安装python 2.7.18 和python 3.8两个版本 二 安装 默认会把virtualenv安装到系统默认python版本中 pip install virtualenv 三 使用 1、应用使用不同python版本 virtualenv - 阅读全文
posted @ 2020-08-28 12:41 茁壮的小草 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 对于运维人员来说,使用脚本自动化编辑crontab是常见的一个工作场景,本篇介绍采用python-crontab 包来对crontab进行增、删、改等常见的操作。 1、介绍 python-crontab最新版是2.5.1,支持Python 2.7以及Python 3 (3.5, 3.6, 3.7), 阅读全文
posted @ 2020-08-26 14:35 茁壮的小草 阅读(8849) 评论(0) 推荐(1) 编辑
摘要: 一 版本说明: 1、xtrabackup2.4可以备份5.1,5.5,5.6,5.7版本的MySQL,不能备份MySQL8.0及以上版本, 2、如果要备份MySQL8.x版本,使用xtrabackup8.0版本(xtrabackup8.0.12以前版本不支持MySQL8.0.20及以后版本的备份), 阅读全文
posted @ 2020-08-24 17:13 茁壮的小草 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 1、下载安装包 golang官网: https://golang.org/ golang的linux安装包: https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz 2、 安装 假定我们要将go安装在 /usr/local目录下 tar -C /us 阅读全文
posted @ 2020-08-12 15:49 茁壮的小草 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 1、事务型数据字典 2、原子DDL 阅读全文
posted @ 2020-08-10 16:12 茁壮的小草 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 1、在从库上执行bgsave,生成最新的rdb文件 2、安装分析rdb文件的工具:rdb_bigkeys 1)安装go运行环境,设置环境变量,安装完成后使用go env查看 2)下载 https://github.com/weiyanwei412/rdb_bigkeys 3)安装: 进入gopath 阅读全文
posted @ 2020-07-15 12:13 茁壮的小草 阅读(710) 评论(0) 推荐(0) 编辑
摘要: 一【简介】 Prometheus提供了一种称为PromQL(Prometheus查询语言)的函数查询语言,允许用户查询和聚合时间序列类型的数据。表达式的结果即可以显示为图形,也可在Prometheus的表达式浏览器中显示为表格数据,除此之外,也可以由外部系统通过HTTP API使用。 二 数据类型 阅读全文
posted @ 2020-06-24 13:57 茁壮的小草 阅读(1083) 评论(0) 推荐(0) 编辑
摘要: 一、TABLE_MAP_EVENT Used for row based binary logging beginning with MySQL 5.1.5.The TABLE_MAP_EVENT defines the structure if the tables that are about 阅读全文
posted @ 2018-11-03 18:35 茁壮的小草 阅读(923) 评论(0) 推荐(0) 编辑
摘要: 一、Binlog File Binlog files start with a Binlog File Header followed by a series of Binlog Event Binlog文件从一个Binlog文件头开始,接着是一系列的Binlog事件。 1 Binlog File 阅读全文
posted @ 2018-11-03 18:33 茁壮的小草 阅读(9924) 评论(0) 推荐(0) 编辑
摘要: 在线修改GTID模式 1、 在每一台机器上执行命令 SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN; 这是很重要的一步,必须确保服务器上没有违反GTID规范的SQL,否则当设置为GTID模式后, 这些业务SQL会被拒绝执行,建议设置上面变量值间隔一天后err 阅读全文
posted @ 2018-11-03 18:28 茁壮的小草 阅读(1646) 评论(0) 推荐(0) 编辑
摘要: 一、5.6版本online DDL 操作|In Place|Rebuilds Table|Concurrent DML|Only Modifies Metadata| 说明 | | | | | | add/create secondary index| yes|No| yes |no| 当表上有FU 阅读全文
posted @ 2018-11-03 18:25 茁壮的小草 阅读(1233) 评论(0) 推荐(0) 编辑
摘要: pt osc原理 1、检查设置环境 测试db是否可连通,并且验证database是否存在 SET SESSION innodb_lock_wait_timeout=1 //InnoDB事务等待行锁的超时时间 SET SESSION lock_wait_timeout=60 //设置获取元数据琐超时为 阅读全文
posted @ 2018-11-03 18:24 茁壮的小草 阅读(2096) 评论(0) 推荐(0) 编辑
摘要: pt osc实战运用 1、安装pt osc,解压即可用 2、常用命令 3、常用参数解释 4、输出日志分析 2018 10 17T13:43:01.414577+08:00 5892279 Connect dbadmin@10.249.5.39 on test using TCP/IP 2018 10 阅读全文
posted @ 2018-11-03 18:22 茁壮的小草 阅读(1845) 评论(0) 推荐(0) 编辑
摘要: pt osc测试 1、原表必须存在主键 PRIMARY KEY 或者 UNIQUE KEY The new table .`_t_user_new` does not have a PRIMARY KEY or a unique index which is required for the DEL 阅读全文
posted @ 2018-11-03 18:22 茁壮的小草 阅读(835) 评论(0) 推荐(0) 编辑
摘要: 性能测试 一、测试背景 1、机器配置和版本 2、数据准备和业务模拟 二、性能测试 1、测试工具命令 2、单表高负载测试(64个并发线程,写入QPS:26927) DDL类型|执行前QPS(r/w)|pt osc执行时间|pt osc执行时QPS(r/w)|gh ost执行时间|gh ost执行时QP 阅读全文
posted @ 2018-11-03 18:20 茁壮的小草 阅读(779) 评论(0) 推荐(0) 编辑
摘要: gh ost测试 1、不支持没有主键或者唯一索引的表 2、不支持有外键约束的表(主表和子表都不支持) 2018 08 24 10:03:09 ERROR Found 1 parent side foreign keys on .`t1`. Parent side foreign keys are n 阅读全文
posted @ 2018-11-03 18:16 茁壮的小草 阅读(1028) 评论(0) 推荐(0) 编辑
摘要: gh-ost原理 一、三种模式架构图 1、连上从库,在主库上修改 这是gh-ost默认的工作模式,它会查看从库情况,找到集群的主库并且连接上去,对主库侵入最少,大体步骤是: 在主库上创建_xxx_gho、_xxx_ghc,并修改_xxx_gho表结构; 从slave上读取二进制日志事件,将变更应用到 阅读全文
posted @ 2018-11-03 18:11 茁壮的小草 阅读(5190) 评论(0) 推荐(2) 编辑
摘要: gh ost实战运用 一、安装步骤 1、环境 2、安装go语言 3、安装gh ost 二、主库模式 1、常用命令 2、常用参数解释 3、输出日志分析 GH OST会输出一些关键详细信息,让你了解整个迁移过程。当然,你可以控制输出级别。 开始输出如下: 2018 08 07 14:17:11 INFO 阅读全文
posted @ 2018-11-03 18:10 茁壮的小草 阅读(2685) 评论(0) 推荐(0) 编辑
摘要: 1、莫名的慢查询问题。解决思路:http://hidba.org/?spm=5176.153233.793262.6.d75LDx&p=1119 阅读全文
posted @ 2018-10-24 23:27 茁壮的小草 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 1、简单介绍该错误发生的背景: 1) 数据库版本:MySQL5.7.19 2) 对一个大表修改字段类型DDL(将主键id int变为bigint),为了不影响主库业务,先在从库上执行DDL操作,然后通过主从切换完成最终的大表DDL;在从库执行完DDL后,这时发现复制中断了,报错信息: 3)错误重现: 阅读全文
posted @ 2018-04-13 15:44 茁壮的小草 阅读(3654) 评论(0) 推荐(0) 编辑
摘要: 一 【现象】 1、7点到9点IO监控指标util特别高,如下: 2 、查看读写情况:读产生很高的物理IO,如下 【分析】:对比其他服务器,buffer pool都是80G,正常情况下热点数据都是从buffer pool中读取的,产生物理读基本很少,但是这组却产生了很多物理读,肯定是有问题的。 二 【 阅读全文
posted @ 2017-08-14 19:03 茁壮的小草 阅读(750) 评论(3) 推荐(1) 编辑
摘要: 今天在使用冷备份文件重做从库时遇到一个报错,值得研究一下。 一、报错现象 这个时候查看error.log: 从报错上看,意思是启动slave时,使用repository中信息初始化relay log结构失败了。为什么失败了?原来是从tjtx135-1-95-relay-bin.index文件中找不到 阅读全文
posted @ 2017-07-18 17:10 茁壮的小草 阅读(18749) 评论(1) 推荐(1) 编辑