自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AOF文件重写

为了解决AOF文件体积膨胀的问题,Redis提供了AOF重写功能:Redis服务器可以创建一个新的AOF文件来替代现有的AOF文件,新旧两个文件所保存的数据库状态是相同的,但是新的AOF文件不会包含任何浪费空间的冗余命令,通常体积会较旧AOF文件小很多。(后台)里执行,这样子进程进行AOF重写期间,主进程可以继续处理命令请求;在子进程完成AOF重写后,会给主进程一个完成信号,随后主进行将AOF重写缓冲区的数据写入新的AOF文件,再将原始的AOF文件替换成新的AOF文件,至此AOF重写完成。

2024-10-19 18:31:25 329

原创 最长回文子串-双下标动态规划

容易想到,用一个二维数字dp[i][j]来表示s[i:j]是否是回文串,如s=“daba”。dp[1][3]=1表示"aba"为回文串;

2024-10-12 19:07:17 255

原创 HTTPS加密流程

公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;传输的信息由公钥进行加密,再由服务器持有的私钥进行解密。简单的说,HTTPS的传输过程使用的是对称加密(随机Key),因为对称加密不够安全,所以使用非对称加密的公钥对随机Key进行加密,由服务端持有的私钥进行解密,这样就不会在传输过程中暴露对称加密的公钥(随机Key)了。优点:算法公开,加密和解密使用不同的钥匙,私钥不需要通过网络进行传输,安全性很高。只要你看懂了上面的对称加密、非对称加密流程,HTTPS的流程其实也很简单。

2024-09-30 16:04:57 426

原创 rk3588推理出现花屏大量锚框情况

用官网yolov5训练的做积水检测(二分类),由于rk推理需要的模型是三输出模型,后处理另外做。在修改完这个后有概率会出现花屏,对,有概率。我推理了两个模型,有一个出现了花屏,有一个没有。解决方案:修改process函数,去掉sigmoid处理,如下图所示。偷个图,类似于这个。

2024-07-25 22:45:35 440

原创 rk3588 模型转换V2.0.0-beta0

本文使用的是2024.7.24最新的rknn-toolkit2仓库V2.0.0-beta0。下面操作若无标明,默认都是在Linux主机上执行。

2024-07-24 09:01:04 765

原创 可重复读(RR)隔离级别下,幻读被彻底解决了吗?

之后事务 B 向表中新插入了一条 id = 5 的记录并提交(事务A不可见)。接着,事务 A 对 id = 5 这条记录进行了更新操作,在这个时刻,这条新记录的 trx_id 隐藏列的值就变成了事务 A 的事务 id,之后事务 A 再使用普通 select 语句去查询这条记录时就可以看到这条记录了,于是就发生了幻读。T1 时刻:事务 A 先执行「快照读语句」:select * from t_test where id > 100 得到了 3 条记录。就会得到 4 条记录,此时也发生了幻读现象。

2024-07-18 10:48:50 536

原创 Spring解决循环依赖:三级缓存

通俗来讲,循环依赖指的是一个实例或多个实例存在相互依赖的关系(类之间循环嵌套引用)。

2024-07-15 18:36:13 1189

原创 ArrayList泛型存储类型以及Arraylist与数组的转换

如果指定数组能容纳列表中的所有元素,则会在该数组中返回元素;否则,将分配一个具有指定数组的运行时类型的新数组,并用列表中的元素填充它。那么,泛型< E>能否存储int[],String[]数组这种类型呢?答案肯定是可以的,因为在。执行下面的代码,会得到对象的哈希码,这样也能验证数组的类型是对象。返回一个包含所有列表元素的数组,该数组的运行时类型是。众所周知,ArrayList< E>泛型能够存储。,如String、对象、以及基本类型的包装类。返回一个包含所有列表元素的Object数组。

2024-06-18 11:18:50 451

原创 MySQL索引(聚簇索引、非聚簇索引)

每次对表进行增删改查操作,MySQL不仅要保存数据,还有保存或者更新对应的索引文件。聚簇是为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块。,InnoDB中的辅助索引以及MyISAM使用的都是非聚簇索引。索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。聚簇索引和非聚簇索引是一种物理分类,区别在于数据和索引的物理存放位置。:数据和索引是分开的,B+树叶子节点存放的不是数据表的行记录。

2024-05-10 20:40:00 395

原创 Redis分布式锁—SETNX+Lua脚本实现

使用redis实现分布式锁,就是利用redis中的setnx,如果key不存在则进行set操作返回1,key已经存在则直接返回0。

