自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java stream 中的一些坑

toMap。

2024-08-01 08:36:19 343

原创 spring 单元测试注解

TestPropertySource("classpath:application.properties") //配置文件注入 @ContextConfiguration(classes=AsposeWordToHtml.class)

2024-06-13 08:25:08 474 3

原创 jvm调优常用命令

查看gc次数:jstat -gcutil 28354 1000 10。

2024-05-22 08:33:15 156

转载 RDS for MySQL CPU 性能问题分析

RDS for MySQL CPU 性能问题分析 RDS for MySQL CPU 使用率高是使用 RDS for MySQL 实例过程中比较常见的一类性能问题。由于实例 CPU 资源打满会直接导致业务受损,且问题发生过程迅速、临界时间短 统计采集困难、问题发生后统计指标呈反向曲线,加之日常运维过程中问题征兆容易被忽视,非常容易导致用户体感问题突然性强烈,因此在这里我们对 RDS for MySQL 的 CPU 使用率高的原因做一个比较详细的分析说明。

2024-04-26 14:42:17 89

转载 MySQL活跃线程数高问题

活跃线程数或活跃连接数是衡量MySQL负载状态的关键指标,通常来说一个比较健康的实例活跃连接数应该低于10,高规格和高QPS的实例活跃连接数可能20、30,如果出现几百、上千的活跃连接数,说明出现了SQL堆积和响应变慢,严重时会导致实例停止响应,无法继续处理SQL请求。的状态,在DDL prepare和commit阶段,DDL语句需要获取MDL锁,如果表上有未提交事务或慢SQL,会阻塞DDL操作,DDL操作又会阻塞其他的SQL,最终导致活跃线程数升高。,可以查看实例的活跃线程数监控信息。

2024-04-26 09:19:15 158

转载 mysql cpu占用高问题排查

系统执行应用提交查询(包括数据修改操作)时需要大量的逻 辑读,(逻辑 IO,执行查询所需访问的表的数据行数),需要消耗大量的 CPU 资源以维护从存储系统读取到内存中的数据一致性。造成逻辑读高的原因,很可能是异常SQL,扫描的数据行数过多导致。如果QPS比较高,逻辑读不高,慢SQL也不是系统的瓶颈,QPS和cpu使用率的变化曲线吻合,这时候优化的余地就不高了,可以从实例规格、应用架构方面进行考虑。QPS比较高,每秒SQL的语句执行次数高,业务量上来,处于业务的高峰期,用户连接数增加,访问量增加。

2024-04-26 09:15:35 291

转载 RDS实例的性能测试报告----基础总结篇

一般情况下:有慢SQL的情况,首先优化慢SQL,针对慢SQL主要注意查询多少数据和返回多少数据,如果查询的数据跟反回的数据都比较大,而且执行时间秒级别特别长,很有可能是慢SQL;没有慢SQL,或者慢SQL不是性能主导原因的话,可以考虑实例的规格配置和实例的架构,比如增加主实例的规格配置,增加只读实例缓解主实例的压力等。如果QPS比较高,逻辑读不高,慢SQL也不是系统的瓶颈,QPS和cpu使用率的变化曲线吻合,这时候优化的余地就不高了,可以从实例规格、应用架构方面进行考虑。每秒的事务数在10000以上。

2024-04-25 17:22:29 28

转载 linux挂载新磁盘

红框圈中的即是本次要挂载的磁盘,与 /dev/sda 和 /dev/sdb 相比,其没有下方的 /dev/sda1 等信息,代表 /dev/sdc 磁盘并没有进行过分区操作,是一个新加的硬盘。512 表示一个柱面上的扇区数量 6、【Sector size (logical/physical): 512 bytes / 512 bytes】:表示一个扇区的大小是512 字节。/dev/vgnew/lvnew 为逻辑卷的固定格式:/dev/卷组名/逻辑卷名,具体可通过 lvdisplay 命令进行确定。

2024-04-25 10:02:04 26

