自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

点滴记忆,分享成长之路

点滴记忆,培养兴趣,积累经验,成长自我,分享快乐!

  • 博客(116)
  • 资源 (4)
  • 收藏
  • 关注

原创 从零搭建Prometheus到Grafana告警推送

本文主要介绍了使用Prometheus怎么监听应用服务和中间件。当使用Grafana时,怎么优雅快速的导入仪表盘以及设置阈值触发告警-将告警信息推送到邮件或者钉钉

2024-07-02 20:12:51 941

原创 防止跨站脚本攻击XSS之Antisamy

本文重点是介绍SpringBoot3.X和Antisamy的整合细节

2024-06-29 10:05:49 750

原创 日志可视化监控体系ElasticStack 8.X版本全链路实战

本博文将详细阐述如何通过一系列技术栈——包括Filebeat、Logstash、Elasticsearch(ES)和Kibana——来处理、索引、存储并可视化nannanw-demo.log日志文件的整个过程。将详细介绍这些步骤,确保您能够轻松地检索、分析和洞察日志文件中的重要信息。

2024-06-28 20:33:45 1184

原创 Arthas常用命令之trace、watch、jad、mc

阿里开源的Java诊断工具,它可以在运行时对Java应用程序进行动态诊断和调试。

2023-08-04 19:32:52 5794

原创 TCP洪水攻击Ru侵和结果分析解决方案

TCP洪水攻击介绍洪水攻击是一种网络攻击,它使用伪造的TCP连接请求来淹没服务器的资源,从而使服务器无法响应正常的用户请求这种攻击通过不断地发送同步(SYN)连接请求到服务器,而服务器会尝试建立连接,当服务器回复 SYN+ACK 报文后,攻击者不会发送确认(ACK)那SYN队列里的连接则不会出队,逐步就会占满服务端的 SYN半连接队列服务器会一直等待,耗尽服务器的资源,最终就是服务器不能为正常用户提供服务(想了解特别详细的可以看看TCP三次握手的流程)

2023-05-04 21:15:40 1280 1

原创 生产环境消失的进程如何排查

进程占用内存很大,会导致内存消耗完,为解决该问题操作系统中运用Swap技术,拿部分硬盘空间来充当内存使用,作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用换页机制操作系统把物理内存中放不下的数据临时放到磁盘上,等到需要的时候再放回到物理内存中,提供超过物理内存容量的空间访问数据被swap换出物理内存是有限资源,运行多进程时并不是每个进程都活跃,系统会启动 内存页面置换 (操作系统的页面置换算法)将长时间未使用的物理内存页帧放到swap分区,让出资源给其他进程。

2023-03-12 18:51:30 565

原创 CPU平均负载高问题定位分析

单位时间内 系统处于【可运行状态】和【不可中断状态】的平均进程数,就是平均活跃进程数【可运行状态】正在使用 CPU 或者正在等待 CPU 的进程用 ps aux命令看到的,处于 R 状态(Running 或 Runnable)的进程【不可中断状态】正处于内核态关键流程中的进程,且流程不可打断的,比如 等待硬件设备的 I/O 响应,为了保证数据的一致性,进程向磁盘读写数据时,在得到磁盘响应前是不能被其他进程或者中断打断的。

2023-03-12 11:22:42 1910

原创 ClickHouse高可用集群分片-副本实操(四)

数据分片-允许多台机器/节点同并行执行查询,实现了分布式并行计算分片间的数据是不同的,不同的服务器存储同一张表的不同部分,作用是为了水平切分表,缓解单节点的压力。

2023-02-25 19:47:24 2264

原创 学习(mianshi)必备-ClickHouse高性能查询/写入和常见注意事项(五)

