- 博客(17)
- 收藏
- 关注
原创 Dubbo
实现:Dubbo心跳时间heartbeat默认是1s,超过heartbeat时间没有收到消息,就发送心跳消息(provider,consumer一样),通常用于非幂等性的写操作,比如新增记录。项目一启动,加载配置文件的时候,就会初始化,服务的提供方Provider就会向注册中心注册自己提供的服务,从上面的适用范围总结,dubbo适合小数据量大并发的服务调用,以及消费者机器远大于生产者机器数的情况,可以,因为刚开始初始化的时候,消费者会将提供者的地址等信息拉取到本地缓存,按照本地缓存的地址进行调用,
2024-09-15 11:23:36
429
原创 zookeeper知识点
5.线程将当前zxid最大的Server设置为当前Server要推荐的Leader,如果此时获胜的Server获得n/2 + 1的Server票数,设置当前推荐的leader为获胜的Server,将根据获胜的Server相关信息设置自己的状态,否则,继续这个过程,直到leader被选举出来。解决epoch和zxid的冲突,并接受对方的提议,然后向对方发送接受提议完成的消息,重复这个流程,最后一定能选举出Leader。有了zookeeper的一致性文件系统,锁的问题变得容易。
2024-09-15 11:19:41
452
原创 Elasticsearch 分布式
对所有可以成为master的节点(node.master: true)根据nodeId字典排序,每次选举每个节点都把自己所知道节点排一次序,然后选出第一个(第0位)节点,暂且认为它是master节点。数据的多个分片可能分布在不同的节点中,因此发生故障导致分片数据不可用的概率也上升,为了解决这个问题,es通过使用给分片创建副本的方式来提供可用性。在写入Buffer的同时,ES会自动进行Merge操作,该操作会将多个Segment文件合并,在.del文件中被标记为删除的文档将不会被写入Segment,
2024-09-15 11:16:50
1237
原创 SpringBoot实现接口防抖的几种方案,杜绝重复提交
在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。key分隔符是用来将多个参数合并在一起的,比如userName是张三,userPhone是123456,那么完整的key就是"张三&123456",最后再加上redis锁前缀,就组成了一个唯一key。从测试的结果上看,防抖是做到了,但是随着缓存消失、锁失效,还是可以发起同样的请求,所以要真正做到接口幂等性,还需要业务代码的判断、设置数据库表的UK索引等操作。
2024-09-06 22:16:57
961
原创 60个Python脚本,助您自动化地完成各种任务,提升工作效率
•根据文件扩展名自动将文件移动到相应的文件夹。•监控 WiFi 连接是否正常。•批量生成电子证书。•读取 CSV 文件,发送个性化的邮件。•来自《黑帽子 Python》一书的源代码。•一个二十一点游戏。•使用 matplotlib 创建一个棋盘。•一个计算复利的 Python 脚本。•当输入的时间过去时显示一条消息。•一个 Python 脚本,用于在华氏度、摄氏度和开氏度之间转换温度。•一个 Python 脚本,用于裁剪给定的图像。•。
2024-09-06 21:48:26
750
原创 SpringBoot 扩展接口
一般情况下,Spring通过反射机制利用bean的class属性指定支线类去实例化bean,在某些情况下,实例化Bean过程比较复杂,如果按照传统的方式,则需要在bean中提供大量的配置信息。应该是很多人非常熟悉的一个类了,就是spring上下文管理器,可以手动的获取任何在spring上下文注册的bean,我们经常扩展这个接口来缓存spring上下文,包装成静态方法。之后,当有循环依赖的场景,当bean实例化好之后,为了防止有循环依赖,会提前暴露回调方法,用于bean实例化的后置处理。
2024-09-05 16:21:12
654
原创 java面试题一
当一个节点故障时,可能会导致锁的无法释放或锁的状态丢失,进而影响到其他客户端的锁获取和系统的一致性。它允许你在请求处理前、处理后以及视图渲染完成前执行自定义逻辑,可以用来对请求地址做一些认证授权、预处理,也可以计算一个请求的响应时间等,还可以处理跨域(CORS)问题。1,了解事务的ACID属性:一致性、持久性、原子性、隔离性,只有当前三条性质都满足了,才能保证事务的一致性。而如果你需要一个更全面的平台来管理你的应用,并且希望有更多的功能和灵活性,那么Nacos 更合适,
2024-09-04 15:58:00
1251
原创 mysql优化面试一
如果你将其设置为一个较小的值,比如80,那么页面就不会被完全填满,留出一些空间用于后续插入,这样可以减少页分裂的次数。如果使用UUID作为聚簇索引(即主键),虽然插入操作仍然会导致页分裂,但因为主键和数据在一起,辅助索引(非聚簇索引)通常不会受到太大影响。这是因为新插入的UUID值可能在B+树中的位置是随机的,每次插入都可能导致节点分裂,进而影响性能。: 虽然这个命令不会改变UUID索引的本质问题,但是通过定期整理表空间,可以回收由于删除和更新操作留下的未使用空间,间接减少页分裂的影响。
2024-09-04 15:35:47
671
原创 Redis的热点key
在Redis中,我们把访问频率高的key,称为热点key。如果某一热点key的请求到服务器主机时,由于请求量特别大,可能会导致主机资源不足,甚至宕机,从而影响正常的服务。主要会带来这些问题: 资源过载或者内存资源紧张、负载不均衡、主从同步延迟、缓存击穿.CPU资源过载:如果某个Key被频繁访问,处理这些请求的Redis实例可能出现CPU过载的情况,导致处理其他请求的能力下降,影响整体性能。
2024-09-04 15:26:39
1388
原创 Spring 3.0 引入了纯注解开发模式
上面这个 @Service 注解告诉Spring,这个类是业务层的组件,而 @Autowired 注解则是Spring的“搬运工”,它会自动把 UserRepository 注入到 UserService 中。瞧,就这么简单一个注解,Spring 就会把这个类的实例放到它的IOC容器里,你再也不用在xml文件里手动配置了。通过注解配置,你只需要几行代码,就能让Spring自动管理MyBatis的Mapper和SqlSessionFactory,再也不用手动配置那些冗长的xml了。
2024-09-03 23:17:25
369
1
原创 Util 工具类-Hutool 简介
Hutool 是一个开源的 Java 工具包,专注于提供各种常见的工具类,帮助开发者减少重复代码,实现更简洁、更高效的开发。
2024-09-03 14:47:59
424
原创 Nacos 的 长轮询 定时机制
/调用 /v1/cs/configs/listener 接口实现长轮询请求,返回的 HttpResult 里包含存在数据变更的 Data ID、Group、Tenant。//【断点步入 1.3.2】读取变更配置,这里的 dataId、group 和 tenant 是【1.3.1】里获取的。Value 是对应的存储在 Nacos 服务器上的配置文件的内容;:调用 /v1/cs/configs/listener 接口实现长轮询请求;方法,里面是长轮询的核心处理逻辑,主要作用是把客户端的长轮询请求封装成。
2024-09-03 14:08:14
906
原创 Linux 50个简单命令
工作中常用的50+ Linux 命令,cat:连接文件并打印到标准输出。mv:移动或重命名文件或目录。grep:在文件中搜索字符串。less:逐页查看文件内容。head:查看文件开头部分。tail:查看文件末尾部分。pwd:显示当前工作目录。zip/uzip 解压缩。rmdir:删除空目录。cp:复制文件或目录。rm:删除文件或目录。mkdir:创建目录。
2024-09-03 14:00:55
346
原创 java基础特别版
01:Java 基础Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需
2022-05-11 21:04:29
84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人