转载 Mysql主从同步在线实施步骤【适合大数据库从库配置】

MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一,但比较适合在新实例中实施,对于较大的数据库则存在停机等不可接受的问题,所以该方式并非理想的选择。使用innobackupex 则可以快速轻松的构建或修复mysql主从架构,该方式的好处是对主库无需备份期间导致的相关性能压力及锁表的问题。6.把prepare好的备份目录拷贝回数据目录(注意:可先备份原来数据库目录,拷贝后会生成数据库目录)【事实证明这一步不用也可以】9.进入从数据库,配置从的主库。从:10.8.8.72。

2024-04-15 08:55:18 51

转载 不停止MySQL服务增加从库的两种方式

一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长。另一种是通过xtrabackup工具备份主库,恢复到从库,xtrabackup是物理备份,备份速度快,不锁表。--master-data:默认等于1,将dump起始(change master to)binlog点和pos值写到结果中,等于2是将change master to写到结果中并注释。此时,从库现在和新装的一样,继续前进!

2024-04-15 08:50:46 582

转载 使用 RDS for MySQL 配置到自建数据库的主从复制

出于数据容灾、ETL、异地数据访问等目的,可能需要基于 RDS for MySQL 实例,搭建到自己线下MySQL实例的主从复制。这篇文章将给出简单的操作步骤,供大家参考。由于要使用GTID特性,因此要求MySQL版本>=5.6.将从实例的 IP 地址加入主实例的 IP 白名单中。本例以 mysqldump 工具为例。MySQL 安装包和安装方法请参见。修改从实例 mysql 配置文件。停止从实例 mysql 服务。将主实例数据全量同步到从实例。登录数据库,设置同步选项。

2024-04-15 08:45:23 103

原创 mysql主从复制(同步阿里云的RDS至自建数据库)

replicate-do-db = exampledb //需要同步的数据库。replicate-ignore-db = mysql //不需要同步的数据库。replicate-ignore-db = information_schema //不需要同步的数据库。replicate-ignore-db = performance_schema //不需要同步的数据库。

2024-04-12 15:47:34 649

原创 ElasticSearch 常用操作

【代码】ElasticSearch 常用操作。

2024-04-11 11:13:56 80

原创 elasticSearch mapping设计

"guid": {},},},},},},},},},},},},},},},},},},],],],

2024-04-10 17:06:34 636

转载 基于Apache ShardingSphere的核心业务分库分表实践

根据业界经验,分库分表有以下四种常见形式:垂直分表——大表拆小表,基于字段进行,将一些不常使用或长度较大字段拆分成扩展表;垂直分库——基于业务边界进行数据库层面的拆分,解决单库的性能瓶颈;水平分表——横向分表,将表中的数据行按照一定规律分布到不同的表中,降低单表数据量,优化查询性能,但是库级别还存在瓶颈;水平分库分表——在水平分表基础上,将数据进一步分布到不同的库中,有效缓解单机和单库的性能瓶颈和压力,突破IO、连接数、硬件资源的瓶颈;

2024-04-07 16:15:30 88

转载 一次难得的分库分表实践

最后我们还需要做一步历史数据归档的操作,将 N 个月之前的数据要定期迁移到HBASE之类存储,保证MySQL中的数据一直保持在一个可接受的范围。而归档数据的查询便依赖于大数据提供服务。本次分库分表是一次非常难得的实践操作,网上大部分的资料都是在汽车出厂前就换好了轮胎。而我们大部分碰到的场景都是要对高速路上跑着的车子换胎,一不小心就“车毁人亡”!作者:crossoverJie链接:https://juejin.cn/post/6844903908360323079来源:稀土掘金。

2024-04-07 15:11:52 30

转载 每日 3000万订单的社区电商要如何分库分表