全称 Log-Structured Merge-Tree 日志结构合并树,但不是树,而是利用磁盘顺序读写能力,实现一个多层读写的存储结构是一种分层,有序,面向磁盘的数据结构,核心思想是利用了磁盘批量的顺序写要远比随机写性能高出很多大大提升了数据的写入能力,但会牺牲部分读取性能为代价HBase、LevelDB、ClickHouse这些NoSQL存储都是采用的类LSM树结构在 NoSQL 系统里非常常见,基本已经成为必选方案, 为了解决快速读写的问题去设计的可以分两个部分理解。

2023-02-25 19:46:10 2115

原创 SpringBoot2.X整合ClickHouse项目实战-从零搭建整合(三)

Springboot2.X整合ClickHouse

2023-02-19 19:54:09 2892 4

原创 Springboot整合分布式链路追踪SkyWalking之探针使用和链路采集实战(二)

本篇主要展示SkyWalking和Springboot项目的整合以及探针链路采集展示

2023-01-28 11:20:31 1871 3

原创 分布式链路追踪SkyWalking快速入门之环境安装界面指标介绍(一)

本篇简单介绍SkyWalking是什么,特点和整体架构组成,使用docker安装部署,页面指标项的介绍

2023-01-28 11:19:58 2245

原创 分布式链路追踪SkyWalking进阶实战之RPC上报和WebHook通知(三)

本篇主要介绍SkyWalking性能剖析,慢业务代码定位以及通知告警

2023-01-28 11:19:58 1898 3

原创 ClickHouse常见SQL语法和常见合并数引擎Demo(二)

分区是表的分区,把一张表的数据分成N多个区块,分区后的表还是一张表,数据处理还是由自己来完成PARTITION BY,指的是一个表按照某一列数据(比如日期)进行分区,不同分区的数据会写入不同的文件中建表时加入partition概念,可以按照对应的分区字段,允许查询在指定了分区键的条件下,尽可能的少读取数据注意:不是所有的表引擎都可以分区,合并树(MergeTree) 系列的表引擎才支持数据分区,Log系列引擎不支持。...

2022-08-12 10:51:37 2864 3

原创 ClickHouse快速安装-可视化工具连接-创建第一个ck库表(一)

OLAP是什么,以及快速安装ClickHouse(容器化部署),CK可视化工具的下载链接使用以及创建第一个CK数据库和表,然后新增数据,浏览3分钟即可快速掌握这些知识

2022-08-12 10:44:40 3303

原创 elasticsearch7.x 集群的搭建和分片设置

es7.x集群搭建,重要参数设置以及分片的更改

2022-07-06 21:58:26 3370 1

原创 elasticsearch7.x 索引别名使用和重新建索引过程步骤

es重建索引步骤

2022-07-06 21:52:59 2510

原创 你知道小伙伴们的阿里云服务为什么会被ru侵,是怎么ru侵的吗?

一、什么是DDOS攻击二、自己购买的Linux服务器是怎么被挖矿的三、你知道SSH的原理吗四、SSH免密登录远程Linux云主机流程解析五、SSH免密登录远程Linux云主机实战六、SSH免密登录远程Linux云主机实战七、阿里云ECS服务器安装Redis6-入侵环境一、什么是DDOS攻击分布式拒绝服务攻击(Distributed Denial of Service,简称DDoS)是指处于不同位置的多个攻击者同时向个或数个目标发动攻击,或者一个攻击者控制了位于不...

2022-04-19 11:14:15 4800 13

原创 分布式调度XXL-Job整合Springboot2.X实战操作

单机定时任务: 单机的容易实现,但应用于集群环境做分布式部署,就会带来重复执行 解决方案有很多比如加锁、数据库等,但是增加了很多非业务逻辑分布式调度: 把需要处理的计划任务放入到统一的平台,实现集群管理调度与分布式部署的定时任务 叫做分布式定时任务 支持集群部署、高可用、并行调度、分片处理等

2022-04-08 10:48:02 1682 11

原创 Mysql的事务、隔离级别、脏读、幻读以及数据落盘步骤

