- 博客(20)
- 收藏
- 关注

原创 Redis缓存穿透和雪崩,哨兵模式和集群部署详解!!(Java工程师必读)
缓存穿透是指在查询一个数据时,缓存中没有该数据,需要从数据库中查询。但是,如果大量的请求都查询同一个不存在的数据,就会导致数据库的负载增加,甚至可能导致数据库崩溃。Java 代码中解决缓存穿透问题的一个常见方法是使用布隆过滤器(Bloom Filter)。布隆过滤器是一种概率性数据结构,可以用于快速判断一个元素是否可能存在于一个集合中。在上述代码中,类使用一个BitSet来表示布隆过滤器,并使用一个Map来记录元素与哈希值的映射关系。add方法用于向布隆过滤器中添加元素,
2024-03-01 20:05:16
1164
原创 springcloud 整合 RabbitMQ 消息中间件
另外,还需要确保在启动应用时,正确配置和启动 Spring Cloud Stream 和 RabbitMQ 相关的服务。消费者在确认消息已处理之前出现故障,导致消息可能被重新分配给其他消费者或丢失。消息中间件的配置问题,例如缓冲区大小设置不合理,导致消息在缓冲区溢出时丢失。生产者在发送消息后没有正确处理返回的确认信息,导致消息可能被丢弃。生产者在发送消息时出现异常,导致消息未能成功发送到消息中间件。消费者在处理消息时出现异常,导致消息未能被正确处理。消息中间件在处理消息时出现故障,导致消息丢失。
2024-03-03 20:54:10
1064
原创 Nginx保姆级教程,知识回顾
Nginx 的高可用可以通过主从配置、负载均衡等方式实现,主从配置即配置一台主 Nginx 服务器和多台从 Nginx 服务器,主服务器负责处理请求,从服务器负责备份,当主服务器故障时,从服务器可以自动接管。Nginx 的进程模型是单进程多线程的,主进程负责管理和协调其他进程,包括接收和处理客户端的请求、加载配置文件、管理工作进程等。以上是 Nginx 的一些基本概述、作用、配置文件、反向代理、负载均衡、动静分离、项目部署和高可用的实现方式,以及进程模型。Nginx 的负载均衡功能可以通过配置文件中的。
2024-03-03 16:00:52
308
原创 Java面试代码题(解题思路附源码)
可以使用StringBuilder的reverse()方法将字符串倒序输出,或者将字符串转换为字符数组,然后使用循环逆序遍历输出。判断一个整数是否是素数可以使用循环遍历从2到该整数的平方根,如果存在能够整除该整数的数,则该整数不是素数,否则是素数。可以使用第三个变量来实现两个整数的交换,也可以使用异或运算来实现两个整数的交换。写一个Java程序,实现将一个字符串中的字母和数字分别取出并输出。写一个Java程序,实现找出一个数组中的最大数和最小数。写一个Java程序,实现将两个整数交换位置的功能。
2024-03-01 19:53:34
282
原创 RESTful API原理 , 以及如何构建web应用程序
设计资源和URI:确定应用程序中的资源,并为每个资源分配唯一的URI。总结来说,使用RESTful API构建web应用程序需要确定资源和URI、定义HTTP方法、编写资源处理函数、返回响应、测试和调试、编写文档和保护安全。统一接口:使用标准的HTTP方法,如GET、POST、PUT、DELETE等,来实现对资源的操作。文档和安全:编写API文档,描述每个资源的URI、支持的HTTP方法、参数和返回结果。还需考虑API的安全性,如使用API密钥、身份验证和授权等措施来保护API的访问和数据的安全性。
2024-03-01 19:50:50
235
原创 服务熔断和服务降级和限流有什么区别
服务熔断、服务降级和限流都是在分布式系统中常用的容错策略,用于处理服务故障或性能下降的情况。服务熔断通常是在服务出现故障或响应时间过长时触发。当服务的错误率或响应时间超过预先设定的阈值时,熔断机制会主动切断对该服务的调用,以防止故障扩散到其他服务或系统。服务降级通常是在服务负载过高或资源不足时触发。当服务无法及时处理请求或达到性能极限时,降级机制会降低服务的级别或功能,以确保系统的整体稳定性和可用性。限流通常是在服务接收到的请求数量超过其处理能力时触发。
2024-03-01 19:48:45
1640
原创 Java并发编程-可重入锁
当一个线程获取到锁时,可以独占访问共享资源,其他线程需要等待该线程释放锁后才能访问。在并发编程中,为了保证共享资源的一致性和线程安全性,需要使用锁。可重入锁是一种特殊的锁,允许同一个线程在持有锁的情况下再次获取锁。通过使用可重入锁,可以确保在嵌套的同步代码块中,同一个线程可以安全地获取和释放锁,而不会造成死锁或其他同步问题。关键字可以用于修饰方法或代码块,它会自动为当前对象获取锁,并在执行完同步代码后释放锁。接口需要显式地获取锁和释放锁,可以提供更灵活的控制和性能优化。实现的锁都是可重入锁。
2024-03-01 19:29:03
519
原创 springcloud-nacos 配置中心和集群搭建
至于 Spring Cloud Nacos 配置中心的实现原理,它基于 Nacos 提供的配置管理功能,通过 HTTP 或 gRPC 协议与 Nacos 服务器进行通信,获取和更新配置信息。在 Spring Cloud 项目中集成 Nacos 配置中心:在你的 Spring Cloud 项目中添加 Nacos 配置中心的依赖,并在配置文件中指定 Nacos 服务器的地址和端口。下载并安装 Nacos:首先,你需要从 Nacos 的官方网站下载 Nacos 服务器的二进制文件,并将其解压到合适的目录。
2024-03-01 19:24:26
425
原创 Java 线程池的工作原理
家人们注意,线程池在项目中的使用需要根据具体的需求进行配置和优化,以达到最佳的性能和资源利用率。同时,线程池也提供了一些其他的方法和参数,可以根据实际情况进行调整。方法创建了一个固定大小为 3 的线程池。方法定义了具体的任务逻辑。最后,在程序结束时,调用。方法提交了 5 个任务。每个任务都是一个实现了。接口的匿名内部类,其中的。在上述示例中,我们使用。
2024-02-29 21:53:25
253
原创 Java Vector容器怎么用
是一个古老的动态数组实现的集合类。它类似于数组,但提供了一些额外的功能,如动态调整大小、自动扩容等。是一个同步的容器,在多线程环境下可以保证线程安全,但在单线程环境下,其性能可能不如其他非同步的集合类,如。在实际开发中,根据具体需求选择合适的集合类使用。方法获取元素数量,然后通过循环遍历元素。方法删除指定的元素,或者通过索引删除。方法通过索引获取指定位置的元素。还提供了一些其他方法,如。判断是否包含指定元素等。这将创建一个可以存储。
2024-02-24 16:34:15
354
原创 CAS(Compare And Swap)对比交换
请注意,CAS 操作是原子性的,意味着在更新值的过程中不会被其他线程中断。如果多个线程同时尝试使用 CAS 操作更新同一个变量,只有一个线程会成功,其他线程会失败并重新尝试。CAS(Compare And Swap)是一种用于实现线程安全的原子操作,它可以在不使用锁的情况下更新共享变量的值。CAS 的基本思想是通过比较当前值和预期值,如果它们相等,则将新值替换为当前值。如果当前值等于预期值,则将新值更新为当前值,并返回。循环来不断尝试使用 CAS 操作更新值,直到更新成功为止。方法获取更新后的值。
2024-02-24 15:42:24
220
原创 Docker 的常用命令使用和说明介绍
这只是 Docker 的一些常用命令的示例,Docker 提供了许多其他命令来满足不同的需求。: 该命令用于将一个容器保存为一个新的镜像。你需要指定容器的名称或 ID,以及新镜像的名称。你需要指定容器的名称或 ID 以及要执行的命令。: 该命令用于将本地的镜像推送到镜像仓库。你需要指定镜像的名称和仓库的名称。这将显示所有正在运行的容器的信息,包括容器 ID、镜像、命令、创建时间等。: 该命令用于停止一个运行中的容器。这将显示所有本地存储的镜像的信息,包括镜像名称、标签、ID、创建时间等。
2024-02-24 11:04:38
671
原创 Spring Cloud 原理及相关技术
而 Spring Cloud 作为一个流行的微服务框架,为开发者提供了一系列的工具和组件,使得构建和部署微服务变得更加简单和高效。总的来说,Spring Cloud 为构建和部署微服务提供了一套完整的解决方案,它简化了微服务的开发和管理,使开发者能够专注于业务逻辑的实现。这样可以提高应用的灵活性、可维护性和可扩展性。Spring Cloud 是基于 Spring Boot 框架的,它利用了 Spring Boot 的优势,如自动配置、快速启动等,同时还提供了一些额外的功能和服务,以支持微服务的开发和部署。
2024-02-24 10:59:34
567
原创 json介绍和基本使用
总的来说,在使用 JSON 时,需要遵循 JSON 的规范和注意上述事项,以确保数据的正确性、可读性和安全性。JSON 是一种非常实用的数据交换格式,广泛应用于 Web 应用程序、移动应用程序和其他领域的数据交互。(JavaScript Object Notation) 是一种常用的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。在上面的示例中,我们首先定义了一个包含一些数据的字典。此时,我们可以像访问字典一样访问其中的键值对。函数将字典转换为 JSON 格式的字符串。在上面的示例中,使用。
2024-02-23 21:44:34
487
原创 深入理解 Redis 哨兵模式:高可用的秘密武器
Redis 哨兵模式是一种简单而有效的高可用解决方案,它可以自动检测和处理主节点的故障,确保系统的可靠性和可用性。假设我们有一个包含主节点和两个从节点的 Redis 主从复制集群,我们可以使用三个哨兵节点来监控这个集群。当主节点发生故障时,哨兵节点会选举出一个新的主节点,并将写操作转移到新的主节点上。同时,哨兵节点会将新主节点的信息通知给从节点和客户端,以便它们能够重新连接到新的主节点。它主要负责监控主节点的健康状态,并在主节点发生故障时自动进行故障转移,将从节点提升为主节点,以保证系统的高可用性。
2024-02-23 21:36:35
348
原创 深入理解 Redis:高性能缓存数据库的技术内幕
Redis 是一种开源的、基于内存的缓存数据库,它以其出色的性能和丰富的功能而闻名。本文将深入探讨 Redis 的核心技术,包括数据结构、内存管理、持久化等方面,帮助读者更好地理解 Redis 的工作原理。通过深入理解 Redis 的核心技术,我们可以更好地利用 Redis 的优势,为我们的应用提供更好的性能和可靠性。Redis 支持多种数据结构,包括字符串、列表、集合、哈希、有序集合等。虽然 Redis 是一种基于内存的数据库,但它也提供了持久化功能,以保证数据的可靠性。
2024-02-23 21:34:04
810
原创 探索 Spring Cloud Alibaba:构建高可用的分布式系统
通过整合阿里巴巴的云服务和成熟的解决方案,开发者可以更轻松地构建可靠、弹性和可扩展的分布式系统。在这一领域,Spring Cloud Alibaba 作为 Spring Cloud 生态系统的一部分,为开发者提供了一系列强大的工具和服务,使其能够轻松构建可靠、弹性和可扩展的分布式系统。Spring Cloud Alibaba 集成了阿里巴巴的负载均衡服务,如 SLB(Server Load Balancer),可以实现灵活的负载均衡策略,将请求均匀分配到多个服务实例上,提高系统的性能和可靠性。
2024-02-22 17:20:14
473
原创 Java 性能优化的艺术
在进行性能优化时,应该根据具体的应用场景和需求选择合适的优化策略。这些只是一些常见的 Java 性能优化案例,实际的性能优化需要根据具体的应用场景和需求进行分析和调整。在进行性能优化时,应该使用性能测试工具来评估优化的效果,并确保代码的可读性和可维护性。避免不必要的对象创建:对象创建和销毁会消耗系统资源,因此应该尽量避免不必要的对象创建。使用享元模式优化对象创建:享元模式通过共享一些通用的对象来减少对象的创建数量。使用对象池优化对象创建和销毁:对于一些频繁创建和销毁的对象,可以使用对象池来优化。
2024-02-22 17:14:55
875
原创 java复习前三章
一、初识Java① 第一个Java程序1public class K1_case1 { // 程序框架 public static void main(String[] args){ //main方法框架 System.out.println("Hello World!"); System.out.println("明天下午要结课考试!");// 输出语句 System.out.println("今天下午要默写笔记!"); System.out.println("******
2020-07-06 19:13:02
302
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人