- 博客(758)
- 资源 (321)
- 收藏
- 关注
原创 docker 部署 filebeat 采集日志导入到elasticsearch 设置pipeline
docker 部署 filebeat 采集日志导入到elasticsearch 设置pipeline。
2024-10-02 21:45:26 621
原创 volatile 浅谈
在Java中,volatile 关键字是一种轻量级的同步机制,它用于确保变量的可见性和有序性,但不保证原子性。当我们说 volatile 屏障时,我们实际上是在讨论 volatile 变量如何影响Java内存模型(JMM)中的操作重排序和内存可见性问题。
2024-08-15 18:00:44 234
原创 JAVA 如何获取线程中异常
在Java中,获取线程异常的方式通常依赖于你如何创建和管理线程。Java线程可以通过实现Runnable接口或继承Thread类来创建。对于异常处理,有几种方法可以做到这一点。
2024-08-15 17:03:30 285
原创 NIO线程模型
通道是NIO中用于数据读写的组件,类似于标准IO中的流,但与之不同的是,通道是可以双向读写的。:选择器是NIO中的一个重要组件,用于检测一个或多个通道,并确定哪个通道已经准备好进行读或写。这样,一个单独的线程可以管理多个通道,从而实现高效的IO操作。:在NIO中,所有的数据读写都是通过缓冲区来进行的。:根据选择器返回的就绪事件,对相应的通道进行读写操作。:由于NIO采用了非阻塞的方式,因此可以避免传统IO模型中的阻塞现象,提高IO效率。:首先,需要将通道注册到选择器中,并指定感兴趣的事件(如读、写等)。
2024-08-09 16:26:52 457
原创 SpringBoot3 响应式编程
响应式编程是一种编程范式,它使用异步数据流来处理数据,并基于观察者模式来触发事件的响应。在Spring Boot 3中,响应式编程主要通过Spring WebFlux和Spring Data R2DBC等组件来实现。Spring Boot 3中的响应式编程通过Spring WebFlux和Spring Data R2DBC等组件提供了强大的异步、非阻塞和基于事件的数据处理能力。这使得开发者能够构建高性能、可扩展的Web应用程序,以应对现代互联网应用中的高并发和实时数据处理挑战。
2024-08-09 14:40:40 657
原创 Spring Boot 3 新特性
Spring Boot 3 官方支持Java 17,并且由于Java 17带来了许多新特性(如Record类、密封类和接口、模式匹配等),Spring Boot 3 也对这些新特性进行了优化和整合,使得开发者可以更高效地编写代码。: Spring Boot 3 基于 Spring Framework 6 构建,后者同样支持Java 17,并引入了许多新特性,如更细粒度的配置、更高效的日志记录、对WebFlux的增强等。这些改进使得开发者可以更方便地跟踪和诊断应用程序中的问题。
2024-08-09 14:00:04 768
原创 JVM 加载阶段 Class对象加载位置是在 堆中还是方法区?
Class对象的加载位置:Class对象本身是加载到堆区中的。类的类型信息加载位置:类的类型信息(元数据)是加载到方法区(或元空间)中的。因此,对于问题“jvm 加载阶段 Class加载到堆中还是方法区”,答案是:Class对象加载到堆中,而类的类型信息加载到方法区(或元空间)中。这两个区域在JVM的类加载过程中都扮演着重要的角色,共同支持着Java程序的运行。
2024-08-06 17:56:45 595
原创 Redis 缓存击穿、穿透、雪崩
缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又都去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。在这个时间段内,对缓存中的所有key的访问都会落在DB上,造成DB访问量骤增,引起DB压力瞬间增大,甚至导致DB宕机。: 缓存穿透是指用户查询数据,在数据库没有,缓存中自然也不会有。:在访问缓存之前,先使用分布式锁或其他并发控制手段,确保只有一个线程或进程去数据库查询,并将结果更新到缓存中,其他线程或进程则等待缓存更新后访问。
2024-08-06 17:44:49 343
原创 Mysql 组合索引最左原则
MySQL中的组合索引(也称为复合索引或联合索引)是基于表中多个列创建的索引。当查询条件中使用了组合索引中的列时,MySQL可以利用这个索引来加速查询。然而,在使用组合索引时,必须遵循一个重要的原则,即“最左前缀原则”(Leftmost Prefix Rule)。
2024-08-06 16:36:52 313
原创 Spring Boot 常用设计模式
在Spring Boot中,常用的设计模式多种多样,这些设计模式不仅帮助维护了代码的清晰度和灵活性,还使得框架易于扩展和维护。
2024-08-06 16:18:47 1420
原创 Java NIO(Non-blocking I/O)简单理解
Java NIO是Java平台中用于高效输入/输出(I/O)操作的一套新的API,与标准的Java I/O(基于流的阻塞I/O)不同,Java NIO提供了非阻塞式的I/O操作。
2024-08-06 15:28:24 444
原创 JAVA 分层规约
Web 层绝不应该继续往上抛异常,因为已经处于顶层,如果意识到这个异常将导致页面无法正常渲染,那么就应该直接跳转到友好错误页面,尽量加上友好的错误提示信息。• BO(Business Object):业务对象,可以由 Service 层输出的封装业务逻辑的对象。3. Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。• VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。层,产生的异常类型有很多,无法用细粒度的异常进。
2024-08-05 14:30:16 363
原创 Mysql binlog 三种模式
(二进制日志)有三种主要的模式,它们决定了二进制日志中记录信息的详细程度。这些模式对于复制、数据恢复以及审计等场景非常重要。)来设置binlog的模式。可以通过MySQL的配置文件(通常是。注意:修改配置后需要重启MySQL服务才能生效。
2024-08-04 10:59:20 258
原创 Docker export 和 save 区别
docker export 和 docker save 的主要区别在于它们处理的对象和用途不同。。
2024-08-02 10:12:50 529
原创 Nginx 常用配置
全局配置主要设置一些影响Nginx服务器整体运行的配置指令,包括运行Nginx的用户和组、进程数、日志文件路径等。用户和组:user [user] [group];指定运行Nginx的用户和用户组,默认为nobody。进程数:worker_processes auto;指定工作进程的数量,建议设置为CPU核心数或核心数的倍数。错误日志:error_log /var/log/nginx/error.log;指定全局错误日志文件的路径。PID文件:pid /run/nginx.pid;
2024-08-01 12:04:51 554
原创 Docker compose 一键安装超多中间件
注意:● 将下面文件中 kafka 的 119.45.147.122 改为你自己的服务器IP。● 所有容器都做了时间同步,这样容器的时间和linux主机的时间就一致了。
2024-07-29 16:55:27 510
原创 Centos7 Docker engine 安装并设置国内镜像源
请将 替换为您选择的镜像源的 URL。例如,阿里云的 Docker 镜像源 URL 可能类似于 https://.mirror.aliyuncs.com,其中 是您的阿里云账号 ID。在 CentOS 7 上安装 Docker Engine 并设置国内镜像源的过程可以分为两个主要步骤:安装 Docker Engine 和配置国内镜像源。验证配置: 运行一个 Docker 容器,并观察拉取镜像的速度,以验证是否已成功配置国内镜像源。安装 Docker CE: 安装最新版本的 Docker CE。
2024-07-29 12:23:19 646
原创 Linux 常用命令
安全地复制文件到远程主机或从远程主机复制文件到本地。:查看文件内容,也可以将多个文件内容合并输出。:强大的文本分析工具,用于处理文本和数据提取。:在文件中搜索匹配的行。:实时显示系统资源的使用情况和进程信息。:流编辑器,用于对文本进行过滤和转换。结合使用,可以显示所有用户的进程信息。用于查看文件和目录的磁盘空间占用情况。:显示系统信息,如内核版本、主机名等。:显示文件的前几行或后几行。(显示所有文件,包括隐藏文件)、:创建空文件或修改文件的时间戳。:显示当前工作目录的完整路径。:显示当前运行的进程。
2024-07-27 22:19:19 475
原创 Spring Security 原理
需求满足:如果应用程序有特定的安全需求,用户可以自定义Spring Security的配置。通过编写自定义过滤器、用户认证提供者、访问决策管理器等组件,用户可以扩展或修改Spring Security的行为以满足特定需求。
2024-07-27 21:26:45 446
原创 AutoConfigurationImportSelector 作用
可扩展性:通过实现AutoConfigurationImportSelector接口,开发者可以自定义Spring Boot的自动配置行为。这意味着开发者可以根据项目的具体需求,添加或修改自动配置的规则,从而实现更精细化的控制。灵活性:AutoConfigurationImportSelector提供了灵活的配置方式,允许开发者在不影响全局配置的情况下,针对特定场景进行定制。
2024-07-27 21:23:45 350
原创 Spring 可以通过多少种方式完成依赖注入?
依赖注入(Dependency Injection,DI)是一种设计模式,旨在通过将一个对象所需的依赖关系传递给它,来减少组件之间的耦合度,使得应用程序代码更加松耦合、易于维护和测试。
2024-07-27 21:17:27 360
原创 BeanFactory和ApplicationContext有什么区别?
BeanFactory:是Spring框架中最底层的接口,是IoC(控制反转)容器的核心。它主要负责Bean的定义、加载、实例化、依赖注入和生命周期管理。BeanFactory提供了IoC容器最基本的功能。ApplicationContext:是BeanFactory的子接口,它扩展了BeanFactory的功能,并提供了更全面的容器特性。ApplicationContext是Spring应用中的核心容器,用于管理和配置应用中的对象(称为beans)。
2024-07-27 21:14:54 350
原创 java8 字符串常量池存放在哪
在Java 8中,字符串字面量和其他类常量被存储在元空间(Metaspace)的字符串常量池中,而元空间是Java虚拟机(JVM)的本地内存的一个区域。如果没有,则会在字符串常量池中创建一个新的字符串,并将引用指向它。)不会被存储在字符串常量池中,它们总是被创建在Java堆上,并且与字符串常量池中的任何条目无关。需要注意的是,虽然字符串常量池在逻辑上位于元空间中,但字符串对象本身(即String类的实例)仍然位于Java堆上。字符串常量池中的条目只是对这些对象的引用,而不是对象本身。
2024-07-23 09:36:04 295
原创 硅谷甄选项目笔记
在vue框架中事件分为两种:一种是原生的DOM事件,另外一种自定义事件。原生DOM事件可以让用户与网页进行交互,比如click、dbclick、change、mouseenter、mouseleave…自定义事件可以实现子组件给父组件传递数据自定义事件可以实现子组件给父组件传递数据.在项目中是比较常用的。比如在父组件内部给子组件(Event2)绑定一个自定义事件在Event2子组件内部触发这个自定义事件我是子组件2
2024-07-01 12:47:43 1377 2
原创 Dockerfile ubuntu安装openjdk8 和 ffmpeg
【代码】Dockerfile ubuntu安装openjdk8 和 ffmpeg。
2024-05-28 17:14:53 312 1
转载 java 实现 websocket的五种方式
本文主要讲述在Java技术领域实现websocket服务的五种方式. 使用Java原生代码实现websocket服务的方法, 此方法需要引入一个第三方库java-websocket.jar. 截至目前2023/01/01最新版本为1.5.3. 项目源代码位于: https://github.com/TooTallNate/Java-WebSocket 示例代码位于: https://github.com/TooTallNate/Java-WebSocket/tree/master/src/m
2024-02-06 16:06:00 10425 2
原创 Sentinel 源码分析
例如,我们在order-service服务中,将的方法标记为一个资源。1)首先在order-service中引入sentinel依赖
2024-02-05 10:33:40 1421
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人