2024-03-25 14:15:15 1098

原创 kafka无法消费数据

2.查看要删除的节点 ls /brokers/topics 并用 deleteall /brokers/topics/__consumer_offsets 对其进行删除就可。原因:consumer与zookeeper集群中的leader无法建立连接,(我的情况是删除了之前的zk,现在又新加入了一个)。进入zookeeper客户端,将brokers节点下的topics节点下的__consumer_offsets删除就可。1.在启动zookeeper的前提下,打开./zkCli.sh。

2024-03-17 12:03:15 1072

原创 freemarker

FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

2024-03-05 09:19:37 361

原创 java常用环境docker安装

访问:http://localhost:8848/nacos/ 即可进入管理界面。mysql配置较为繁琐,如果不需要开启binlog可以直接运行第一个。本文为精简安装,部分不带容器卷映射,仅供以学习使用。修改broker.conf。

2024-02-28 18:58:28 346

原创 ControllerAdvice+ExceptionHandler全局捕获异常

String msg;@ControllerAdvice注解是Spring3.2中新增的注解,学名是Controller增强器,作用是给Controller控制器添加统一的操作或处理。ExceptionHandler选择需要捕获的异常,当出现异常时返回Result对象,统一了接口的返回形式。

2024-02-24 09:55:55 215

原创 knife4j springboot3使用

在日常开发中,写接口文档是我们必不可少的,而Knife4j就是一个接口文档工具,可以看作是Swagger的升级版,但是界面比Swagger更好看,功能更丰富。

2024-02-23 15:18:37 888

原创 windows nacos启动停止脚本

启动:将路径改为自己的nacos的bin目录。

2024-02-21 15:21:30 445

原创 tensorboard画图

导包后往里面放数据就行,第一个参数是名称,第二个是y坐标,第三个是x坐标,通过add_scalar进行参数的添加。结束后会生成scalar目录(log_dir所指),里面放了.event文件。还得安装TensorFlow。

2024-01-24 21:09:47 480

原创 docker network网络

采用 host 网络模式的 Docker Container,可以直接使用宿主机的 IP 地址与外界进行通信,若宿主机的 eth0 是一个公有 IP,那么容器也拥有这个公有 IP。Container 网络模式是 Docker 中一种较为特别的网络的模式。Container 网络模式即新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。host 网络模式可以让容器共享宿主机网络栈,这样的好处是外部主机与容器直接通信,但是容器的网络缺少隔离性。

2024-01-23 17:29:07 992

原创 seata分布式事务

Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。术语:TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。TM (Transaction Manager) - 事务管理器:定义全局事务的范围:开始全局事务、提交或回滚全局事务。

2024-01-23 11:01:34 881

原创 springcloud alibaba sentinel熔断降级

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。sentinel相当于hystrix的升级版,加入了web界面,能够实时在线的改变流量策略。核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。

2024-01-22 19:45:30 1131

原创 spring cloud alibaba nacos注册与配置中心

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos就是注册中心+配置中心的组合 -> Nacos = Eureka+Config+Bus。

2024-01-15 21:40:37 430

原创 springcloud sleuth分布式请求链路跟踪

在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败.Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin。安装zipkin:docker run -d -p 9411:9411 openzipkin/zipkin。

2024-01-13 09:28:59 536

原创 springcloud stream消息驱动

官方定义Spring Cloud Stream是一个构建消息驱动微服务的框架。应用程序通过inputs或者 outputs 来与Spring Cloud Stream中binder对象交互。通过我们配置来binding(绑定),而Spring Cloud Stream 的binder对象负责与消息中间件交互。所以,我们只需要搞清楚如何与Spring Cloud Stream交互就可以方便使用消息驱动的方式。通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动。

2024-01-11 20:24:39 483

原创 springcloud bus消息总线

Spring Cloud Bus 配合Spring Cloud Config 使用可以实现配置的动态刷新。Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了Java的事件处理机制和消息中间件的功能。Spring Clud Bus目前支持RabbitMQ和Kafka。Spring Cloud Bus能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态更改、事件推送等,也可以当作微服务间的通信通道。

2024-01-09 21:22:29 1694

原创 springcloud Config配置中心

服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。SpringCloud提供了ConfigServer来解决这个问题,我们每一个微服务自己带着一个application.yml,上百个配置文件的管理.…SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。

2024-01-09 19:52:33 1090

原创 Springcloud Gateway网关

SpringCloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty。Spring Cloud Gateway的目标提供统一的路由方式且基于 Filter链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。过滤掉没有携带uname参数的请求。@Component@Slf4j@Override//需要携带uname参数log.info("用户名为空,非法");//放行@Override。

2024-01-08 20:23:47 912

原创 Hystrix熔断/断路器

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。

2024-01-07 18:57:27 919

原创 openFeign服务调用

Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。一句话:定义微服务的接口,加入Feign相关注解就能实现微服务之间的调用。

2024-01-06 11:16:21 412

原创 Ribbon客户端负载均衡

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。ribbon就是@loadbalance注解+ RestTemplate通过http://[服务名]的调用。ribbon已经集成到Eureka中,无需另外引包。

2024-01-05 21:23:04 892

原创 Consul

Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp 公司用Go语言开发。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。它具有很多优点。包括:基于raft协议,比较简洁;支持健康检查,同时支持HTTP和DNS协议支持跨数据中心的WAN集群提供图形界面跨平台,支持Linux、Mac、Windows。

2024-01-03 21:14:44 448

原创 微服务注册到Zookeeper注册中心

jar包:</</</启动类上面加入:@EnableDiscoveryClient注解application.yml文件:定义了服务的名称,以及zookeeper的地址。

2024-01-03 19:48:42 437

原创 Eureka服务注册与发现中心

Spring Cloud封装了Netflix 公司开发的Eureka模块来实现服务治理在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。

2024-01-02 19:07:31 1423

原创 springboot devtools实现热部署

将设置里面的两项打钩,其他的勾是默认存在的。高级设置里面的这个选项打钩。

2023-12-28 20:45:27 439

原创 mybatis使用useGeneratedKeys+keyProperty返回自增主键

在mybatis调用insert方法后,可以通过useGeneratedKeys+keyProperty属性获取自增主键。keyProperty:表明返回的主键名,在执行结束后相应的主键会被赋值,这里返回的主键为实体类中的主键id。useGeneratedKeys :一个bool变量,为true时,返回数据库自动生成的记录主键id。注意:返回的主键指在java程序中的形参,不会影响原先的sql执行结果,可以参考下面的代码。dao方法对应的xml。

2023-12-28 19:59:15 545

原创 maven中dependencyManagement标签

dependencyManagement正如其名,用于项目依赖的统一管理。在父项目中的pom.xml文件中加入dependencyManagement标签即可完成依赖版本的声明。在声明完成后,子项目(module)中引用相同的依赖时可以不指定version标签自动引入父项目的相同版本。如果子项目想要有自己的依赖版本,只需要加入version标签填入需要的版本号即可。注意:dependencyManagement标签只会进行版本声明,而不会实际下载依赖。

2023-12-28 15:07:52 723

原创 Dubbo

一款高性能Java RPC框架。特性:面向接口RPC调用、智能负载均衡、服务注册与发现、高度可扩展、灰度发布等。

2023-12-26 14:36:53 980

原创 Netty网络编程

Netty 是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络 IO 程序。Netty是基于NIO开发的,体系图如下。

2023-12-19 08:51:32 1011

原创 RabbitMQ消息队列

MQ(message queue),从字面意思上看就个 FIFO 先入先出的队列,只不过队列中存放的内容是 message 而已,它是一种具有接收数据、存储数据、发送数据等功能的技术服务。作用:流量削峰、应用解耦、异步处理。生产者将消息发送到消息队列中,消息队列负责转发消息给消费者,消费者在处理完消息后会对消息队列进行应答,消息队列收到应答信息会将相应的消息进行丢弃。批量应答会导致高并发时消息的丢失,所以尽力以channel.ack()进行手动应答。

2023-11-23 20:53:34 287

原创 责任链模式

使多个对象都有机会处理请求,从而将请求的接收者与发送者解耦。将对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。适用于:有多个对象可以处理一个请求,哪个对象处理该请求由运行时刻自动确定。优点:将请求和处理分开,实现解耦,提高系统灵活性。缺点:链较长时,会影响系统性能。调试较为复杂。

2023-11-07 11:07:54 397

原创 策略模式(Stragedy)

策略模式将策略(方法)与实体类相分离,使用聚合/组合替代继承。思想:少用耦合性高的继承,尽量用聚合/组合来代替。优点:将策略独立于实体类,策略的实现更加灵活,易于理解扩展,切换。可以避免多if else的情况。缺点:每一个策略会对应于一个策略类,会导致类的数目增多。

2023-11-07 10:37:54 467

空空如也

空空如也

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

TA关注的人

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