自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java是世界上最好的语言

今天你学Java了嘛?

  • 博客(231)
  • 收藏
  • 关注

原创 不好意思,Nginx 该换了!

今天,我们很高兴有机会在此介绍 Pingora,这是我们使用 Rust 在内部构建的新 HTTP 代理,它每天处理超过 1 万亿个请求,提高了我们的性能,并为 Cloudflare 客户带来了许多新功能,同时只需要我们以前代理基础架构的三分之一的 CPU 和内存资源。随着 Cloudflare 规模的扩大,我们已经超越了 NGINX 的处理能力。多年来它一直运作良好,但随着时间的推移,它在我们规模上的局限性意味着我们有必要构建一些新的东西。

2023-11-03 15:58:27 249

原创 手撕并发编程:十分钟搞定Java内存模型

在本文中,我们对 Java 内存模型进行了全面的概述。Java 内存模型是 Java 虚拟机规范的一部分,为 Java 开发人员提供了一种抽象的内存模型,用于描述多线程环境下的内存访问行为。Java 内存模型关注并发编程中的原子性、可见性和有序性问题,并提供了一系列同步原语(如volatile等)来实现这些原则。此外,还定义关系,用于描述操作之间的偏序关系,从而确保内存访问的正确性和一致性。Java 内存模型的主要优势在于它为并发编程提供了基础,简化了复杂性。

2023-08-17 23:40:25 275

原创 Mybatis Plus 如何处理大表查询?

在实际工作中当指定查询数据过大时,我们一般使用分页查询的方式一页一页的将数据放到内存处理。但有些情况不需要分页的方式查询数据或分很大一页查询数据时,如果一下子将数据全部加载出来到内存中,很可能会发生OOM(内存溢出);而且查询会很慢,因为框架耗费大量的时间和内存去把数据库查询的结果封装成我们想要的对象(实体类)。

2023-06-24 22:17:15 717

原创 深度剖析InnoDB存储结构

大家都知道MySQL的数据都是存储在物理磁盘上的,那具体是保存在哪个文件呢?我们首先要知道MySQL存储的行为是由存储引擎实现的,不同的存储引擎保存的文件自然也不同。由于InnoDB是我们常用的存储引擎,也是MySQL默认的存储引擎,所以本文主要以InnoDB存储引擎展开讨论。

2023-06-15 22:40:23 996

原创 高并发架构系统设计注意事项

做好一个高流量高并发的系统,不论前端还是后端,过程中每一个步骤都是至关重要的。设计一个系统除了满足功能性,还要考虑兼容性、易用性、可靠性、安全性、可维护性、可移植性等软件质量。同时要对系统的吞吐量、并发数、平均响应时间等指标要完全掌握,在指标异常时可以快速做出决策避免一系列问题发生。

2023-06-01 23:20:49 423

原创 深度剖析Mybatis-plus Injector SQL注入器

深度剖析Mybatis-plus Injector SQL注入器

2023-05-18 00:07:42 1997 1

原创 一文学会 Java 动态编译

Java动态编译技术可以让我们在程序运行时动态地生成和加载Java代码,从而实现更加灵活和高效的应用程序。本文介绍了Java动态编译的基本概念、实现方法和相关案例。如果你对Java动态编译技术感兴趣,可以通过阅读的官方文档,进一步了解该技术的实现细节。同时,需要注意的是,Java动态编译技术虽然可以提供更高的灵活性和可扩展性,但在实际使用时也存在一些安全隐患。因为动态编译可以在程序运行时生成和加载代码,如果不加以限制和控制,可能会导致恶意代码的注入和执行。

2023-03-30 22:10:57 2179 2

原创 一文刨析 MySQL Buffer Pool

MySQL Buffer Pool (free链表、flush链表、冷热数据分离LRU链表、预读机制、chunk机制等)

2023-03-02 11:46:32 328

原创 MySQL中一条SQL是如何加锁的?(Gap Lock、Next-key Lock使用)

MySQL中一条SQL是如何加锁的?(Gap Lock、Next-key Lock使用)

2023-02-23 21:57:09 1395

原创 MySQL中MVCC如何解决不可重复读以及幻读?

Mysql中MVCC是如何解决不可重复读以及幻读?RR模式和RC模式的区别?

2023-02-22 23:12:40 1480 1

原创 宕机了,Redis 如何避免数据丢失?

宕机了,Redis 如何避免数据丢失?采用AOF和RDB结合的方式来处理该问题。

2023-02-19 23:39:59 1908

原创 分布式事务的背景和解决方案

分布式事务的背景和解决方案(2PC,3PC,CAP理论,base理论,基于RocketMQ的事务消息方案)

2023-01-11 23:08:49 908

原创 Typora 图床教程(阿里云版)

Typora 图床教程(阿里云版)

2023-01-07 15:40:19 896

原创 ELK 日志框架搭建 (springboot 接入 elk)

