自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 问答 (1)
  • 收藏
  • 关注

原创 2024 java后端实习 春招已经开放公司名单

3月11日 开投 3月28简历初筛。

2024-04-04 11:25:46 298

原创 Redis常见阻塞原因总结

执行迁移时,两端的 Redis 均会进入时长不等的阻塞状态,对于小 Key,时间可以忽略不计,对于大 Key ,严重时会触发集群内的故障转移,造成不必要的切换。Redis 是典型的 CPU 密集型应用,不建议和其他多核 CPU 密集型服务部署在一起。当其他进程过度消耗 CPU 时,将严重影响 Redis 的吞吐量。Redis 集群可以进行节点的动态扩容缩容,这一过程目前还处于半自动状态,需要人工介入。统计信息分析出命令不合理开销时间,查看是否是因为高算法复杂度或者过度的内存优化问题。Swap(内存交换)

2024-03-29 16:44:31 363

原创 Redis--缓存常用的 3 种读写策略

在 Cache-Aside Pattern 下,发生读请求的时候,如果 cache 中不存在对应的数据,是由客户端自己负责把数据写入 cache,而 Read Through Pattern 则是 cache 服务自己来写入缓存的,这对客户端是透明的。这个过程可以简单描述为:请求 1 从 db 读数据 A-> 请求 2 更新 db 中的数据 A(此时缓存中无数据 A ,故不用执行删除缓存操作 ) -> 请求 1 将数据 A 写入 cache。在写数据的过程中,可以先删除 cache ,后更新 db 么?

2024-03-29 00:19:01 884

原创 基于Redis实现延时任务

Redis 过期事件监听这种方案存在很多问题,建议使用 Redisson 内置的 DelayedQueue 方案。

2024-03-28 22:50:04 590

原创 RabbitMQ基础知识

BindingKey 并不是在所有的情况下都生效,它依赖于交换器类型,比如 fanout 类型的交换器就会无视,而是将消息路由到所有绑定到该交换器的队列中。RabbitMQ 是使用 Erlang 编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。,这时队列中的消息会被平均分摊(Round-Robin,即轮询)给多个消费者进行处理,而不是每个消费者都收到所有的消息并处理,这样避免消息被重复消费。

2024-03-23 11:05:43 1106

原创 RocketMQ基础知识和常见问题

发布订阅模式中一般会涉及到多个消费者组,而每个消费者组在每个队列中的消费位置都是不同的。历史版本3.x 和 4.x,已经使用的生产者分组可以废弃无需再设置,不会对当前业务产生影响。很好地服务了集团大大小小上千个应用,在每年的双十一当天,更有不可思议的万亿级消息通过。中配置多个队列并且每个队列维护每个消费者组的消费位置 实现了 主题模式/发布订阅模式。对主题模型的实现,每个消息中间件的底层设计不同,就比如。消费者分组:是多个消费行为一致的消费者的负载均衡分组。修改时,会牵连着每个生产者和消费者,产生耦合。

2024-03-22 23:54:42 799

原创 消息队列基础知识

Pulsar 集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性,被看作是云原生时代实时消息流传输、存储和计算最佳解决方案。(二进制应用层协议),是应用层协议的一个开放标准,为面向消息的中间件设计,兼容 JMS。将短时间高并发产生的事务消息存储在消息队列中,然后后端服务再慢慢根据自己的能力去消费这些消息,可避免后端服务崩溃。,生产者负责发送消息,消费者负责处理消息。

2024-03-22 03:15:00 1692

原创 JVM垃圾回收之内存分配,死亡对象判断方法

JDK1.2 之前:如果 reference 类型的数据存储的数值代表另一块内存的起始地址,称这块内存代表一个引用。JDK1.2 以后,Java 对引用的概念进行了扩充,将引用分为强引用、软引用、弱引用、虚引用。(引用强度逐渐减弱)强引用:一个对象具有强引用,当内存空间不足时,Java 虚拟机会抛出 OutOfMemoryError 错误,使程序异常终止,不会随意回收具有强引用的对象来解决内存不足问题。

2024-03-21 22:08:37 1375

原创 java JVM内存区域和对象创建,内存布局,访问

