- 博客(231)
- 收藏
- 关注
原创 不好意思,Nginx 该换了!
今天,我们很高兴有机会在此介绍 Pingora,这是我们使用 Rust 在内部构建的新 HTTP 代理,它每天处理超过 1 万亿个请求,提高了我们的性能,并为 Cloudflare 客户带来了许多新功能,同时只需要我们以前代理基础架构的三分之一的 CPU 和内存资源。随着 Cloudflare 规模的扩大,我们已经超越了 NGINX 的处理能力。多年来它一直运作良好,但随着时间的推移,它在我们规模上的局限性意味着我们有必要构建一些新的东西。
2023-11-03 15:58:27
403
原创 手撕并发编程:十分钟搞定Java内存模型
在本文中,我们对 Java 内存模型进行了全面的概述。Java 内存模型是 Java 虚拟机规范的一部分,为 Java 开发人员提供了一种抽象的内存模型,用于描述多线程环境下的内存访问行为。Java 内存模型关注并发编程中的原子性、可见性和有序性问题,并提供了一系列同步原语(如volatile等)来实现这些原则。此外,还定义关系,用于描述操作之间的偏序关系,从而确保内存访问的正确性和一致性。Java 内存模型的主要优势在于它为并发编程提供了基础,简化了复杂性。
2023-08-17 23:40:25
406
原创 Mybatis Plus 如何处理大表查询?
在实际工作中当指定查询数据过大时,我们一般使用分页查询的方式一页一页的将数据放到内存处理。但有些情况不需要分页的方式查询数据或分很大一页查询数据时,如果一下子将数据全部加载出来到内存中,很可能会发生OOM(内存溢出);而且查询会很慢,因为框架耗费大量的时间和内存去把数据库查询的结果封装成我们想要的对象(实体类)。
2023-06-24 22:17:15
1028
原创 深度剖析InnoDB存储结构
大家都知道MySQL的数据都是存储在物理磁盘上的,那具体是保存在哪个文件呢?我们首先要知道MySQL存储的行为是由存储引擎实现的,不同的存储引擎保存的文件自然也不同。由于InnoDB是我们常用的存储引擎,也是MySQL默认的存储引擎,所以本文主要以InnoDB存储引擎展开讨论。
2023-06-15 22:40:23
1293
原创 高并发架构系统设计注意事项
做好一个高流量高并发的系统,不论前端还是后端,过程中每一个步骤都是至关重要的。设计一个系统除了满足功能性,还要考虑兼容性、易用性、可靠性、安全性、可维护性、可移植性等软件质量。同时要对系统的吞吐量、并发数、平均响应时间等指标要完全掌握,在指标异常时可以快速做出决策避免一系列问题发生。
2023-06-01 23:20:49
539
原创 一文学会 Java 动态编译
Java动态编译技术可以让我们在程序运行时动态地生成和加载Java代码,从而实现更加灵活和高效的应用程序。本文介绍了Java动态编译的基本概念、实现方法和相关案例。如果你对Java动态编译技术感兴趣,可以通过阅读的官方文档,进一步了解该技术的实现细节。同时,需要注意的是,Java动态编译技术虽然可以提供更高的灵活性和可扩展性,但在实际使用时也存在一些安全隐患。因为动态编译可以在程序运行时生成和加载代码,如果不加以限制和控制,可能会导致恶意代码的注入和执行。
2023-03-30 22:10:57
2853
2
原创 一文刨析 MySQL Buffer Pool
MySQL Buffer Pool (free链表、flush链表、冷热数据分离LRU链表、预读机制、chunk机制等)
2023-03-02 11:46:32
458
原创 MySQL中一条SQL是如何加锁的?(Gap Lock、Next-key Lock使用)
MySQL中一条SQL是如何加锁的?(Gap Lock、Next-key Lock使用)
2023-02-23 21:57:09
1859
原创 Linux 安装 Logstash
在上面的命令行中, -e 代表输入 配置字符串,定义了一个标准输入插件(即 stdin)和一个标准输出插件(即stdout),意思就是从命令行提取输入,并在命令行直接将提取的数据输出。如果想要更换输入和输出,只需要更换插件即可,这充分体现了Logstash管道配置的灵活性。在默认情况下,stdout输出插件的编解码器为 rubydebug ,所以输出内容包括了版本、时间等信息,其中message属性包含的就是命令行输入的字符。启动时应注意:-e 参数后要使用双引号。下载压缩包上传服务器。
2022-11-29 14:10:47
1191
原创 Dubbo 大坑 :Caused by: java.lang.IllegalStateException: Failed to check the status of the service
Dubbo 大坑Caused by: java.lang.IllegalStateException: Failed to check the status of the service
2022-07-21 23:41:04
1653
原创 SpringBoot Test 多线程报错:dataSource already closed
spring boot test 线程操作数据库异常
2022-06-17 16:25:45
3991
原创 Spring boot集成MyBatis-plus快速入门
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DuS1g0rL-1654418423221)(D:\MyConfiguration\le.chen\AppData\Roaming\Typora\typora-user-images\image-20220601
2022-06-05 16:41:45
715
原创 并发基础之线程与锁重点梳理与总结
本文主要将线程与锁的重点进行梳理与总结,从而能对并发基础有一个更好的掌握。我们按照如下流程来进行一个大致的梳理。1. 并发?并行?首先我们来点老生常谈的话题,什么是并发?什么是并行?相信这个大家应该都很了解了。并发:在同一时间段上同时执行,比如在十毫米这个时间段内,前五毫秒做一件事,后五毫秒做一件事。并行:在同一时间点上同时执行,要实现并行必须是多核CPU才能完成。那我们如何实现并发呢?这个问题实际上很简单,无非就是我们使用多个线程去实现并发。2. 线程?进程?上文我们提到了线程,那
2022-05-30 23:05:27
278
原创 深入理解Spring事件发布与监听
在使用Spring构建的应用程序中,适当使用事件发布与监听的机制可以使我们的代码灵活度更高,降低耦合度。Spring提供了完整的事件发布与监听模型,在该模型中,事件发布方只需将事件发布出去,无需关心有多少个对应的事件监听器;监听器无需关心是谁发布了事件,并且可以同时监听来自多个事件发布方发布的事件,通过这种机制,事件发布与监听是解耦的。本节将举例事件发布与监听的使用,并介绍内部实现原理。1. 简单案例接下来我们首先创建一个Spring boot项目来实现一个简单案例。1.1 自定义事件Spring
2022-05-04 22:03:41
1482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人