自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Executor和AQS学习收藏】

【代码】【Executor和AQS学习】

2023-02-23 21:04:49 396

原创 框架源码学习收藏汇总

Springsecurity过滤器和方法拦截器 https://www.processon.com/view/link/61fe51221efad479c07aa7b7WebSecurity&HttpSecurity&AuthenticationManager三大构建者 https://www.processon.com/view/link/61ffe49f6376890390cf9e28SecurityConfigurer配置类继承体系(创建HttpSecurity) https://

2022-02-27 09:35:06 465

原创 slice/retainedSlice/readRetainedSlice

【代码】slice/retainedSlice/readRetainedSlice。

2024-04-17 22:58:42 105

原创 mysql使用逗号分隔的一行数据转多行数据

【代码】mysql使用逗号分隔的一行数据转多行数据。

2024-04-15 20:53:22 290 1

原创 kafka学习记录

在local文件夹下创建data目录,然后修改local下的config目录下的zookeeper.properties文件。编写zk.cmd和kafka.cmd,然后就可以双击启动zookeeper和kafka了。修改config目录中的server.properties文件。将文件夹名改为local。启动zookeeper。

2024-04-13 10:22:06 1329 2

原创 netty实现mqtt(IOT)

springboot+netty+mqtt服务端实现springboot+netty+mqtt客户端实现IOT云平台 simple(6)springboot netty实现IOT云平台基本的架构(mqtt、Rabbitmq)Springboot结合Netty对接硬件,实现主动发送报文和接受硬件报文(ModbusRTU或者TCP以及DTU)

2024-04-11 22:18:15 472 4

原创 im-system 第十一章

需求一:需要实时的更新好友的状态,有一个标识可以辨别在线和离线,在线和离线可以实时得到感知,手动修改忙碌啥的状态可以实时通知到好友需求二:打开群组等,可以获取到这一批人的在线状态,在线的会有一个在线的标识,和好友一样可以实时感知到用户下线了,可以实时的将在线修改为离线。

2024-04-05 21:43:13 248

原创 webrtcP2P通话流程

webrtcP2P通话流程webrtc多对多 mesh方案

2024-04-05 11:00:41 668

原创 im-system 第十章

章节介绍基本保证实时性有序性可靠性幂等性(保证消息不重复)消息已读&离线消息消息已读离线消息

2024-03-30 16:20:39 260

原创 im-system 第九章(下)

读扩散:举一个微博大V的例子,如果大V发一条消息,那么关注了大V的用户,就会从大V的队列中倒序拉取就可以获取到大V的消息了写扩散:也举一个微博大V的例子,如果大V发一条消息,每个用户都有自己的一个队列,大V会将消息写到所有订阅他的用户的队列中

2024-03-30 11:12:52 184

原创 im-system 第九章(上)

逻辑层需要接收到im tcp接入层发送过来的消息,逻辑层监听使用ChatOperateReceiver,tcp层收到来自sdk的消息后,将消息发送到mq,逻辑层接收到该消息。

2024-03-27 22:33:04 198

原创 im-system 第八章(下)

由于im服务支持用户在多个客户端登录,那么就会存在一个用户在多个端的数据同步问题。

2024-03-24 09:01:02 463

原创 im-system 第八章(上)

tcp服务实例注册到了zk,现在sdk需要获取到tcp服务的地址。

2024-03-23 12:10:09 1271 1

原创 im-system学习

【代码】im-system学习。

2024-03-19 22:52:30 314

原创 ByteToMessageDecoder & 简单实现netty文件传输

但是,注意:HeadContext中读取的数据可能包含了完整消息,也可能包含不完整的消息,这是不确定的,由底层网络传输决定,我们要做的就是区分出消息边界,然后将完整的消息交给后面的入站处理器,不然的话,入站处理器后面的业务拿到的不是1个完整的消息,就会出问题。而ByteToMessageDecoder就是其中1个比较重要的解码器,也叫一次解码器。因为tcp协议将数据以流的方式传输,但这样就需要自己在应用层手动解决字节数据边界的问题,即拆包和粘包的问题。将流式数据按照商定的协议规则区分的1个完整数据称为。

2024-03-17 20:47:42 393

原创 telnet命令使用

启动netty服务端后,使用如下cmd命令连接服务端,按enter,将连接到netty服务端。发送消息,再断开连接,再退出,netty服务端都能正常响应。

2024-03-17 10:19:28 382

原创 OGNL表达式

OGNL(Object-Graph Navigation Language的简称),对象图导航语言,通过表达式来实现:许多常用框架都集成了ognl,如mybatis、struts、spring、arthas等。这里仅以java环境下的代码进行演示。

2024-03-12 22:32:09 760

原创 netty草图笔记

【代码】netty草图笔记。