分库是指在表数量不变的情况下对库进行切分。举例:如下图,数据库A 中存放了 user 和 order 两张表,将两张表切分到两个数据库中,user表放到 database A,order表放到 database B。​编辑两种方案的核心思想都是类似的,都是将分库分表的逻辑进行抽象封装,业务无需关注分库分表的实现细节,只需按照规则进行简单的配置和开发,就能正常的使用分库分表。两者各有优劣,客户端模式比较轻量,性能也会比较好;代理模式需要部署额外的服务器,所以对于该服务器的稳定性和性能等都需要保障。

2024-04-07 14:27:28 268 1

转载 彻底搞懂 HTTP 3XX 重定向状态码和浏览器重定向

最近好好研究了一下 HTTP 的 3XX 状态码,发现这里面涉及到的知识点还挺多的,很多在我们日常开发过程中也会用到,于是就想通过这篇文章来和大家聊一聊它们的含义以及应用场景。3XX 状态码是关于重定向的,常见的状态码有:301,302,303,304,307 和 308。这篇文章主要分析永久重定向和临时重定向相关的状态码,至于其他重定向就不在这里细讲了。

2024-01-02 14:13:48 2166

转载 真正“搞”懂HTTP协议08之重定向

其实关于重定向,最核心的就是301和302了,大家一定要会,没啥好说的。重定向在一定程度上提供了一定场景下的应用解决方案,但是其实也会带来一定的问题,比如,只要重定向就一定会发送一次额外的请求,造成性能的浪费。另外要格外注意的就是循环跳转的问题。本篇的东西不多,那就到这里啦,学习这么无聊,下一篇我们来吃点点心。

2024-01-02 11:18:44 340

原创 sql注入

"38356'or '1'--+'"

2024-01-02 10:07:14 432

转载 HTTP请求中的referrer和Referrer-Policy

有些使用了https的网站,可能在URL中使用一个参数(sid)来作为用户身份凭证,而又需要引入其他https网站的资源,这种情况,网站肯定不希望泄露用户的身份凭证信息。当https网站需要引入不安全的http网站的资源或者有链接要跳转到http网站时,这时候将https源网站的URL信息传过去也是不太安全的。是完整的URL信息,该URL带了很多敏感数据比如加密后的token,sessionID等,长度特别长,请求头中的cookie和请求的URL也带着很大块的信息,最终我们决定让。所谓同源网站,是协议、

2023-12-29 14:05:41 1105

原创 spring-aop

cglib,使用MethodProxy时生成2个代理对象,一个针对target,一个针对proxy,继承FastClass;jdk,第17次开始,针对方法生成代理对象,直接调用原始方法;

2023-12-28 20:03:06 402

原创 web安全,常见的攻击以及如何防御

XSS即Cross Site Scripting(跨站脚本攻击),攻击者通过各种方式将恶意代码注入到用户的页面中,这样就可以通过脚本进行一些操作。以后,基本就杜绝了 CSRF 攻击。当然,前提是用户浏览器支持 SameSite 属性。(1)为了防止这种攻击,表单一般都带有一个随机 token,告诉服务器这是真实请求。CSRF即Cross-site request forgery(跨站请求伪造)

2023-12-27 18:55:19 795

转载 cookie属性

Path是Cookie的有效路径,和Domain类似,也对子路径生效,如Cookie1和Cookie2的Domain均为a.com,但Path不同,Cookie1的Path为 /b/,而Cookie的Path为 /b/c/,则在a.com/b页面时只可以访问Cookie1,在a.com/b/c页面时,可访问Cookie1和Cookie2。Max-age也是Cookie的有效期,但它的单位为秒,即多少秒之后失效,若Max-age设置为0,则立刻失效,设置为负数,则在页面关闭时失效。

2023-12-27 17:50:51 44

原创 maven构建单个模块,遇到错误:Could not find the selected project in the reactor

pl 参数用于指定要构建的子模块,可以通过指定子模块的 artifactId 或者模块路径来指定。在命令中使用 -pl my-submodule 表示只构建名为 my-submodule 的子模块。-am 参数用于自动构建依赖的模块。如果当前构建的模块依赖于其他模块,使用 -am 参数可以让 Maven 自动构建这些依赖的模块。在命令中使用 -am 表示构建所有依赖的模块。

