自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Elasticsearch8.x结合OpenAI CLIP模型实现图搜图及文搜图功能

在当今大数据时代,搜索引擎是许多应用的核心组件之一,近年随着大模型以及AI技术的流行,这些技术的结合将会创造出更多的应用场景本博客将介绍如何使用 Elasticsearch8 结合 OpenAI 提供的强大 CLIP 模型构建一个生产环境可用的向量搜索引擎,它不仅能够通过关键字匹配搜索,还可以通过向量相似度搜索,从而实现更智能和灵活的搜索体验,先上效果图。

2023-12-26 17:57:47 1602 2

原创 关于SqlServer高并发死锁现象的分析排查

通过定期对生成环境SqlServer日志的梳理,发现经常会出现类似事务与另一个进程被死锁在资源上,并且已被选作死锁牺牲品,请重新运行该事务的异常简单分析一下原因:在高并发场境下,多个事务同时对某个资源进行持锁 [ 读/写 ] 操作,同时又需要对方释放锁资源,进而出现死锁

2023-02-22 18:06:16 2880 1

原创 k8s进阶-容器探测

容器探测用于检测容器中的应用实例是否正常工作,通过向目前容器周期性发出不同方式的探针,以检测目标实例的健康状态,k8s环境下微服务应用的健康监控是必不可少的环节,本章节也将结合springboot健康检查插件来整合支持k8s的容器探测1、存活探针不会等待就绪性探针成功2、如果就绪态探针实现不正确,可能会导致容器中进程的数量不断上升3、如果要在执行存活探针之前等待,可以使用或4、针对 HTTP 或 TCP 探测,通过将启动探针。

2022-12-31 23:03:51 1491 3

原创 高并发缓存实践之-缓存穿透、缓存雪崩、缓存并发

缓存在我们的应用程序会被大量使用,它给我们的性能带来质的飞跃的同时,也可能会因为使用不当而造成不可挽回的损失,本章节我们就来重点梳理一下由于并发量大而导致的缓存问题的原因和解决方案缓存穿透描述缓存穿透是指查询缓存和数据库中都不存在的数据,特别是在高并发场景下,缓存无法命中,导致每次请求都要穿透到数据库上,造成数据库短时间内承受大量请求而宕机的风险解决方案1、缓存空值,设定失效时间(以不影响具体为务为准,比如30秒),可以防止攻击者使用同一参数进行大量的暴力攻击2、校验过滤请求参数,攻击者

2022-05-04 13:18:11 1171

原创 刨析Spring的@Configuration注解属性proxyBeanMethods原理

Spring框架中有一个出现频次很高的注解@Configuration,特别是在SpringBoot的spring-boot-autoconfigure包中,可以发现每个配置类基本都会加上@Configuration(proxyBeanMethods=false)注解(注:Spring 5.2+),其中proxyBeanMethods属性起到什么作用呢?今天我们就通过源码探究它的底层原理。

2022-02-02 22:26:50 3358

原创 Linux之tcpdump抓包及Wireshark查看分析

tcpdump介绍tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and 、or 、not等逻辑语句tcpdump安装以centos7为例:如果服务器未安装tcpdump,则执行以下命令进行安装yum install tcpdumptcpdump命令参数-i    指定需要抓包的网卡-w    指定数据包信息保存的文件目录,文件格式为*.pcap,方便wireshark分析host   抓取源主机或目的主机的报文port 

2020-05-26 14:18:42 4380

原创 两整数相乘算法