2024-03-09 17:14:38 386

原创 Spring EL表达式官方文档学习

SpEL(Spring Expression Language)是Spring框架中用于表达式语言的一种方式。它类似于其他编程语言中的表达式语言,用于在运行时计算值或执行特定任务。SpEL提供了一种简单且强大的方式来访问和操作对象的属性、调用对象的方法,以及实现运算、条件判断等操作。它可以被用于XML和注解配置中,可以用于许多Spring框架中的特性,如依赖注入、AOP、配置文件等。SpEL表达式可以在字符串中进行定义,使用特殊的语法和符号来表示特定的操作。

2024-03-03 10:43:47 1176 1

原创 Spring Cloud OpenFeign官方文档学习

Feign是一个声明式的web服务客户端,让编写web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡(也可以配合Spring Cloud CircuitBreaker、Spring Cloud LoadBalancer一起使用)。

2024-02-25 20:35:39 1168 1

原创 Spring Cloud Gateway官方文档学习

Cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是用的Zuul作为网关。但是在2.x版本中,zuul的升级维护变得困难,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloud Gateway,使用gateway替代了zuul。Gateway是在Spring生态系统之上构建的API网关服务,基于Spring5、SpringBoot2.0和Project Reactor等技术。

2024-02-24 15:49:51 1398

原创 redis实现消息队列&redis发布订阅&redis监听key

消息队列MessageQueue),字面意思就是存放消息的队列。消息队列:存储和管理消息,也被称为消息代理(Message Broker)生产者:发送消息到消息队列消费者:从消息队列获取消息并处理消息(正常下单,我们需要将订单消息写入数据库。但由于秒杀并发访问量大,数据库本身并发处理能力不强,因此,在处理秒杀业务时,可以将部分业务在生产者这边做校验,然后将消息写入消息队列,而消费者处理该消息队列中的消息,从而实现双方解耦,更快的处理秒杀业务)

2024-02-18 22:21:22 1287 1

原创 redis分布式锁&redisson

利用set nx ex获取锁,并设置过期时间,保存线程标示释放锁时先判断线程标示是否与自己一致,一致则删除锁利用set nx满足互斥性利用set ex保证故障时锁依然能释放,避免死锁,提高安全性利用Redis集群保证高可用和高并发特性Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务,其中就包含了各种分布式锁的实现。

2024-02-16 21:22:46 1566 1

原创 seata分布式事务

Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务(而一旦对外提供服务的话,那么由于形成了独立分区,它并未与其它节点进行数据同步,那么如果此时它提供给外界服务,就会达不到一致性的要求,如果它阻塞外界的请求,等待网络恢复数据同步完成,又会达不到可用性的要求)在单体架构中,往往只有1个服务,1个数据库。每1个服务都是独立的,所以它们的事务也都是独立的,其中业务处理成功的服务都各自把自己的事务提交了,因此撤销不了;每1个服务都是独立的,当某个服务抛出了异常,其它服务并不能感知到;

2024-02-05 23:25:43 1162

原创 vue3快速入门