2023-12-18 14:48:16 3110

原创 List判断是否存在重复的数据值

/去重比较小技巧1。//去重比较小技巧2。

2023-12-05 14:44:44 1114

原创 行表的行转换为头表的列

SELECTCONCAT(type,typeh.id,

2023-12-01 11:27:19 92

转载 单元测试实践(SpringCloud+Junit5+Mockito+DataMocker)

目前我们的项目中,单元测试的应用还在第一期,但是投入在上面的时间和精力,实际上到实际开发时间的2-3倍。因为涉及到基础框架的搭建,新框架的引入整合,底层开发编写测试代码的审核,团队的培训等等。我预计在后期,成熟的框架和流程支持下,覆盖核心业务代码的单元测试耗时应该能到实际开发工时的50%-80%左右。但是这部分的投入是能够减少测试以及线上的问题发生的概率,节省了修复的时间。

2023-11-30 23:18:20 421

转载 基于 Jenkins、Gitlab、Harbor、Helm 和 Kubernetes 的 CI/CD(二)

直接 upgrade 是不是就可以达到应用更新的结果了。我们是不是只需要将上面关于 api 服务使用的镜像用我们这里 Jenkins 构建后的替换掉就可以了,这样我们更改上面的最后运行 Helm当然我们可以将需要更改的值都放入一个 YAML 之中来进行修改,我们这里通过--set。

2023-11-29 01:17:54 91

转载 Kubernetes Helm 初体验

Helm这个东西其实早有耳闻,但是一直没有用在生产环境,而且现在对这货的评价也是褒贬不一。正好最近需要再次部署一套测试环境,对于单体服务,部署一套测试环境我相信还是非常快的,但是对于微服务架构的应用,要部署一套新的环境,就有点折磨人了,微服务越多、你就会越绝望的。虽然我们线上和测试环境已经都迁移到了kubernetes环境,但是每个微服务也得维护一套yaml文件,而且每个环境下的配置文件也不太一样,部署一套新的环境成本是真的很高。如果我们能使用类似于yum的工具来安装我们的应用的话是不是就很爽歪歪了啊?

2023-11-29 01:06:39 47

转载 Kubernetes使用Prometheus搭建监控平台

Prometheus是SoundCloud开源的一款开源软件。它的实现参考了Google内部的监控实现,与源自Google的Kubernetes结合起来非常合适。另外相比influxdb的方案,性能更加突出,而且还内置了报警功能。它针对大规模的集群环境设计了拉取式的数据采集方式,你只需要在你的应用里面实现一个metrics接口,然后把这个接口告诉Prometheus就可以完成数据采集了。未来将进一步完善Prometheus增加更多的监控数据源使用AlertManager实现异常提醒(DONE)上面用的。

2023-11-29 01:03:06 82

转载 Kubernetes Deployment滚动升级

我们k8s集群使用的是1.7.7版本的,该版本中官方已经推荐使用Deployment代替(rc)了,DeploymentRecreate删除现在的Pod,重新创建;滚动升级,逐步替换现有Pod,对于生产环境的服务升级,显然这是一种最好的方式。

2023-11-29 01:01:28 93

转载 手动搭建高可用的kubernetes 集群

export NODE_NAME=etcd01 # 当前部署的机器名称(随便定义,只要能区分不同机器即可)$ export NODE_IP=192.168.1.137 # 当前部署的机器IP$ export NODE_IPS="192.168.1.137 192.168.1.138 192.168.1.170" # etcd 集群所有机器 IP$ # etcd 集群间通信的IP和端口。

2023-11-29 00:50:39 110

转载 在 Kubernetes 上安装 Gitlab CI Runner

从 Gitlab 8.0 开始,Gitlab CI 就已经集成在 Gitlab 中,我们只要在项目中添加一个文件,然后添加一个Runner,即可进行持续集成。在介绍 Gitlab CI 之前,我们先看看一些 Gitlab CI 的一些相关概念。

2023-11-29 00:46:32 147

转载 在 Kubernetes 上安装 Gitlab

Gitlab官方提供了 Helm 的方式在 Kubernetes 集群中来快速安装,但是在使用的过程中发现 Helm 提供的 Chart 包中有很多其他额外的配置,所以我们这里使用自定义的方式来安装,也就是自己来定义一些资源清单文件。Gitlab。

2023-11-29 00:44:56 145

转载 Pod 中挂载单个文件的方法

挂载数据的时候,如果挂载目录下原来有文件,挂载后将被覆盖掉。有的时候,我们希望将文件挂载到某个目录,但希望只是挂载该文件,不要影响挂载目录下的其他文件。部分,如果 subPath 是一个文件夹的话就会去创建这个文件夹,如果是文件的话就可以进行单独挂载了。可以看到 nginx.conf 文件正是我们上面的 ConfigMap 对象中的内容,验证成功。6.原理: 下面是绑定 subPath 的源码部分,我们可以看到下面的。5.验证: 下面是我们生成的 Pod,看状态可以看出已经正常运行了。

2023-11-29 00:43:00 142

转载 kubernetes 持久化存储(二)

前面我们和大家一起学习了一些基本的资源对象的使用方法,前面我们也和大家讲到了有状态的应用和对数据有持久化的应用,我们有通过hostPath或者emptyDir的方式来持久化我们的数据,但是显然我们还需要更加可靠的存储来保存应用的持久化数据,这样容器在重建后,依然可以使用之前的数据。但是显然存储资源和 CPU 资源以及内存资源有很大不同,为了屏蔽底层的技术实现细节,让用户更加方便的使用,Kubernetes便引入了PV和PVC两个重要的资源对象来实现对存储的管理。

2023-11-29 00:37:27 25

转载 kubernetes 持久化存储(一)

前面我们和大家一起学习了一些基本的资源对象的使用方法,前面我们也和大家讲到了有状态的应用和对数据有持久化的应用,我们有通过hostPath或者emptyDir的方式来持久化我们的数据,但是显然我们还需要更加可靠的存储来保存应用的持久化数据,这样容器在重建后,依然可以使用之前的数据。但是显然存储资源和 CPU 资源以及内存资源有很大不同,为了屏蔽底层的技术实现细节,让用户更加方便的使用,Kubernetes便引入了PV和PVC两个重要的资源对象来实现对存储的管理。

2023-11-29 00:28:24 37

转载 Kubernetes RBAC 详解

前面两节课我们学习了KubernetesConfigMap和Secret,其实到这里我们基本上学习的内容已经覆盖到Kubernetes中一些重要的资源对象了,来部署一个应用程序是完全没有问题的了。RBAC- 基于角色的访问控制。RBAC使用API Group 来实现授权决策,允许管理员通过 Kubernetes API 动态配置策略,要启用RBAC,需要在 apiserver 中添加参数,如果使用的kubeadm安装的集群,1.6 版本以上的都默认开启了RBAC。

2023-11-29 00:26:09 58

转载 基于 kubernetes 的动态 jenkins slave基于 Jenkins 的 CI/CD(一)

前面的课程中我们学习了持久化数据存储在Kubernetes中的使用方法,其实接下来按照我们的课程进度来说应该是讲解服务发现这一部分的内容的,但是最近有很多同学要求我先讲解下 CI/CD 这块的内容,所以我们先把这块内容提前来讲解了。提到基于Kubernete的CI/CD,可以使用的工具有很多,比如JenkinsGitlab CI已经新兴的drone之类的,我们这里会使用大家最为熟悉的Jenkins来做CI/CD的工具。

2023-11-29 00:21:19 225

空空如也

空空如也

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

TA关注的人

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