- 博客(155)
- 资源 (5)
- 收藏
- 关注
转载 ES常见操作
Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。在es当中,每个字段都会有默认的类型,根据我们第一次插入数据进去,es会自动帮我们推断字段的类型,当然我们也可以通过设置mappings来提前自定义我们字段的类型。
2024-04-22 14:53:35 8
原创 java 通过JdbcTemplate 访问oracle数据库分页查询数据
https://blog.csdn.net/qq_43038965/article/details/109449288
2024-04-11 15:26:06 109
转载 【Redis】之 RedLock 分布式锁
【Redis】之分布式锁简单来说就是 RedLock 是 Redis 实现分布式锁的一种方式。但不同点在于 RedLock 是 Redis 的作者 Antirez 在单 Redis 节点基础上引入的高可用模式。
2024-04-08 13:59:29 25
转载 stream流多字段排序
如果只进行单个字段的升序降序排列,我们使用reversed() 或者 Comparator.reverseOrder() 都可以如果要进行多个字段的升序降序排列,我们还是使用 Comparator.reverseOrder() 会更优雅、更好理解一些。
2024-04-02 11:29:56 51
转载 Java使用LocalDate获取某个月的第一天和最后一天日期
以一个月为周期进行查询时,如果用户没有选择查询的月份,我们想要默认查询当月或上个月的数据,这时,如何获取到一个月的第一天和最后一天日期呢?以下介绍两种方式采用LocalDate格式日期的实现,以及采用LocalDateTime格式日期的实现。直接上代码!// 获取当前月的第一天// 获取当前月的最后一天2021-11-112021-11-012021-11-30// 当前月份减1// 获取当前月的第一天// 获取当前月的最后一天2021-11-112021-10-11。
2024-03-19 10:04:35 525
转载 RocketMQ-03
实际应用中要结合业务场景,合理设置刷盘方式和主从复制方式, 尤其是SYNC_FLUSH方式,由于频繁地触发磁盘写动作,会明显降低 性能。通常情况下,应该把Master和Save配置成ASYNC_FLUSH的刷盘 方式,主从之间配置成SYNC_MASTER的复制方式,这样即使有一台 机器出故障,仍然能保证数据不丢,是个不错的选择。
2024-03-11 20:29:47 30
转载 RocketMQ-02
ID生成器IDWorker:Twitter雪花算法异常处理类CustomerException:自定义异常类CastException:异常抛出类常量类ShopCode:系统状态类响应实体类Result:封装响应状态和响应信息。
2024-03-06 21:01:35 35
转载 docker详解(尚硅谷阳哥)
Docker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”Linux容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。
2024-03-06 11:53:17 43
转载 RocketMQ-01
消息队列是一种“先进先出”的数据结构其应用场景主要包含以下3个方面应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。使用消息队列解耦合,系统的耦合性就会提高了。比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。
2024-03-01 10:57:35 34
转载 黑马---Redis入门到实战【实战篇】
缓存就是数据交换的缓冲区(称作Cache),是存储数据的临时地方,一般读写性能较高什么是缓存?一种具备高效读写能力的数据暂存区域缓存的作用?降低后端负载提高读写响应速度缓存的成本?开发成本运维成本一致性问题。
2024-02-27 16:28:37 60
转载 黑马---Redis入门到实战【基础篇】
为了节省内存空间,我们并不会使用JSON序列化器来处理value,二是统一使用String序列化器,要求只能存储String类型的key和value。为了在反序列化时知道对象的类型,JSON序列化器会将类的class类型写入json结果中并存入Redis,会带来额外的内存消耗。Redis的SortedSet是一个可排序的set集合,与java中的TreeSet有些类似,但底层数据结构却差别很大。Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样。
2024-02-27 14:10:51 30
原创 SpringBoot集成RocketMQ实现延迟消息
https://blog.csdn.net/weixin_44758923/article/details/128469052
2024-02-20 11:51:31 135
转载 RocketMQTemplate 发送消息的高级用法
通过深入了解 RocketMQTemplate 的高级用法,我们可以更灵活地控制消息的发送和路由。从延迟消息到事务消息,RocketMQTemplate 提供了多种方式满足不同业务场景下的需求。在实际应用中,要根据业务需求和性能考虑来选择使用哪种方式。通过合理使用 RocketMQTemplate,我们可以更好地利用 RocketMQ 提供的特性,构建高效可靠的分布式消息系统。
2024-02-20 11:35:58 181
转载 RocketMQTemplate基本使用
两个消费者组 groupA、groupB,每组中有两个消费者: groupA-1 groupA-2 groupB-1 groupB-2。使用任一生产者发出消息,groupA中的两个消费者都可以收到消息,groupB中的随机一个消费者也可以收到消息。针对不同的ConsumerGroup中,同一个消息,每个消费组中都有一个消费者需要消费。使用任一生产者发送消息,每个消费者组都能收到消息。针对同一个ConsumerGroup中,同一个消息只有一个消费者消费即可。同一个消息,每个消费者都需要消息。
2024-02-20 11:08:24 276
转载 图解23种设计模式
指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。
2024-02-20 10:32:18 12
转载 Seata分布式事务失效,不生效(事务不回滚)的常见场景
当Seata没有正常结束时,每个服务对应数据库中的undo_log表和seata持久化数据库的brach_table、global_table、lock_table、undo_log表都有可能有脏数据没有正确删除,从而导致服务一直回滚,却不成功。**解决办法:**清除undo_log表以及seata持久化数据库的brach_table、global_table、lock_table、undo_log表中的脏数据。那么可以分别在服务A、服务B、服务C的事务方法中添加。(2)每个服务中的XID不一致。
2024-02-18 14:22:52 536
转载 SpringCloud整合Seata1.6.1部署与使用Nacos方式
启动成功后,即可访问 http://127.0.0.1:7091/#/login 改地址进入seata的webui,用户名与密码默认为seata,可在上面的1.2章节中中提到的application.yml配置项:console.user中修改。在上述库中添加seata的配置表,sql文件存放在:seata/script/server/db/mysql.sql中。seata官网:http://seata.io/zh-cn/index.html。修改store.db配置项下的配置,连接到自己的数据库。
2024-02-08 17:24:26 177 1
转载 SpringBoot、SpringCloud、Spring Cloud Alibaba版本对照表
由于 Spring Boot 3.0,Spring Boot 2.7~2.4 和 2.4 以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存量用户和新用户不同需求,社区以 Spring Boot 3.0 和 2.4 分别为分界线,同时维护 2022.x、2021.x、2.2.x 三个分支迭代。如果不想跨分支升级,如需使用新特性,请升级为对应分支的新版本。为了规避相关构建过程中的依赖冲突问题,可以通过。
2024-02-08 14:41:33 578
转载 Feign组件的fallback操作
Hystrix类:重写方法用于当接口访问异常时,即调用的接口抛出异常时调用对应的重写方法,一般用于容错返回和输出异常。MessageFeignFactory类。修改@FeignClient 注解。可以看到抛出的异常有状态号信息等。开启hystrix 熔断器。FeignClient类。
2024-02-08 10:25:02 116
转载 分布式事务解决方案:RocketMQ事务消息
当事务消息发送成功后回掉RocketMQLocalTransactionListener#executeLocalTransaction方法,执行本地事务。第二次请求,因为流水id已经存在(报主键冲突异常),导致发送端扣钱失败,接收端也没收到消息,2边的钱都没发生变化,测试完成。还是以转账的demo演示一下,在db_account_1和db_account_2这2个库中,建立如下2张表。同时需要提供回查方法的实现,让rocketmq查询本地事务的执行状态,来决定是否投递消息。转账的时候先发送一条事务消息。
2024-02-07 18:23:07 24
转载 [RocketMQ错误]Caused by: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <
2024-01-20 20:58:04 135
原创 WebSocket-黑马好客租房
WebSocket 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP请求完成。WebSocket是真正实现了全双工通信的服务器向客户端推的互联网技术。它是一种在单个TCP连接上进行全双工通讯协议。Websocket通信协议与2011年倍IETF定为标准RFC 6455,Websocket API被W3C定为标准。全双工和单工的区别?全双工(Full Duplex)是通讯传输的一个术语。
2024-01-20 16:34:34 1486
原创 【java常用接口】Comparator学习
Comparator 是 Java 中的一个接口,用于定义对象之间的排序规则。它可以用于对集合中的对象进行排序,或者用于自定义排序算法。
2024-01-19 20:44:34 470
转载 spring boot整合各个中间件
https://blog.csdn.net/qq_29860591/category_9633693.html
2024-01-18 19:13:32 38
转载 实战,实现幂等的8种方案!
什么是幂等为什么需要幂等接口超时,如何处理呢?如何设计幂等?实现幂等的8种方案HTTP的幂等幂等是一个数学与计算机科学概念。在数学中,幂等用函数表达式就是:f(x) = f(f(x))。比如求绝对值的函数,就是幂等的,abs(x) = abs(abs(x))。计算机科学中,幂等表示一次和多次请求某一个资源应该具有同样的副作用,或者说,多次请求所产生的影响与一次请求执行的影响效果相同。
2024-01-18 19:10:53 191
原创 linux 安装 RocketMQ
https://blog.csdn.net/wsjzzcbq/article/details/125562966
2024-01-15 19:27:27 387
转载 分布式事务解决方案之TCC
TCC是Try、Confirm、Cancel三个词语的缩写,TCC要求每个分支事务实现三个操作:预处理Try、确认Confirm、撤销Cancel。Try操作做业务检查及资源预留,Confirm做业务确认操作,Cancel实现一个与Try相反的操作即回滚操作。TM首先发起所有的分支事务的try操作,任何一个分支事务的try操作执行失败,TM将会发起所有分支事务的Cancel操作,若try操作全部成功,TM将会发起所有分支事务的Confirm操作,其中Confirm/Cancel。
2024-01-15 17:10:47 22
原创 idea2018导入多个javaweb项目-学习笔记
确认,test项目的依赖jar包,引入tomcat jar包。到此导入javaweb并配置完成。
2024-01-15 10:53:30 927
转载 【无标题】
经验判断,消费速率低下的主要原因往往都是数据处理时间长,业务逻辑复杂最终导致一次 poll 的时间被无限拉长,如果可以通过增加数据处理的线程数来降低一次 poll 的时间那么问题就解决了。基于上述几点,思路就是消费者 poll 下来一批数据,交给多个线程去并行处理,消费者等待所有线程执行完后提交。这里采用轮训的方式且切分的个数与 threadNum 一致,尽可能保证每个线程处理的数据数量相差不大。第二步:因为需要并行处理一批 poll 数据,因此需要对数据进行切分,切分逻辑如下。
2024-01-15 10:50:28 21
转载 Elasticsearch - 直观了解查询( term、match、match_phrase和query_string)区别
如“我真帅”分词为[“我”,“真”,“帅”,“真帅”],match_phrase 的查询语句“真帅”被分词为[“真帅”],其中“真帅”能匹配上text字段的分词结果,连续且顺序相同,所以能查出。如“我真帅”分词为[“我”,“真”,“帅”],match的查询语句“真帅”被分词为[“真”,“帅”],其中“真”、“帅”能匹配上text字段的分词结果,所以能查出。如“我真帅”分词为[“我”,“真”,“帅”],term必须为“我”或“真”或“帅”,才能查到,而“我帅”、“真帅”不行。match 查询语句分词。
2024-01-14 17:35:03 203
转载 ES multiMatchQuery 短语精确匹配多个字段
答案 是 用这个multiMatchQuery 方法进行查询。但是有时候需要精确匹配 (也就是对搜索关键字不分词)多个字段。用于匹配多个字段,但是会对搜索关键字进行分词。
2024-01-14 17:30:20 283
转载 es中match_phrase和term区别
也就是说,term和match_phrase都可以用于精确匹配,而match用于模糊匹配。那么,term和match_phrase都可以实现按短语搜索,二者在实际使用中有啥区别呢。match会对输入进行分词处理后再去查询,部分命中的结果也会按照评分由高到低显示出来。这就不难理解为啥term搜“学习”搜不到,搜全文也搜不到,因为存的是“学”和“习”。match_phrase是按短语查询,只有存在这个短语的文档才会被显示出来。我们会发现,中文竟然被默认分词器分词单个字了!只有当这三个条件满足,才会命中文档!
2024-01-14 17:25:47 250
转载 git命令怎么取消合并?
git merge --abort 只能在合并导致冲突后运行。git merge --abort 将中止合并过程并尝试重建预合并状态。但是,如果在合并开始时有未提交的更改(特别是如果在合并开始后进一步修改了这些更改), git merge --abort 在某些情况下将无法重建原始(合并前)更改。比如我们在 develop 分支执行下面的合并命令,去合并其他分支之后,我们突然不想合并了,要取消该怎么处理?执行完成之后,我们发现 MERGING 没了。执行合并之后,会出现 MERGING。
2024-01-12 10:26:36 46
转载 kafka配置
指定生产者客户端连接kafka集群所需的broker地址列表,格式为host1:port1,host2:port2,可以设置一个或多个。这里并非需要所有的broker地址,因为生产者会从给定的broker里寻找其它的broker。:broker接收消息必须以字节数组byte[]形式存在,KafkaProducer和ProducerRecord中的泛型就是key和value的类型。
2024-01-12 10:14:48 145
转载 @SneakyThrows注解
SneakyThrows注解的用途得从java的异常设计体系说起这是异常的类图。Throwable是Error和Exception的父类,用来定义所有可以作为异常被抛出来的类。
2024-01-11 16:28:48 53
转载 @PostConstruct详解
PostConstruct是Java自带的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct和@PreDestroy,这两个注解被用来修饰一个非静态的void()方法。
2024-01-09 11:45:26 30
用SWT、Socket实现聊天室
2020-12-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人