Java 虚拟机自动内存管理,不需要像C/C++为每一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出。但把内存控制权交给 Java 虚拟机,一旦出现内存泄漏和溢出问题,如不了解虚拟机怎样使用内存,将很难排查错误。

2024-03-21 20:40:59 856

原创 线程和进程的一些基础知识

进程调用 exit()系统调用结束运行,内核会释放该进程所有资源,包括打开的文件、占用的内存等,但对应的 PCB 仍在系统中。在 Unix/Linux 系统中,子进程通过 fork()系统调用创建,会创建一个新进程,是原有进程的副本。子父进程运行相互独立,有各自的 PCB,父进程结束了,子进程仍可继续运行。多个进程/线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放,但此资源被其他进程/线程占用,形成死循环。操作系统管理进程的数据结构,一个进程一个PCB。读写锁:多个线程同时读,只允许一个线程写。

2024-03-21 10:45:21 467

原创 数据库优化之数据冷热分离

数据冷热分离:根据数据的访问频率和业务重要性,将数据分为冷数据和热数据,冷数据存储在存储在低成本、低性能的介质中,热数据存在高性能存储介质中。热数据:经常被访问和修改且需快速访问冷数据:不经常访问,对当前项目价值较低,但需长期保存。

2024-03-19 12:00:37 320

原创 负载均衡原理及算法

负载均衡指把用户请求分摊到不同服务器处理,提高系统的并发性和可靠性。可由专门的软件(更便宜)和硬件(性能好)实现。负载均衡分为服务端负载均衡和客户端负载均衡。主要应用在和之间,可以使用或者实现。应用于系统内部的不同的服务之间。客户端自己维护服务器地址列表,发送请求前,根据负载均衡算法选择某一台服务器处理请求。客户端负载均衡器和服务运行在同一个Java 程序里,无需额外的网络开销。但其实现受到编程语言的限制,如 Spring Cloud Load Balancer 只能用于 Java 语言。

2024-03-19 10:44:02 1176

原创 CDN工作原理

将静态资源分发到多个不同的地方以实现就近访问绝大部分公司都会在项目开发中使用 CDN 服务,但很少有自建 CDN 服务的公司。基于成本、稳定性和易用性考虑,建议直接选择专业的云厂商(比如阿里云、腾讯云、华为云、青云)或者 CDN 厂商(比如网宿、蓝汛)提供的开箱即用的 CDN 服务。

2024-03-16 00:56:17 334

原创 java高可用系统之降级 + 熔断

服务器压力太大,根据当前业务及流量对一些服务和页面有策略的降级,保证核心任务事务正常运行。

2024-03-16 00:20:38 367

原创 java 性能测试入门

作为开发,了解性能测试的指标,分类,工具可帮助我们写出性能更好的程序。

2024-03-15 12:08:44 539

原创 Java高可用系统限流 超时 重试

什么是高可用?高可用是指不管什么条件下,比如硬件故障或系统升级,系统都是可以使用的。用很多个9来衡量。如99.99%,表示总的运行时间只有0.01%的时间不可用。

2024-03-15 11:05:44 876

原创 SQL语句在MySQL中的执行过程

