- 博客(491)
- 资源 (11)
- 收藏
- 关注
原创 用Elasticsearch搜索匹配功能实现基于地理位置的查询
用Elasticsearch搜索匹配功能实现基于地理位置的查询,查询附近的人,查询沿途加油站,查询沿途充电站方案
2023-11-27 17:34:07
1733
转载 simpread-使用 QueryBuilders、NativeSearchQuery 实现复杂查询
ElasticsearchRestTemplate 是 Spring 封装 ES 客户端的一些原生 api 模板,方便实现一些查询,和 ElasticsearchTemplate 一样,但是目前 spring 推荐使用前者,是一种更高级的 REST 风格 api。废话不多说,先上一个 demo,下面分类具体介绍下。
2023-11-27 15:06:58
1457
转载 Transaction rolled back because it has been marked as rollback-only
那么现在有A和B两个方法,这两个方法都开启了事务,A方法中调用B方法(因为都使用事务,默认的事务传播级别是PROPAGATION_REQUIRED,所以这过程中会使用同一个事务);当执行B方法的时候,B方法抛出异常,这个时候事务就会被标记为仅回滚(因为在B方法中抛出异常,B方法这事务本该是要回滚,所以会将B方法的事务标记为rollback-only);字面上的意思就是:事务已回滚,因为它已被标记为仅回滚,那为什么会标记为仅回滚呢?
2023-10-25 13:40:16
13504
转载 Spring同一个Service类非事务方法调用事务方法事务失效解决方案
同一个Service类中非事务方法调用事务方法,事务会失效失效,这里简单解释一下原因:spring采用动态代理机制来实现事务控制,而动态代理最终都是要调用原始对象的,而原始对象在去调用方法时,是不会再触发代理了!可以理解为同一个类中非事务方法调用方法时用的是当前对象去调用,而不是spring生成的代理对象,所以会导致事务失效。原文链接:https://blog.youkuaiyun.com/shichen2010/article/details/121792816。
2023-10-24 19:03:51
292
原创 解决Springboot集成RabbitMQ不自动生成队列的问题
另外一种方式(若Mq中无相应名称的队列,会自动创建Queue),改为如下。RabbitMQ懒加载模式, 需要配置消费者监听才会创建。使用rabbitAdmin.declareQueue方法。
2023-10-11 14:01:18
3502
1
转载 hibernate Validation 自定义枚举校验 和 固定值校验证
hibernate Validation 自定义枚举校验 和 固定值校验证
2023-09-19 13:29:39
187
转载 SSL/TLS加密技术:证书的格式转换
私钥转化:openssl rsa -inform DER -outform PEM -in key.cer -out privatekey.pem。证书转换:openssl pkcs7 -print_certs -in sm2.trust.p7b -out sm2.trust.pem。证书转化:openssl x509 -inform der -in cert.cer -out certificate.pem。PFX 转换为 PEM : 主要指的是 pkcs12 转换为 PEM(证书链)
2023-09-08 14:56:35
499
原创 SpringBoot中使用Spring integration加Eclipse Paho Java Client 实现MQTT客户端
连接MQTT 5.0协议代理服务器使用单向认证连接MQTT 5.0协议代理服务器,设置了断线自动重连,连接MQTT 5.0协议代理服务器,连接MQTT 3.1.1协议代理服务器
2023-09-01 16:38:18
2323
原创 生成SSL/TLS 自签名证书
可通过以下两种方式获取相关 SSL/TLS 证书:自签名证书:即使用自己签发的证书,由于自签名证书存在较多的安全隐患,因此只建议用于测试验证环境。申请或购买证书:您可以向 Let’s Encrypt (opens new window)或华为云、腾讯云等云厂商申请免费证书,也可以向 DigiCert (opens new window)等机构购买收费证书。对于企业级用户,一般建议申请收费的 OV 及以上类型的证书,以获取更高等级的安全保护。
2023-08-30 10:42:29
2049
1
原创 最新 Kubernetes 常见面试题汇总
Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源平台。它提供了一个可扩展的、高可用的集群,并包含了自动化部署、负载平衡、存储管理、自我修复、自动扩容等功能。
2023-08-23 14:36:46
185
转载 深入分析synchronized 原理和锁膨胀过程
上一篇文章介绍了多线程的概念及的使用方法《synchronized 的使用(一)》,但是仅仅会用还是不够的,只有了解其底层实现才能在开发过程中运筹帷幄,所以本篇探讨的实现原理及锁升级 (膨胀) 的过程。
2023-08-10 15:10:13
130
原创 Redisson分布式锁源码解读
加锁 & 解锁流程串起来上面结合 Lua 脚本和源码,分别分析了加锁流程和解锁流程。下面升级下挑战难度,模拟下多个线程争抢锁会是怎样的流程。示意图如下,比较关键的三处已用红色字体标注。概括下整个流程1、线程 A 和线程 B 两个线程同时争抢锁。线程 A 很幸运,最先抢到了锁。线程 B 在获取锁失败后,并未放弃希望,而是主动订阅了解锁消息,然后再尝试获取锁,顺便看看没有抢到的这把锁还有多久就过期,线程 B 就按需阻塞等锁释放。
2023-07-20 18:41:00
670
原创 Redisson限流器RRateLimiter使用及源码分析
redission分布式限流采用令牌桶思想和固定时间窗口,trySetRate方法设置桶的大小,利用redis key过期机制达到时间窗口目的,控制固定时间窗口内允许通过的请求量。
2023-07-20 15:45:31
2752
转载 Spring状态机
有限状态机(Finite-state machine,FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。自动门有两个状态,open 和 closed ,closed 状态下,如果读取开门信号,那么状态就会切换为 open。我们通常所说的状态机是有限状态机,也就是被描述的事物的状态的数量是有限个,例如自动门的状态就是两个 open 和 closed。给定一个状态机,同时给定它的当前状态以及输入,那么输出状态时可以明确的运算出来的。
2023-06-29 11:23:30
277
原创 MQTT服务等级
Quality of Service,服务质量很多时候,使用 MQTT 协议的设备都运行在网络受限的环境下,而只依靠底层的 TCP传输协议,并不能完全保证消息的可靠到达。因此,MQTT 提供了 QoS机制,其核心是设计了多种消息交互机制来提供不同的服务质量,来满足用户在各种场景下对消息可靠性的要求。其中,使用 QoS 0 可能丢失消息,使用 QoS 1 可以保证收到消息,但消息可能重复,使用 QoS 2 可以保证消息既不丢失也不重复。
2023-06-15 15:01:03
1332
转载 MQTT协议图解
本文主要介绍MQTT协议的结构和具体的2条报文数据解析,帮忙更简单、快速地理解mqtt协议,如果要深入了解实现完整的协议,可以查看文章最后的完整协议文档做更深入的研究。
2023-06-14 17:02:59
895
原创 Geohash算法原理及实现
最近需要实现一个功能,查找车辆附近的加油站,如果车和加油站距离在200米以内,则查找成功。加油站数量肯定不小,能否缩小查找范围,否则以遍历形式,效率肯定高不了。Geohash算法就是将经纬度编码,将二维变一维,给地址位置分区的一种算法。基本原理GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串我们知道,经度范围是东经180到西经180,纬度范围是南纬90到北纬90,我们设定西经为负,南纬为负,所以地球上的经度范围就是[-180, 180],纬度范围就是[-90,90]
2023-05-31 16:42:35
1347
原创 RabbitMq指南:彻底解决消息可靠性问题以及实现延迟队列
开启生产者确认机制,确保生产者的消息能到达队列开启持久化功能,确保消息未消费前在队列中不会丢失开启消费者确认机制为 auto,由 spring 确认消息处理成功后完成 ack开启消费者失败重试机制,并设置 MessageRecoverer,多次重试失败后将消息投递到异常交换机,后续集中处理。
2023-05-25 16:08:00
874
转载 Https单向认证和双向认证
客户端收到服务端返回的加密方案密文后,使用自己的私钥进行解密,获取具体加密方式,而后,产生该加密方式的随机码,用作加密过程中的密钥,使用之前从服务端证书中获取到的公钥进行加密后,发送给服务端。服务端收到客户端发送的消息后,使用自己的私钥进行解密,获取对称加密的密钥,在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全。客户端接收到服务端返回的加密方式后,使用该加密方式生成产生随机码,用作通信过程中对称加密的密钥,使用服务端返回的公钥进行加密,将加密后的随机码发送至服务器。
2023-05-24 15:23:00
948
原创 MQTT入门手册
发布订阅模式(Publish-SubscribePattern)是一种消息传递模式,它将发送消息的客户端(发布者)与接收消息的客户端(订阅者)解耦,使得两者不需要建立直接的联系也不需要知道对方的存在。MQTT 发布/订阅模式的精髓在于由一个被称为代理(Broker)的中间角色负责所有消息的路由和分发工作,发布者将带有主题的消息发送给代理,订阅者则向代理订阅主题来接收感兴趣的消息。
2023-05-22 10:10:53
3748
1
原创 RabbitMQ实现消息的延迟推送或延迟发送
*** RabbitMQ常量/*** 交换机/*** 延时交换机(通过延时插件实现 rabbitmq_delayed_message_exchange)} /*** 队列/*** 延时队列(通过延时插件实现)} /*** 路由key/*** 延时路由key(通过延时插件实现)} }
2023-04-19 17:35:38
7205
原创 解决时间字段存入MySQL数据库时间差一秒的问题
在使用公司封装的数据库映射工具保存数据到mysql数据库,保存的数据时间是2022-08-10 12:29:28,调用通用查询方法查出的结果是2022-08-10 12:29:29,另外一条数据保存时间2022-08-10 12:35:01,查询结果又一致,时好时不好,数据不一致导致后续业务异常。time : 默认格式:HH:mm:ss 范围1:不写年月日时,-838:59:59/838:59:59 范围2: 写年月日时, -23:59:59/23:59:59。修改数据保存时的时间。
2023-04-19 15:45:50
1872
转载 MySQL计算环比、同比(年、月、季度)
https://blog.youkuaiyun.com/qq_36654629/article/details/98595763
2023-03-24 10:14:56
144
原创 windows10 Docker Desktop中部署clickhouse
这里我们在另外一台机器上部署clickhouse-client, 因为我们的clickhouse-server一般是部署在服务器端的,我们的clickhouse-client 是部署在客户端的,所以我们先拉去镜像。这里我们创建一个新的用户root ,所以我们需要创建一个 标签,添加到 下,和 同级。保存退出, 接下来重启容器,docker restart 02e52e00502b。
2022-11-02 10:36:16
966
转载 k8s常见使用命令
k8s排障–处理流程图ProcessOn模板社区-k8s排障–处理流程图 https://www.processon.com/view/6283aac71efad40df04b508c?fromnew=1#pc人手一套k8s常用命令集合:https://blog.youkuaiyun.com/yprufeng/article/details/105652059K8S常用命令思维导图:ProcessOn模板社区-K8S https://www.processon.com/view/60535672f346fb1e
2022-05-31 15:57:34
267
转载 Vue CLI 4.x常用命令
新版Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。1.安装npm i -g @vue/cli2.检查版本vue -V或者vue --version3.创建项目4.vue create projectname5.yarn install6.yarn serve7.yarn build图形化界面vue ui————————————————版权声明:本文为优快云博主「iceboysoft」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链
2022-05-21 08:10:26
216
原创 Kafka分区策略
生产者分区策略1.分区的原因(1)方便在集群中扩展,每个Partition可以通过调整以适应它所在的机器,而一个topic又可以有多个Partition组成,因此整个集群就可以适应任意大小的数据了;(2)可以提高并发,因为可以以Partition为单位读写了2.分区的原则(1) 指明 partition 的情况下,直接将指明的值直接作为 partiton 值;(2)没有指明 partition 值但有 key 的情况下,将 key 的 hash 值与 topic 的 partition 数进行
2022-04-22 17:11:56
8369
转载 Kafka组消费之Rebalance机制
《Kafka重要知识点之消费组概念》讲到了kafka的消费组相关的概念,消费组有多个消费者,消费组在消费一个Topic的时候,kafka为了保证消息消费不重不漏,kafka将每个partition唯一性地分配给了消费者。但是如果某个消费组在消费的途中有消费者宕机或者有新的消费者加入的时候那么partition分配就是不公平的,可能导致某些消费者负载特别重,某些消费者又没有负载的情况。Kafka有一种专门的机制处理这种情况,这种机制称为Rebalance机制。当kafka遇到如下四种情况的时候,kafka会
2022-04-22 10:48:26
1266
转载 互联网大厂高并发抢购系统架构设计
背景大家好,这篇文章给大家介绍一个非常经典的去大厂面试经常被问的一个问题,就是瞬时高并发抢购问题,通常来说,大厂开发的系统经常会遇到一些类似电商秒杀抢购、景点门票高并发抢购、特殊商品(比如口罩)高并发抢购、类似12306的高并发抢票类的系统。所以经常会问这一类高并发抢购类的问题,这个时候,小伙伴们如果不能有理有据的给出一整套高并发场景下系统可能遇到的各种问题,以及你对应的架构设计和解决方案,那基本面试可能就会凉掉。所以今天就手把手带着大家来分析一下,假设在特殊物品库存紧缺的场景下,1分钟内要抢购10
2022-03-27 11:27:13
324
原创 消息队列经典十连问
什么是消息队列消息队列的应用场景消息队列如何解决消息丢失问题消息队列如何保证消息的顺序性。消息有可能发生重复消费吗?如何幂等处理?如何处理消息队列的消息积压问题消息队列技术选型,Kafka还是RocketMQ,还是RabbitMQ消息中间件如何做到高可用?如何保证数据一致性,事务消息如何实现如果让你写一个消息队列,该如何进行架构设计?1. 什么是消息队列你可以把消息队列理解为一个使用队列来通信 的组件。它的本质,就是个转发器 ,包含发消息、存消息、消费消息 的过程。最简单的消息队列模型
2022-03-18 17:12:15
189
转载 mysql是怎么实现四种隔离级别的
1.为什么要有隔离级别?MySQL是一个服务器/客户端架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就可以称之为一个会话(Session)。我们可以同时在不同的会话里输入各种语句,这些语句可以作为事务的一部分进行处理。不同的会话可以同时发送请求,也就是说服务器可能同时在处理多个事务,这样子就会导致不同的事务可能同时访问到相同的记录。我们前边说过事务有一个特性称之为隔离性,理论上在某个事务对某个数据进行访问时,其他事务应该进行排队,当该事务提交之后,其他事务才可
2022-03-02 16:45:31
815
韩顺平mysql优化笔记.doc
2017-12-17
maven学习笔记
2017-02-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人