checkpoint:随着时间的积累,redo Log会变的很大很大。如果每次都从第一条记录开始恢复,恢复的过程就会很慢。为了减少恢复的时间,就引入了checkpoint机制。定期将databuffer的内容刷新到磁盘datafile内,然后清除checkpoint之前的redo log。

2022-03-30 22:17:10 1440 11

原创 Redis4+布隆过滤器+lua实现方式、google布隆过滤器实现方式

本博文介绍了布隆过滤器的使用场景,以及google布隆过滤器和redis布隆过滤器分别的使用方法。当布隆过滤器说某个值存在时,这个值可能不存在;当它说不存在时,那就肯定不存在流量攻击:故意访问不存在的数据,导致程序不断访问DB数据库的数据(缓存穿透-解决方式将空值加到缓存中,防止大量攻击到db)

2022-03-28 10:42:11 2090 9

原创 Mysql高性能索引

导读:本博文讲解了索引是什么和索引的底层原理,提到了BTREE和B+TREE hash底层实现以及mysql选错索引的原因和解决方式。同时涵盖高频面试题之InnoDB索引和MyIsam索引对比区别,唯一索引和普通索引的区别。

2022-03-21 23:06:02 1083 9

原创 Mysql千万级别数据如何做分页

一、先来看看对SQL优化的理解SQL优化可分为两个部分,一个是设计阶段,另一个是查询阶段设计阶段运用到的优化: 使用适当的数据库列类型和大小(需要保证表设计的字段长度足够使用,且最小。比如性别gender字段可以用tinyint(1)即可)。小点的话,可以节省硬盘空间和检索时间。 尽量从设计上采用单表查询解决业务问题。 在适当字段加入索引,能用唯一索引用唯一索引(性能比普通索引高)。查询阶段涉及的优化: 尽可能不用select *:让优化器无法完成索引覆盖扫...

2022-03-20 21:13:55 4737 11

原创 并发编程ReentrantLock实现原理和Synchroized区别

