自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 windows服务器切换到linux服务器踩坑点

需要先把新域名ip指向云负载,然后云负载通过配置转发ip指向老服务器,过段时间后,dns全部刷新了,没有老IP了后,把云负载指向(改变云负载的代理模式,之前IP是四层负载,现在换成七层负载。4、域名指向的问题,老的dns域名缓存后如何对windows服务的访问处理,老的服务是域名直接指向服务,新的域名需要切到云负载->网关->新服务。单节点问题,影响业务可用性,windows影响后续自动化,健壮性的提升,需要进行linux化。4、域名问题,由于切换域名,会有新老域名ip的缓存问题,业务上会出现各种问题。

2025-03-31 18:30:38 279

原创 Jenkins 集成DingDing 推送

1、进入到 Jenkins 的插件管理页面,搜索下载 DingTalk 插件,安装完毕插件记得重启 Jenkins。开发频繁发布代码,和测试没有及时沟通,导致测试返工、bug漏测等。Jenkins 集成DingDing机器人,在构建时触发推送。2、点击群右上角设置,点击【智能群助手】在job配置页,选择配置的钉钉机器人名称。1、在钉钉电脑端建立群聊。重启完成后,在系统管理页。注意配置的换行等格式,可。

2025-03-14 15:49:59 395

原创 Docker 容器指标搜集工具cAdvisor

【代码】Docker 容器指标搜集工具cAdvisor。

2025-03-13 16:02:04 266

原创 Jenkins 自动打包java项目镜像部署到服务器

配置好git地址、账号凭证、远程执行token、打通jinkens服务器到目标服务器免密传输 等。

2025-03-07 16:59:55 493

原创 Linux 快捷命令链接

【代码】Linux 快捷命令链接。

2025-03-04 17:37:12 204

原创 后台数据报表导出数据量过大问题

如果你当前的做法是 一次性查询 100W 条数据,那就容易导致 CK 查询压力大、内存占用高。后面使用binlog监听,洗数据洗成一张宽表,存放在ck中,但是发现超过一定数量级100w也会很卡慢,但是比mysql强的是可以出来。ClickHouse 提供 流式查询 + CSV 导出,这样数据 不会全部加载到内存,而是边查边写,提高效率。用户提交导出请求后,后端 异步任务 开始查询并生成文件(存储到 OSS 或本地)。任务完成后,给用户 返回下载链接,前端再下载文件。这种方案比较繁琐,效果也不好。

2025-02-28 17:01:35 564

原创 Jenkins 自动打包项目镜像部署到服务器 ---(前端项目)

配置后可以支持远程触发jenkins构建(比如自建的CICD自动化发布平台),不需要远程构建的可以不配置。// 服务的地址+8090 根据nginx配置对应转发到真实的ip中。选择部署运行的节点标签,dev标签对应开发环境。在项目package.json同级目录下创建。

2025-02-26 16:22:11 564

原创 npm ERR! 451 Unavailable For Legal Reasons - GET https://registry.npmmirror.com/- -

(没有代理的话会很慢,可能还会超时)

2025-02-25 16:34:13 182

原创 Kafka常用集群配置参数

这个参数真正发挥作用的场景其实是在云上构建多租户的 Kafka 集群:设想要做一个云上的 Kafka 服务,每个租户只能使用 100GB 的磁盘空间,为了避免有个“恶意”租户使用过多的磁盘空间,设置这个参数就显得至关重要了。对性能要求较高的场景,可以适当增加 log.flush.interval.ms 和 log.flush.interval.messages 的值,以减少磁盘 I/O,但可能增加数据丢失的风险。它是若干个逗号分隔的三元组,每个三元组的格式为<协议名称,主机名,端口号>。

2024-12-23 11:46:53 1715

原创 Kafka topic消息被自动删除 排查

默认情况下,cleanup.policy 设置为 delete,这表示 Kafka 会定期删除日志文件中的过期数据。这表示 Kafka 中该 Topic 的消息会在 1000 毫秒(即 1 秒)后过期,超时的消息会被删除。因此,Topic 中的消息可能在非常短的时间内就会被清理掉。Kafka中每一个分区partition都对应一个日志文件,而日志文件又可以分为多个日志分段文件,这样也便于日志的清理操作。Broke端查看目前没有问题,会不会是Topic对应设置了参数,覆盖了Broke的参数。

2024-12-10 17:07:10 657

原创 基于ZooKeeper搭建Hadoop高可用集群

在之前安装的中都是单节点,集群不具有高可用性。

2024-12-04 16:15:27 1238

原创 Kafka 图形化工具 Eagle安装

(如果是一个节点搭建的伪集群,会报端口冲突)ke 库用来储存元数据。如未安装kafka,

2024-12-02 18:36:41 1158 3

原创 Kafka2.2.0集群安装

Kafka2.2.0 基于zookeeper搭建,这里也搭建一个三个节点的集群。

2024-12-02 17:47:44 588

原创 Zookeeper3.6.3集群安装

为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群。

2024-12-02 17:11:44 879

原创 Hadoop3.3.6集群安装

在 Windows 下 C:\Windows\System32\drivers\etc\hosts 添加 IP 映射。vim /etc/profile.d/my_env.sh配置JAVA和Hadoop环境变量(** (2)、修改配置文件yarn-env.sh 在文件末尾加上**解压后即可,看到/opt/app/hadoop-3.3.6文件夹。】查看/output路径下面生成的单词计数结果文件是否正确。** (1)、修改 hadoop-env.sh**修改下面文件中存在,配置放入其中,且只保留一组的。

2024-11-25 13:50:56 1170

原创 Linux安装java JDK

我们在 user 目录下建立一个新的 java文件夹,用来存放 JDK文件。配置添加完成后,按 “Esc”键,输入 “:wq”,就可以保存文件并返回了。如果/etc/profile文件不可编辑,我们需要先修改其为可编辑才行。首先,我们先检查系统是否自带了 JDK。vim编辑器来进行编辑。上传到服务器后,执行解压命令。

2024-11-25 10:48:11 201

原创 Docker 安装单机版mysql 并持久化数据

v /docker/mysql/data:/var/lib/mysql \ 将日志文件夹挂载到主机。-v /docker/mysql/log:/var/log/mysql \ 将配置文件夹挂载到主机。-v /docker/mysql/conf:/etc/mysql \ 将配置文件夹挂载到主机。-e MYSQL_ROOT_PASSWORD=123 \ 初始化root的密码。-p 3306:3306 将容器的端口号3306映射到主机的3306端口号。–name 镜像命名。

2024-11-21 13:45:42 533

原创 Hadoop 常用生态组件

Flink 独立运行:与 Spark 一样,Flink 支持独立的 Local 模式和 Standalone 模式,不依赖 Hadoop 的 HDFS 或 YARN。:Flink 可以与 HDFS 集成,用 HDFS 作为分布式文件系统来存储和读取大规模数据,特别适用于批处理场景。:Flink 可以通过 YARN 来管理和调度资源,特别适合在共享资源的 Hadoop 集群上运行多个分布式应用时。

2024-09-20 14:26:57 4124 1

原创 Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比

Kubernetes 更适合现代化的云原生应用,尤其是当你已经在使用 K8s 进行容器编排时,Flink 在 Kubernetes 上可以很好地支持自动扩展、容器化部署和微服务架构。YARN 是经典的 Hadoop 生态系统的一部分,如果你已有 YARN 集群或需要与 Hadoop 集成,Flink 在 YARN 上运行是理想的选择。Mesos 更适合多租户、大规模集群的资源共享和调度,如果你的集群中需要协调多个框架和作业共享资源,Mesos 是一个不错的选择。

2024-09-19 11:11:15 1739

原创 K8s节点状态 NotReady排查

检查节点的网络连接,确保它能正常访问控制平面和其他节点。确保控制平面的关键组件(如 API Server、Controller Manager、Scheduler)正常运行,因为这些组件的问题也可能导致节点状态异常。状态可能是由于多种原因引起的,尤其是在资源过量分配(overcommitment)时,常见的原因包括节点资源(CPU、内存)不足、关键组件失败、磁盘压力等。首先,检查节点的资源使用情况,以确定是否由于资源过度使用导致节点不可用。可以看到节点内存、磁盘等信息状态都是未知的,初步怀疑节点状态已经。

2024-08-19 18:19:56 2445

原创 MySQL 的binlog 、undolog 、redolog

是物理页的缓存,对InnoDB的任何修改操作都会首先在Buffer Pool的page上进行,然后这样的页将被标记为脏页并被放到专门的Flush List上,后续将由专门的刷脏线程阶段性的将这些页面写入磁盘。InnoDB的redo log是固定大小的,比如可以配置为一组4个文件,每个文件的大小是1GB,循环使用,从头开始写,写到末尾就又回到开头循环写(顺序写,节省了随机写磁盘的IO消耗)在 STATEMENT 模式下,每个语句会被记录并在从库执行,但如果有依赖顺序或其他条件的语句,可能导致复制不一致。

2024-08-01 16:49:19 896

原创 Mysql sql技巧与优化

结合上图执行计划分析,C表是外部驱动表,索引方式为idx_pk,Type是Range,Extra有Using index condition、Using where以及Using MRR,表示进行全表扫描,通过索引初步过滤,回表B再过滤其他条件。在这个例子中,如果customers.customer_id是一个唯一键或主键,并且在orders.customer_id上有索引,那么可能会使用eq_ref访问方法。用法:当一个表有一个唯一索引,并且该索引中的所有字段都被用于连接条件时,会使用eq_ref。

2024-07-19 17:30:14 1055

原创 Mysql索引优化

如果MySQL 使用某个索引进行范围查询,也就无法再使用另一个索引((或者是该索引的后续字段) 进行排序了

2024-07-12 15:26:02 262

原创 Mysql如何高效ALTER TABL

MySQL MySQL 执行大部分修改表结构操作的方法是用新结构的 创建一个,空表从旧表中查出所有数据插入,新表然后删除旧。,我们是常量在 列表的末尾增加一个新的值。如果把新增的放值在,中间例如PG-13 之后则导致会已存在经 数据的的含义被改变: 已存在经 的了值将变成PG-14 ,而已存在经 的NC-17 将成为RR,等。列的默认值实际上存在表的. frm 文件中,是可以直接修改.frm 文件的。MySQL 的ALTER TABLE 操作的性能对大表来说是个大问题。所以,这个操作是非常快的。

2024-07-10 17:42:55 923

原创 Java protobuf序列化

Protobuf(全称:Protocol Buffers)是由 Google 开发的一种语言中立、平台无关、可扩展的序列化协议。它用于高效地结构化数据的序列化和反序列化。Protobuf 的主要特点是其紧凑、高效和可扩展的编码格式,使其在各种网络通信和数据存储场景中广泛使用。

2024-07-10 16:45:24 1080

原创 Jemeter--关联接口压测

可以发现,接口http1、http2、http3是并发依次调用的,即在不同线程里是依次调用的,而且csv数据由线程共享的,不同线程不会取同一行的数据。

2024-07-04 17:50:53 1625

原创 Jemeter--独立变参接口压测

可以发现数据库的sql会重复执行(可以用来压测sql),不同线程也会取到相同的值,对于压测接口数据重复没有影响的话可以直接使用。但是,对于要求值唯一性的接口比如下单、复核等是有影响的。解决方式也比较麻烦,一个是写脚本,不同的线程执行sql的数据范围不同,获取遍历器的范围不同。另一个是复制多个线程组,每个线程组自定义 sql查询和ForEach遍历器。(使用csv当作数据源就没有这种问题了)csv方式可以做到多个线程共享数据,并发执行且不会有重复的请求(取决于csv文件的数据是否有重复)

2024-07-04 16:22:39 783

原创 Jemeter--独立不变参接口压测

添加 察看结果数、汇总报告、聚合报告 以及gc Transactions Per Second(每秒事务数 tps 需要添加额外扩展jar,网上找找都有的)设置自己需要的压测对应参数,比如说 30个线程,ramp-up 5s中线程全部启动完成,持续压测30分钟(30*60)可以发现,接口性能比较差,而且很不稳定,最高30 tps 最低只有2、3tps。可以放入一些公共头,比如token之类的,线程组内所有http都可以使用。右击线程组,添加->配置元件->hhtp信息头管理器。右击压测计划,选择线程组。

2024-07-04 15:04:50 433

原创 【多维动态规划】Leetcode 221. 最大正方形【中等】

时间复杂度:O(m * n),其中 m 是矩阵的行数,n 是矩阵的列数,需要遍历矩阵中的每一个元素。空间复杂度:O(m * n),使用了一个大小为 m * n 的 dp 数组。

2024-06-28 13:29:35 567

原创 【多维动态规划】Leetcode 97. 交错字符串【中等】

dp[i-1][j] 表示 s3 的前 i + j - 1 个字符可以通过 s1 的前 i-1 个字符和 s2 的前 j 个字符交错组成。同理,如果 dp[i][j-1] 为真且 s2[j-1] == s3[i + j - 1],则 dp[i][j] = true。如果 dp[i-1][j] 为真且 s1[i-1] == s3[i + j - 1],则 dp[i][j] = true。如果 s1 的第 i 个字符 s1[i-1] 等于 s3 的第 i + j 个字符 s3[i + j - 1],

2024-06-28 11:36:22 841

原创 【多维动态规划】Leetcode 63. 不同路径 II【中等】

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。:3x3 网格的正中间有一个障碍物。

2024-06-27 14:07:33 538

原创 【多维动态规划】Leetcode 120. 三角形最小路径和【中等】

相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1。为了找到从顶部到底部的最小路径和,可以使用动态规划(Dynamic Programming, DP)方法。输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。输入:triangle = [[-10]]

2024-06-27 13:46:32 387

原创 【技巧】Leetcode 190. 颠倒二进制位【简单】

在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。因此,在 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。就是把n的低位加入到result的低位,然后result不断左移把低位,n不断右移把高位变低位,逐位反转。可以从输入的最低位开始,将其移动到输出的最高位,然后依次处理每一位,直到所有位都被处理完。n >>= 1:将 n 右移一位,准备处理下一位。

2024-06-25 11:54:03 847

原创 【数学】Leetcode 50. Pow(x, n)【中等】

快速幂算法的基本思想是利用幂的二分性质,将幂次分解成较小的幂次,减少乘法次数。实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。解释:2-2 = 1/22 = 1/4 = 0.25。输入:x = 2.00000, n = 10。输入:x = 2.00000, n = -2。输入:x = 2.10000, n = 3。输出:1024.00000。输出:9.26100。输出:0.25000。

2024-06-25 11:20:38 473

原创 【数学】Leetcode 69. x 的平方根【简单】

不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。给你一个非负整数 x ,计算并返回 x 的 算术平方根。使用牛顿迭代法通过逐步逼近来找到平方根。

2024-06-21 13:49:39 403

原创 【数学】Leetcode 172. 阶乘后的零【中等】

时间复杂度:O(log n),因为我们每次将 powerOf5 乘以 5,直到它超过 n,循环的次数是log 5(n)。对于每一个数字i(从 1 到 n),统计它包含的因子 5 的数量。在阶乘中,因子 2 的数量总是多于因子 5 的数量,因此尾随零的数量由因子 5 的数量决定。= n * (n - 1) * (n - 2) * …n/5 的结果,然后计算n/5/5即n/25 的结果,依此类推,直到n/5的k次方为 0。1、100/5=20 表示从 1 到 100 之间有 20 个数是 5 的倍数。

2024-06-21 13:25:27 762

原创 【技巧】Leetcode 201. 数字范围按位与【中等】

给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。可以通过不断右移操作,找到左端点和右端点的共同前缀(非共同前缀&的结果一定是0),记录右移的次数,最后将共同前缀左移回原来的位置。在一个范围内进行按位与操作时,如果这个范围跨越了多个2的幂次方区间,那么最终的结果中,这些幂次方位上的所有位都将变为0。5 & 6 & 7 = 100 (即 只有相同前缀的数字保留了,其他位都是0)

2024-06-19 11:20:18 736

原创 【数学】Leetcode 66. 加一【简单】

对数组进行处理,将表示的整数加一。由于数组中每个元素都只存储一个数字,需要从数组的末尾开始逐位处理进位问题。如果所有位都处理完之后仍有进位(例如 999 + 1 变成 1000),需要在数组最前面插入一个 1。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。输入:digits = [1,2,3]解释:输入数组表示数字 123。输出:[1,2,4]

2024-06-19 10:35:22 395

原创 Kubernetes Dashboard

使用上述命令生成的自签名证书 k8s.test.crt 和私钥 k8s.test.key 是自签名的证书,其安全性在开发或测试环境中通常是可以接受的,但不会被主流浏览器(如Chrome、Firefox、Edge等)视为安全,因为它们未经公共颁发机构(CA)的认证和签名。在开发或测试环境中,可以使用这样的自签名证书来进行测试和开发工作。它生成的是一个 X509 格式的证书,有效期 365 天,私钥是 RSA2048 位,摘要算法是 SHA256,签发的网站是“k8s.test”。

2024-06-18 18:47:42 1546

原创 【数学】Leetcode 9. 回文数【简单】

解释:从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。输入:x = -121。输入:x = 121。

2024-06-18 11:32:19 375

空空如也

空空如也

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

TA关注的人

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