2020年9月18日,发布版版本,代号:(n经历了:4800+次提交、40+个RFC、600+次PR、300+贡献者官方发版地址:Release v3.0.0 One Piece · vuejs/core截止2023年10月,最新的公开版本为:打包大小减少。初次渲染快, 更新渲染快。内存减少。使用代替实现响应式。重写虚拟的实现和。(组合):与与…新的内置组件:…其他改变:新的生命周期钩子 选项应始终被声明为一个函数移除支持作为 的修饰符…点击查看 Vue-Cli 官方文档,(基于vue-cli创建,其实就

2024-02-03 20:46:09 1350

原创 vue2学习笔记(2/2)

1. 初始化脚手架说明Vue 脚手架是 Vue 官方提供的标准化开发工具(开发平台)。最新的版本是 4.x。文档: https://cli.vuejs.org/zh/。具体步骤第一步(仅第一次执行):全局安装@vue/cli。npm install -g @vue/cli第二步:切换到你要创建项目的目录,然后使用命令创建项目vue create 项目名第三步:启动项目npm run serve 备注:如出现下载缓慢请配置 npm 淘宝镜像:npm confi

2024-02-03 11:47:29 934

原创 RabbitMq学习

然后,再次启动消费者,此消息又投递了过来,消费者方法又调用了1次,此时再以同样的配置和代码启动另外1个消费者,这个新启动的消费者没有收到这个消息(说明它不会将已投递但未确认的消息投递给这个新的消费者)。如下代码测试,当收到消息时,使用basicAck(消息投递标记,是否批量确认),批量确认指的是,将deliveryTag小于当前消息投递标记的消息一并确认,这样broker就会清理掉之前未确认的消息,这可以适用于某些情况:既然最后面的消息都确认了,之前的消息确不确认也就没啥关系的情况。

2024-01-27 23:03:03 1266 1

原创 mysql生成最近24小时整点&最近30天&最近12个月时间临时表

在统计的时候需要按时间来展示,但是数据的时间不一定是连续的,那就需要在代码里面生成连续的时间,然后按时间匹配到对应的数据,这样比较麻烦,可以在sql中使用连接查询与会话变量生成连续的时间,做成1个临时表,然后再来连接上数据表。

2024-01-22 17:06:10 664

原创 update语句中写in需要包一层

需要包1层,否则会报错。如果是select的话,就不用包,可以直接写。

2024-01-22 16:42:45 414

原创 下载csdn文章,并保存md笔记中的图片链接至本地

有的时候,拿到别人的md笔记,但是笔记中的图片又是以链接的格式给的,这个链接说不定后面就失效了,笔记也就看不到图片了。手动右键也可以保存图片,但是1个1个点太麻烦了,就练习一下正则的使用方法,把图片存下来。一行一行的读取原来的md文档,每一行使用正则拿到匹配的图片链接,并保存到本地。

2024-01-21 11:54:13 582

原创 MultipartFile上传文件异步处理时的java.io.FileNotFoundException

原因是,tomcat线程在请求完成处理后,会对临时文件进行清理,文件被清理后,自然就找不到对应的文件了,这个清理应该也是异步的,当对应的controller中的异步耗时长时,几乎必现。在接收到前端的文件上传请求时,在对应的controller方法中使用线程池异步处理文件相关的逻辑时,会。先将文件的字节数据保存下来,或者先把文件写到指定的位置,后面再从指定的位置读取。

2024-01-20 08:05:00 644

原创 Jsqlparser简单学习

【代码】Jsqlparser简单学习。

2024-01-14 10:47:31 632

原创 vue2使用Lottie

【代码】vue2使用Lottie。

2024-01-13 08:32:04 490

原创 Excel学习

EasyExcel实现Excel文件导入导出 - 很详细EasyPoi实现excel文件导入导出 - 很详细Excel文件导入导出 - 专栏

2024-01-12 22:16:50 667

原创 java读取json文件并解析并修改

在上面的示例中,首先创建了一个ObjectMapper对象,然后使用它来读取JSON文件。读取后的JSON数据存储在JsonNode对象中,你可以使用get方法获取特定字段的值。我们将”age”字段的值增加了1,然后使用ObjectMapper对象将修改后的JSON数据写回到文件中。要在Java中读取和解析JSON文件,可以使用Java提供的JSON库,例如Jackson、Gson或JSON.simple。这个示例中使用的是Jackson库,你也可以使用其他的JSON库来完成相同的任务。

2024-01-12 22:12:57 628

原创 java.io.IOException: Broken pipe

做1个接口,处理前端请求图片跨域的问题。由于前端拿图片的时候,有跨域问题,所以让后台先拿到图片,然后再写给前台。本来下面的代码没什么太大的问题,但是如果前台请求的图片一多(1个页面中有很多图片),有些请求就会报错:java.io.IOException: Broken pipe…因此,需要加上Content-Length响应头。

2024-01-08 16:13:48 464

原创 聊天Demo

前端界面

2024-01-06 18:31:34 730

原创 云尚办公项目学习

4,为指定的审批模板上传流程定义文件,将该文件保存到指定的目录下,并保存到审批模板的流程定义path字段,流程定义文件的文件名(不包括后缀名)作为审批模板的流程定义key字段。5,发布该审批模板,就是将此审批模板流程定义path字段所指定的路径所对应的文件读取成流,部署到activiti中,修改审批模板为已发布状态。6,发起审批,首先获取审批模板对应的表单,申请人填写表单内容。3,为指定的审批模板设置模板名称,表单项,form-create前端组件。mybatisplus生成代码。

2024-01-03 20:33:24 893

原创 @JsonSerialize&JsonDeserialize&mixin&module

【代码】@JsonSerialize&JsonDeserialize&mixin&module。

2024-01-01 21:30:08 392

原创 个人收藏学习(2)

MySQL学习笔记MySQL 数字函数Mysql 日期函数大全mysql 查询提取json 并去除双引号mysql数据库多字段in写法Mysql实现行列转换MySQL常用函数MySQL总结彻底搞懂MySQL的DCL(Data Control Language)Mysql查询某个时间段之间,每天中最新的一条记录Mysql生成当月(指定月)所有天数 本周所有日期 当日24小时sql 语句查询今天、昨天、近7天、近30天、一个月内、上一月 数据(本周本月本年第一天及最后一天)(MySQL 与

2023-12-26 18:07:30 416

空空如也

空空如也

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

TA关注的人

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