ReentrantLock是Lcok默认实现方式之一,它是基于AQS(AbstractQueuedSynchronizer 队列同步器)实现的,它默认是通过非公平锁实现的,在它的内部有一个state的状态字段用于表示锁是否被占用,如果是0则表示未被占用,此时线程就可以把state改成1,并成功获得了锁,而其他未获得锁的线程只能去排队等待获取资源。首先来看下ReentrantLock的两个构造函数: public ReentrantLock() { sync = new Non

2022-03-19 21:35:29 370 5

原创 Redis6.X高可用之Cluster集群和分片

导读:有了哨兵为什么还要有集群呢?Sentinel解决了主从架构故障自动迁移的问题,但是Master主节点的写能力和存储能力依旧受限,使用Redis的集群cluster就是为了解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器

2022-03-17 22:44:28 397 1

原创 这样做几步才可以最大化的保证Redis6.X高可用(主从、哨兵)

导读:高可用有2个含义:一个是数量尽量不丢失,二是保证服务尽可能的可用。AOF和RDB保证了数据尽量不丢失,那么本博文通过阿里云服务器搭建Redis6.x主从+哨兵模式尽可能的保障服务故障自动切换可用。

2022-03-16 22:12:59 1590 10

原创 Redis6.X服务端config和key淘汰算法

问题一、redis的key配置了过期时间,这个是怎么被删除的?问题二、redis数据明明过期了,怎么还占用着内存?问题三、Redis 就只能用 10G,你要是往里面写了 20G 的数据,会发生什么?淘汰哪些数据

2022-03-15 21:11:33 324 1

原创 分布式缓存Redis6.x持久化配置实战-AOF和RDB

就是rdb和aof一起用,直接将rdb持久化的方式来操作将二进制内容覆盖到aof文件中,rdb是二进制,所以很小有写入的话还是继续append追加到文件原始命令,等下次文件过大的时候再次rewrite,默认是开启状态好处 混合持久化结合了RDB持久化 和 AOF 持久化的优点,采取了rdb的文件小易于灾难恢复 同时结合AOF,增量的数据以AOF方式保存了,数据更少的丢失坏处前部分是RDB格式,是二进制,所以阅读性较差数据恢复 先看是否存在aof文件,若存在则先按照aof文件恢复,aof

2022-03-14 10:29:27 1241 6

原创 分布式缓存Redis击穿、雪崩、穿透面试题+SpringCache解决方案

目录一、分布式缓存必考题之缓存击穿+解决方案二、分布式缓存必考题之缓存雪崩+解决方案三、分布式缓存必考题之缓存穿透+解决方案一、分布式缓存必考题之缓存击穿+解决方案缓存击穿 (某个热点key缓存失效了): 缓存中没有但数据库中有的数据,假如是热点数据,那key在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力增大。 和缓存雪崩的区别在于这里针对某一key缓存,后者则是很多key。可以用这种方式来预防: 设置热点数据......

2022-03-12 17:38:16 2207 2

原创 Mysql锁机制之行锁、表锁、死锁

乐观锁用的最多的就是数据的版本记录来体现 version ,其实就是一个标识。例如:update test set a=a-1 where id=100 and a> 0; 对应的version就是a字段,并不一定非得要求有一个字段叫做version,要求的是有这个字段,同时当满足这个条件的时候才会触发

2022-03-10 22:26:46 3893 9

原创 记录一次mysql线上环境主从延迟问题定位到解决

基于row的优缺点在哪里?优势:可以正确复制所有数据的变更,这是最安全的复制格式劣势:生成更多的二进制日志数据,因为基于row的复制会将每行数据的变更都写入二进制日志。利用二进制日志进行备份和恢复的时间也会更长。此外,二进制日志的文件锁也会因为需要更长的时间来写入数据而被持有更久的时间,这可能会影响数据库的并发性能无法直接看到从库中执行的语句,但是可以使用mysqlbinlog工具基于statement的优劣势在哪里?优势:写入日志文件的数据较少。当更新或删除操作涉及多行时,可以大大减

2022-03-08 21:44:58 1080 7

原创 可视化虚拟机工具VisualVM和Jconsole

目录开篇介绍:一、本地Jconsole远程连接阿里云服务二、先看本地Jconsole内存监控验证三、再看本地Jconsole线程验证四、idea -VisualVM插件安装开篇介绍:生产环境中直接排查JVM的话,使用适当的虚拟机监控和分析的工具可以加快我们分析数据、定位解决问题的速度。本博文重点介绍Jconsole和VisualVM工具的使用。一、本地Jconsole远程连接阿里云服务先配置环境变量:export JAVA_OPTS...

2022-03-07 22:48:57 9155 5

原创 微信支付V3版本回调+验签流程

回调验签流程介绍 官方文档 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_4_5.shtml https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_1.shtml注意: 同样的通知可能会多次发送给商户系统,商户系统必须能够正确处理重复的通知 确保回调URL是外部可正常访问的,且不能携带后缀参数

2022-03-05 18:08:01 22415 22

原创 微信V3版本支付下单、查询支付订单状态、订单退款接入正式项目中并引入策略模式实操

本文介绍微信支付中的Native支付方式,版本是APIv3,其中Native和JSAPI的区别如下Native支付:商家在系统中按微信支付协议生成支付二维码,用户扫码拉起微信收银台,确认并完成付款JSAPI支付:商家张贴收款码物料,用户打开扫一扫,扫码后输入金额,完成付款以下内容增加了支付接口调和策略模式的使用,支付的VO类,大家可以参照自己公司的VO字段,需要改动支付的部分业务参数即可。注意:微信支付个人无法对接操作,需要有公司商户账号,一般开发过程中是产品经理或者相关负责人提供。

2022-03-02 22:06:42 4402 17

原创 Nginx从初级到高级的玩法

本博文主要介绍了Nginx从入门到熟悉的玩法,从Nginx快速安装-配置解读-文件服务器的配置-accesslog日志统计挖掘-站点访问量和高频url统计,到Nginx负载均衡玩法-兜底数据返回-浏览器跨域配置-服务端缓存配置-静态资源压缩,再到高级玩法之https认证-OpenResty下载限速-keepAlived高可用,全程实操配置+截图,通俗易懂~

2022-02-28 09:29:05 1724 26

原创 AlibabaCloud微服务下的分布式配置中心Nacos

一、现在微服务的问题配置文件增多,不好维护修改配置文件需要重新发布二、什么是配置中心一句话:统一管理配置, 快速切换各个环境的配置

2022-02-20 18:47:26 643 9

原创 SpringCloud Gateway从搭建到登录鉴权+自定义过滤器

一、什么是微服务的网关和应用场景什么是网关 API Gateway,是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求、鉴权、监控、缓存、限流等功能应用场景 统一接入、智能路由、AB测试、灰度测试、负载均衡、容灾处理 日志埋点(类似Nignx日志)、流量监控、限流处理、服务降级、安全防护 鉴权处理、监控、机器网络隔离主流的网关有:zuul:是Netflix开源的微服务网关,和Eureka,Ribbon,Hystrix等组件配合使用...

2022-02-19 23:31:16 4620 6

原创 Sleuth+Zipkin完成分布式系统链路追踪

一、先抛两个常见的问题微服务调用链路出现了问题怎么快速排查?微服务调用链路耗时长怎么定位是哪个服务?二、链路追踪系统是做什么的分布式应用架构虽然满足了应用横向扩展的需求,但是运维和诊断的过程变得越来越复杂,例如会遇到接口诊断困难、应用性能诊断复杂、架构分析复杂等难题,传统的监控工具并无法满足,分布式链路系统由此诞生核心是将一次请求分布式调用,使用GPS定位串起来,记录每个调用的耗时、性能等日志,并通过可视化工具展示出来注意:AlibabaCloud全家桶还没对应的链路追踪系统,我们使用S

2022-02-19 23:30:42 888

原创 一文带你学会微信V3版本下单支付、退款、关单流程代码实操

本文介绍微信支付中的Native支付方式,版本是APIv3,其中Native和JSAPI的区别如下Native支付:商家在系统中按微信支付协议生成支付二维码,用户扫码拉起微信收银台,确认并完成付款JSAPI支付:商家张贴收款码物料,用户打开扫一扫,扫码后输入金额,完成付款以下博文没有掺杂过多业务逻辑,对象数据都是固定写的,方便将注意力集中在微信支付的接口使用上。正式对接到项目里面,只需要改动支付的部分业务参数即可。微信支付的文档还是很详细的,建议多看几遍,以下博文也都是根据官方文档的描述来操

2022-02-16 09:33:11 13690 26

原创 支付超时订单关单策略之RabbitMQ死信队列方式

延迟消息 订单超时关闭 业界的一些实现方式: .定时任务高精度轮训 .redis监听key过期 .jdk自带的DelayQueue .采用RocketMQ自带延迟消息功能 .RabbitMQ本身是不支持延迟队列的,结合死信队列的特性,就可以做到延迟消息

2022-02-10 21:28:54 3962 3

java执行sql脚本需要Jar包

java执行sql脚本所需要jar包,对应的操作在我的博客中

2013-08-22

sfl4j.1.5.8.zip

日志的jar包,在使用Hibernate的时候,需要加上slf-nop.jar 这个是文档里没有的

2013-05-30

hibernate 配置文件版本所需Jar包

配置文件所需jar包,初学者可以看看我的博客里第一篇文章

2013-05-29

hibernate 注解所需要的jar

配置文件太过麻烦了,企业逐渐的开始使用注解方式

2013-05-29

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

TA关注的人

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