ELK 日志框架搭建 (springboot 接入 elk)

2022-12-16 11:38:31 2126

原创 Spring boot 自定义 Starter 及 自动配置

Spring boot 自定义 Starter 及 自动配置

2022-12-06 23:56:04 1694

原创 Spring boot 启动流程及外部化配置

spring boot 启动流程及外部化配置

2022-12-04 23:05:44 1486

原创 Spring boot 自动装配原理

Spring boot 自动装配原理

2022-12-03 21:26:13 1052

原创 SPI 机制详解

SPI 机制详解

2022-12-03 19:52:30 823

原创 Linux 安装 Kibana

Linux 下 安装 kibana

2022-11-29 14:25:28 172

原创 Linux 安装 ElasticSearch

linux下安装ES

2022-11-29 14:20:46 1346

原创 Linux 安装 Logstash

在上面的命令行中, -e 代表输入 配置字符串,定义了一个标准输入插件(即 stdin)和一个标准输出插件(即stdout),意思就是从命令行提取输入,并在命令行直接将提取的数据输出。如果想要更换输入和输出,只需要更换插件即可,这充分体现了Logstash管道配置的灵活性。在默认情况下,stdout输出插件的编解码器为 rubydebug ,所以输出内容包括了版本、时间等信息,其中message属性包含的就是命令行输入的字符。启动时应注意:-e 参数后要使用双引号。下载压缩包上传服务器。

2022-11-29 14:10:47 1004

原创 ElasticSearch从入门到入坟

就是索引的相关原理,倒排表的结构、FST原理、咆哮位图、索引帧等压缩算法。

2022-11-26 22:14:45 581 1

原创 一文学会如何使用适配器模式

简单的设配器模式

2022-09-05 23:15:30 333

原创 一文学会如何使用建造者模式

建造者模式

2022-08-24 23:25:01 302

原创 一文学会如何使用原型模式

原型模式的使用

2022-08-21 21:42:49 176

原创 一文学会如何使用工厂模式

工厂模式

2022-08-14 15:52:16 227

原创 Dubbo案例轻松入门

dubbo从入门到精通 包括一些高级用法

2022-07-24 23:50:50 913

原创 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 1479

原创 Spring Cloud Hyxtrix的基本使用

Spring Cloud Hyxtrix的基本使用

2022-07-13 23:28:27 379

原创 Nacos 配置中心整体设计原理分析(持久化,集群,信息同步)

Nacos配置中心整体设计原理分析

2022-06-30 23:17:34 1620

原创 Nacos-配置中心基本使用

Nacos 作为配置中心的基本使用

2022-06-28 22:51:35 1569

原创 Spring Cloud OpenFeign模版化客户端

Spring Cloud OpenFeign模版化客户端

2022-06-23 22:21:52 390 1

原创 Spring Cloud Eureka服务注册中心入门

spring cloud eureka 入门

2022-06-20 22:54:08 426

原创 SpringBoot Test 多线程报错:dataSource already closed

spring boot test 线程操作数据库异常

2022-06-17 16:25:45 3341

原创 一文学会如何使用Ribbon进行负载均衡

spring cloud 生态中使用ribbon 进行负载均衡

2022-06-15 22:51:16 766

原创 spring boot+mybatise-plus实现多数据源简单案例

多数据源简单案例

2022-06-06 14:54:52 322 1

原创 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 603

原创 Springboot基础配置(banner,配置文件等)

基础配置

2022-06-01 15:21:47 455

原创 并发基础之线程与锁重点梳理与总结

本文主要将线程与锁的重点进行梳理与总结,从而能对并发基础有一个更好的掌握。我们按照如下流程来进行一个大致的梳理。1. 并发?并行?首先我们来点老生常谈的话题,什么是并发?什么是并行?相信这个大家应该都很了解了。并发:在同一时间段上同时执行,比如在十毫米这个时间段内,前五毫秒做一件事,后五毫秒做一件事。并行:在同一时间点上同时执行,要实现并行必须是多核CPU才能完成。那我们如何实现并发呢?这个问题实际上很简单,无非就是我们使用多个线程去实现并发。2. 线程?进程?上文我们提到了线程,那

2022-05-30 23:05:27 224

原创 深入理解Spring事件发布与监听

在使用Spring构建的应用程序中,适当使用事件发布与监听的机制可以使我们的代码灵活度更高,降低耦合度。Spring提供了完整的事件发布与监听模型,在该模型中,事件发布方只需将事件发布出去,无需关心有多少个对应的事件监听器;监听器无需关心是谁发布了事件,并且可以同时监听来自多个事件发布方发布的事件,通过这种机制,事件发布与监听是解耦的。本节将举例事件发布与监听的使用,并介绍内部实现原理。1. 简单案例接下来我们首先创建一个Spring boot项目来实现一个简单案例。1.1 自定义事件Spring

2022-05-04 22:03:41 1385

空空如也

空空如也

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

TA关注的人

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