算法需求求两个整数相乘的算法算法分析24 * 13第一步计算4 * 13:4 * 3 = 12(3在个位,不需要补零)4 * 1 = 4(1在十位,需要补1个零)4在个位,则结果不需要补零结果:12 + 4 * 10 = 52第二步计算2 * 13:2 * 3 = 6(3在个位,不需要补零)2 * 1 = 2(1在十位,需要补1个零)2在十位,则结果需要补零结果:(6 +...

2020-03-28 11:44:08 3021

原创 二叉树S型遍历算法

算法需求如下图所示,按照图中的箭头顺序遍历节点算法分析图中每一层节点的迭代顺序都会改变,使用传统的单个队列或单个栈都难以实现,所以我们考虑使用两个栈空间来分别存储正向和逆向的节点,以达到按层换顺的目的我们以第一、二行和第三行为例,初始化时将root节点1压入右栈1、遍历右栈节点1时,按顺序将左子节点3和右子节点2压入左栈(图一)2、对左栈进行出栈操作。取出节点2,将右子节点6压入右栈...

2020-03-15 10:09:46 3692 1

转载 电商系统-微服务架构设计及技术方案选型

简单想象一下,既然是一个电商系统,有用户去购买,就肯定得有一个用户模块,购买什么东西总不是西北风吧,购买肯定是商品吧,省掉购物车,就得有商品模块吧,商品总得有库存吧,库存就暂时跟商品放一起吧,什么仓储物流先别管,就当作是虚拟商品好了,反正题目也没说不能是虚拟商品_,购买成功了,那就必须有订单吧,加个订单模块,下完单总得支付吧,不付钱人家凭什么把东西给你,那就得有个支付模块。简单粗暴,四个模块用...

2020-03-11 17:48:26 5533

原创 谈谈基于Redis分布式锁(下)- Redisson源码解析

前言在之前的文章谈谈基于Redis分布式锁(上)- 手写方案最后我们分析得出手写一个完美的分布式锁方案不是那么容易,而且性能也没法得到保证。而Redisson完美的解决了上述的所有问题,本章节我们将探索一下Redisson的底层原理,通过源码来分析一下Redisson的实现细节Redisson简介Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势...

2020-03-08 16:35:24 1533 4

原创 谈谈基于Redis分布式锁(上)- 手写方案

分布式锁的使用场景单体架构的应用可以直接使用本地锁(Synchronized)就可以解决多线程资源竞争的问题。如果公司业务发展较快,可以通过部署多个服务节点来提高系统的并行处理能力。由于本地锁的作用范围只限于当前应用的线程。高并发场景下,集群中某个应用的本地锁并不会对其它应用的资源访问产生互斥,就会产生数据不一致的问题,所以分布锁就派上了用场。常见的分布式锁应用场景:秒杀活动、优惠券抢购、接口...

2020-03-04 23:21:55 371 1

原创 seata事务【提交】原理及源码分析

回顾在本篇文章开始之前,我们回顾一下seata在AT模式下提交回滚的二个阶段(摘录官网)一阶段Seata通过其JDBC数据源代理对业务SQL进行解析,然后把业务数据在更新前后的数据镜像组织成回滚日志,利用本地事务的ACID特性,将业务数据的更新和回滚日志的写入在同一个本地事务中提交1、解析SQL2、查询前镜像3、执行业务SQL4、查询后镜像5、生成undolog并插入表undo...

2019-08-18 19:25:38 1558 1

原创 seata事务【回滚】原理及源码分析

Seata数据回滚原理及源码分析背景前言场景演示回顾背景Seata在年初开源,一经发布,社区活跃度一路走高,为赶上这一波潮流,于是乎自己也开始了seata的研究之路,具体的demo例子可以参考官网和很多网友一样,本地的demo启动后各种问题随之出现,比如说启动找不到file.conf,代码异常后数据却不回滚等等,因为seata开源时间并不久,所以遇到问题也只能靠自己去调试查看源码去解决前言...

2019-08-14 15:49:37 9148 5

原创 关于JVM参数-XX:SurvivorRatio的理解

关于JVM参数-XX:SurvivorRatio的理解JVM参数中有一个比较重要的参数SurvivorRatio,它定义了新生代中Eden区域和Survivor区域(From幸存区或To幸存区)的比例,默认为8,也就是说Eden占新生代的8/10,From幸存区和To幸存区各占新生代的1/10-XX:SurvivorRatio这里举个例子,如果我们通过设置-Xmn60M来指定新生代分配的空...

2019-01-25 09:56:00 54139 17

原创 Rabbitmq之消息重排序分析

一、场景描述 使用过rabbitmq的同学都知道,客户端在返回Nack时有一个requeue参数,标明是否需要重新排队,没错,的确是这样的。我当时也这么想,可后来进一步思考,到底是放入服务端队列,还是在本地队列呢? 首先确认以下2点: 1、如果是放入服务端队列,那么服务端broker的消息会不断增加,应该不可能 2、消费端断开...

2019-01-03 14:25:22 3186 5

原创 Linu清除Minerd木马

由于最近服务器安装了redis,被恶意程序minerd攻击导致CPU使用率超过90%,网上找了一篇文章很有帮助!操作:一、去掉crontab文件中的有关木马内容:       /var/spool/cron/crontabs/root       /var/spool/cron/root二、Kill守护进程ntp,删除相关文件三、删除木马进程及相关文件四、删除安装文...

2018-05-06 20:20:44 216

空空如也

空空如也

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

TA关注的人

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