假设写完 redo log 后,机器挂了,binlog 日志没有被写入,机器重启后,这台机器会通过 redo log 恢复数据,但是 binlog 并没有记录该数据,后续进行机器备份的时候,会丢失这条数据,同时主从同步也会丢失这条数据。更新语句执行流程如下:分析器---->权限校验---->执行器--->引擎---redo log(prepare 状态)--->binlog--->redo log(commit 状态。:执行语句,执行前会校验用户有没有权限,没有权限,报错,有权限从存储引擎返回数据。

2024-03-14 17:51:30 521

原创 InnoDB对MVCC的实现

执行当前读时,锁定读到的记录和它们的间隙,防止其它事务在查询范围内插入数据。开始时间不同,每个事务读到的数据版本可能不同,同一个事务中,用户只能看到该事务开始时读的值和事务本身做的修改。在当前读下,读的都是最新数据,如果其它事务有插入新记录,并且刚好在当前事务查询范围内,就会产生幻读!之后其它事务的更新、插入记录版本对当前事务不可见,实现可重复读和防止快照读下的 “幻读”。当一个事务要对数据进行修改,为该事务创建一个数据快照,而不直接修改实际数据行。操作的记录只对事务本身可见,对其他事务不可见,该。

2024-03-13 23:52:56 942

原创 MySQL事务隔离级别

使用 Next-Key Lock 加锁保证不幻读,Next-Key Lock 是行锁(Record Lock)和间隙锁(Gap Lock)的结合,行锁只能锁住已存在的行,为避免插入新行,需依赖间隙锁。标准 SQL 隔离级别,REPEATABLE-READ(可重复读)不可解决幻读。隔离级别出现的原因:并发操作MYSQL数据,会出现脏读 不可重复读 幻读 三种问题。能解决脏读 不可重复读 叫可重复读,解决了不可重复读就是可重复读。隔离级别越低,事务请求的锁越少,大部分数据库系统隔离级别是。

2024-03-13 16:21:09 496

原创 Nacos作为配置中心的一些知识二

这些都是服务端做的事情,在LongPollingService.javad的459行,有个sendResponse()方法,作用是删除队列中的ClientLongPolling,防止数据推送完毕,时间到期后还要再检查一遍。然后在LongPollingService类的440行,直接进行返回,虽然源代码里边有检查的代码,但是并不会运行到那里去,实际上是直接走else里的内容,进行返回了。第一步 获取客户端请求的文件的md5值,查看是否发生变化,若发生md5值发生变化,则说明对应的配置文件发生了变化。

2023-12-01 15:47:25 417

原创 Nacos作为配置中心的一些知识一

问:配置中心拿来干嘛的?答:微服务架构中,每个微服务都需要一个配置文件。①会有n个微服务②每个微服务都有开发,生产,测试三个运行环境③每个微服务会布置到m台机器上。总共n*3*m个配置文件。其实这些配置文件的内容呢,很多是重复的。触发关键词:重复,所以把相同的内容提取出来,放配置中心里,统一管理。

2023-11-29 23:25:10 919

原创 Seata的一些知识二

11271510删除分支事务,释放全局锁removeBranch 释放全局锁onRemoveBranch方法调用removeBranchSession方法。

2023-11-27 16:15:16 391

原创 Seata的一些知识一

分布式事务指事务的参与者,支持事务的服务器,资源服务器以及事务管理器分别位于不同分布式系统的不同节点之上。问:什么是无侵入?什么是自动补偿?问:什么是长事务?注意:分布式事务能不用尽量不要用,引入了会引入很多相关的问题。

2023-11-27 15:10:12 1059

原创 Gateway的一些知识点

GatewayLoadBalancerClientAutoConfiguration类中有一个方法loadBalanceClientFilter返回一个LoadBalanceacalientafilter类。NettyConfiguration类里面有一个方法 gatewayHttpClient,返回一个HttpClient,通过这个客户端发送请求。//返回一个选定的服务。路由 一个ID,一个目的URL,一组谓词工厂,一组Filter组成。网关是流量的入口,常用功能:路由转发,权限校验,限流。

2023-11-25 10:42:06 447

原创 Sentinel的一些知识二

前提是:漏桶每秒处理20个请求,很多请求过来了,堆积到一起,一个队列里面。那么,第100个请求,被处理的时间是当前时间+5秒。调用rule.getRater().canPass()方法,返回DefaultController.canpass()多态的使用,canpass函数。问:没有窗口新建一个窗口?使用Feign发送请求,奥,这就连起来了呀,用OpenFeign发送请求,授权规则进行处理。问:等待时间大于超时时间,这个超时时间是什么地方确定的?主体是请求,一个请求过来,对这个请求的相关数据进行分析。

2023-11-24 15:34:55 973

原创 Sentinel的一些知识一

请求以均匀的速度通过,QPS是每秒通过的请求数,排队等待的做法就是,一秒除以QPS等于t秒,t小于等于1秒,每隔t秒处理一个请求。存在问题:系统内部转化成毫秒进行计算,最小时间单位是毫秒,所以使用排队等待,最大的QPS只有1000个。注意 需要添加配置 将web-context-unity参数设置为false,才可以根据不同的URL进行链路限流,如果不配置将无法生效。基本条件,在一秒内,最小请求数大于5,异常的比例阈值达到0.4时,熔断2秒。继续完善用一个类处理所有的异常 5种不同的异常。

2023-11-23 10:41:37 21

原创 OpenFeign的一些知识

还是需要写一个配置类?需要写一个类,告诉框架用这个拦截器。如果没有自定义配置,那么框架里边原始的client,会运行这些代码。同一微服务尽量保持单一,统一属性配置,或代码配置。一般配置日志和超时时间,用属性配置,contract一般不会动,很麻烦。问:HTTP是个网络协议,具体指的是什么协议?名称是map里的key,,通过名称获得上下文,进行请求就行。尽量使用属性配置,属性方式实现不了的情况下再考虑代码配置。问:怎么确定在发请求的时候用的是httpClient?找到哪个函数,写一些什么语句?

2023-11-22 16:46:16 26

原创 Nacos的一些知识

只要是一整套算法,不管是这算法是软件的算法还是硬件的算法,都会有一个名字和使用方法。就像卡尔曼滤波一样,就像图优化一样。其实这些协议就是一些算法,一堆步骤,来处理一个问题的策略,取了一个名字,叫 协议,就是方便交流的。if else 结构 中 如果 if 中的语句很多,else中的语句很少,可以转化结构写成这样的。同步失败了,发校验值发给其他服务,对比,缺少了一个值就复制过来,保证每个服务都是相同且是全量的。第三步 ILoadBalancer 设置了配置类用配置类,没有设置配置类,,用默认的。

2023-11-21 21:43:00 24

原创 Error:java:无效的源发行版:12

Error:java:无效的源发行版:12 - 许宝 - 博客园 (cnblogs.com)

2023-09-08 21:16:49 54

原创 我的学习笔记 2023/4/14

ros系统传递消息的方式是发布话题和接收话题。每个开发者定义的话题的名称不同。但是话题消息的类型是一样的,都用的ros定义好的数据类型,如sensor_msgs/Imu sensor_msgs/PointCloud2问题:找到那个相似的bag文件velodyne_sbg.bag的信息nsh_indoor_outdoor.bag 和0921_2.bag 包含的内容完全一致问题:ros接收话题时,话题的名称是独一无二的?还是需要指定路径下的某个话题?

2023-04-15 09:08:11 88

原创 我的学习笔记 2023/4/13

什么是 YAML?_lio_zero的博客-CSDN博客ubuntu - 想在 ubuntu 18.04 中删除 libboost1.65ubuntu - 想在 ubuntu 18.04 中删除 libboost1.65 - IT工具网问题:apt remove时无法定位软件包Ubuntu16.04 卸载旧版本Boost库并安装新版本Ubuntu16.04 卸载旧版本Boost库并安装新版本_卸载 boost 1.58_leo-wkd的博客-CSDN博客根本就没有1.58.0。

2023-04-14 09:17:59 117

原创 rosbag info bag_file02 无法读取

1.报错显示ascii codec can't decode byte ox8f in position 0:ordinal not in range(128)疑问:序数词超过128,说明这个bagfile02文件能转换成ASCII码吗?可能的原因:bagfile02是Unicode编码,而rosbag info 只能解读ASCII编码的文件可能的解决办法:①将bagfile02文件转换成ASCII编码任务 :将一个用Unicode编码的二进制文件转换为用ASCII编码的文件。

2023-04-12 19:55:40 415

原创 ubuntu16.04 python3.7.3查看numpy版本命令

Ubuntu16.04 python3.7.3 查看numpy版本

2023-02-03 10:13:41 628

原创 在线3D建模网址

在线3D建模

2022-12-24 17:49:39 258

原创 联邦卡尔曼滤波

联邦卡尔曼滤波是次优估计,是因为它的结果不是通过严格数学推导求最小值求出来的,中间取放大倍数 γ的时候,是人为设定的,会引起误差。

2022-12-22 17:49:46 596 2

原创 我的学习笔记 9月6号

我的笔记

2022-09-06 18:35:14 1224

原创 minGW 2022/7/27 安装教程 简单可用

minGW 2022/7/27 安装教程 简单可用

2022-07-27 21:54:02 347

原创 2022/7/1 学习日志

HD-map

2022-07-02 08:39:56 156

原创 2022/6/30 学习日志

3D点云的深度学习

2022-07-01 10:07:39 81

原创 2022/6/29学习日志

点云数据的预处理

2022-06-30 18:26:31 54

空空如也

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

TA关注的人

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