自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 JAVA concurrentHashMap加锁

例如,当使用 containsValue 方法时,由于需要全局扫描整个哈希表来查找特定的值,而不能像 containsKey 方法那样通过 key 快速定位到对应的 Segment,所以在实现 containsValue 方法时,为了避免出现“ABA 问题”(即一个值先被修改为 A,然后又被改回原来的值 B,而其他线程可能无法察觉到这个中间过程的变化),会使用一些额外的机制,可能涉及到加锁操作。其读操作不需要加锁的原因是,Node 类的元素 val 和指针 next 是用 volatile 修饰的。

2024-07-10 21:05:27 164

原创 Spring程序启动时初始化资源

【代码】Spring程序启动时初始化资源。

2024-07-10 20:42:08 159

原创 Linux查看磁盘性能指标和端口连通性

这些方法可以帮助您确定特定端口是否能够正常连通。

2024-07-10 20:37:03 106

原创 Linux的硬链接软链接有啥区别

所以总的来说,硬链接更适合文件备份和管理,软链接更适合创建文件/目录的快捷方式。具体选择哪种取决于实际需求。作为2023年8月的助理,我很乐意为您解答 Linux 中硬链接和软链接的区别。

2024-07-10 20:24:30 268

原创 HTTP和HTTPS的加密流程

总之,HTTP是明文传输,容易被窃听和篡改,而HTTPS通过SSL/TLS协议提供了加密传输,能够更好地保护数据安全。HTTPS的加密流程包括协商加密算法、验证服务器证书、生成和交换对称密钥等步骤,从而实现了安全的数据传输。作为2023年8月的助理,我很高兴为您讲解HTTP和HTTPS的加密流程。

2024-07-10 20:18:05 352

原创 Dubbo,SpringCloud,Webservice有啥区别,如何技术选型

如果是Java微服务架构,且对服务治理要求较高,Spring Cloud可能是更好的选择。如果是跨语言的企业级服务集成,WebService可能更合适。对于小型微服务,Dubbo也是一个简单高效的选择。当然,也可以根据具体需求进行组合使用。作为2023年8月的助理,我很高兴为您分析这几种分布式服务框架的区别和技术选型建议。总之,这三种分布式服务框架各有优缺点,需要根据实际情况进行适当的技术选型。

2024-07-10 20:11:09 184

原创 Web跨域是什么,如何解决

跨域是指一个域下的网页去请求另一个域的资源时,浏览器出于安全考虑而采取的一种限制行为。AJAX跨域请求: 当一个页面的JavaScript代码尝试发起跨域AJAX请求时,浏览器会阻止这个请求,从而导致请求失败。: 在前端和后端之间设置一个代理服务器,由代理服务器去请求跨域的资源,然后转发给前端。Web字体跨域访问: 当网页使用非系统自带的字体时,如果字体文件托管在其他域名下,也会产生跨域问题。: 在Chrome等浏览器中,可以通过命令行参数或者扩展程序的方式,临时关闭浏览器的同源策略限制。

2024-07-10 20:04:41 140

原创 synchronized原理

2024-07-10 20:02:57 81

原创 MySQL的innodb特性

这些特性使得 InnoDB 成为处理大量并发事务和数据一致性要求较高的应用的理想选择。

2024-07-10 19:39:26 109

原创 MySQL的InnoDB双写缓冲区和插入缓存

接着 Server 2 启动,也提议自己为 Leader 并与 Server 1 交换投票结果,此时 Server 2 胜出,但因投票数未过集群数的一半,两者仍处于 Looking 状态。每次投票后,节点会统计投票信息,当有超过半数的节点接收到相同的投票信息时,被推举的服务器就会成为新的 Leader。当进行 Leader 选举时,每个 Follower 节点都会发出一个投票,投票中包含所推举的服务器的 myid(服务器标识)和 zxid(事务 ID)。

2024-07-10 19:36:08 202

原创 ZooKeeper投票机制

接着 Server 2 启动,也提议自己为 Leader 并与 Server 1 交换投票结果,此时 Server 2 胜出,但因投票数未过集群数的一半,两者仍处于 Looking 状态。每次投票后,节点会统计投票信息,当有超过半数的节点接收到相同的投票信息时,被推举的服务器就会成为新的 Leader。当进行 Leader 选举时,每个 Follower 节点都会发出一个投票,投票中包含所推举的服务器的 myid(服务器标识)和 zxid(事务 ID)。

2024-07-10 19:30:58 274

原创 Spring设计模式

这些设计模式的应用使得 Spring 框架具有高度的灵活性、可扩展性和可维护性。

2024-07-10 19:05:04 84

原创 CAS无锁实现方法和可能的问题

如果一个线程读取了A,然后另一个线程将其修改为B,再修改回A,CAS操作仍会成功,这可能会导致逻辑错误。: 在CAS无锁实现中,如果CAS操作失败,需要手动释放内存。: 在CAS失败的情况下,线程需要不断重试,这可能会导致性能下降,特别是在高竞争的情况下。好的,我来详细介绍一些Java中无锁实现的方法,并分析CAS可能遇到的问题。操作中,我们先获取栈顶元素,然后使用CAS尝试更新栈顶元素。操作中,我们先获取队头元素,然后使用CAS尝试更新队头元素。策略,让线程随机休眠一段时间后再重试,以减少循环开销。

2024-07-10 17:47:41 111

原创 线程池参数如何配置

配置线程池参数需要根据具体的应用场景和性能需求进行调整。合理的配置可以提高系统的并发性能和资源利用率。可以根据系统的负载测试。

2024-07-05 14:48:07 933

原创 shardingsphere分库分表能join查询两个不同类型表么

了解数据分布规则。构建并执行多个查询。合并查询结果。使用分布式中间件可以简化这一过程,但需要根据具体的系统架构和实现来选择合适的方案。

2024-07-05 14:46:41 397

原创 shardingshpere分库分表,同一个表类型,如果同时查A0001和A0002怎么查

了解数据分布规则。构建并执行多个查询。合并查询结果。使用分布式中间件可以简化这一过程,但需要根据具体的系统架构和实现来选择合适的方案。

2024-07-05 14:45:22 142

原创 java秒杀系统

参考:

2024-07-04 18:15:29 225

原创 MySQL跨库事务如何保证事务一致性

在实际应用中,需要根据业务特点、性能要求和技术条件,选择合适的分布式事务解决方案。同时,还要考虑故障处理、监控和运维等因素,确保分布式事务的可靠性和可用性。保证跨库分布式事务的一致性是一个复杂的问题,通常需要结合具体的业务场景和技术方案来实现。

2024-07-04 17:55:47 407

原创 RocketMQ如何保证不丢失消息和防止重复消费

在 RocketMQ 中,确保消息不丢失和不重复消费是分布式消息系统设计中的重要问题。

2024-07-04 17:54:02 426

原创 Redis常用场景

脑裂”(Split-Brain)是分布式系统中常见的问题,指的是集群中的节点因网络分区或其他原因无法通信,导致集群分裂成两个或多个部分,各部分都认为自己是主节点(Master)。这种情况会导致数据不一致、系统状态混乱等问题。

2024-07-04 17:51:10 346

原创 redis和ZooKeeper脑裂啥意思,如何解决

脑裂”(Split-Brain)是分布式系统中常见的问题,指的是集群中的节点因网络分区或其他原因无法通信,导致集群分裂成两个或多个部分,各部分都认为自己是主节点(Master)。这种情况会导致数据不一致、系统状态混乱等问题。

2024-07-04 17:49:57 327

原创 Redis Sentinel介绍

Redis Sentinel 是一种高可用性解决方案,用于监控 Redis 服务器,并在主服务器(Master)发生故障时执行自动故障转移。它确保 Redis 集群能够在主服务器故障时继续提供服务。下面是对 Redis Sentinel 的详细说明。

2024-07-04 17:47:21 469

原创 Redis Sentinel和ZooKeeper选举机制

使用 Raft 协议的变体进行领导者选举。依赖于多个 Sentinel 实例的投票来决定新的主服务器。选择新主服务器时,考虑从服务器的优先级和数据最新程度。ZooKeeper使用 Zab 协议进行领导者选举。选举过程中,节点根据zxid进行比较,zxid大的节点优先。新领导者选出后,会与从节点同步数据,确保一致性。Redis Sentinel 和 ZooKeeper 都采用分布式共识算法来选举主服务器,并确保系统在主服务器故障时能够快速恢复和继续提供服务。

2024-07-04 17:46:24 244

原创 连接池和线程池区别

连接池是一种用于管理和复用数据库连接或其他资源连接(例如网络连接、文件连接等)的技术。它通过维护一个连接的集合,来减少建立和关闭连接的开销,提高系统性能。线程池是一种用于管理和复用线程的技术。它通过维护一个线程的集合,来处理大量并发任务,减少创建和销毁线程的开销。虽然连接池和线程池都有助于提高系统的性能和资源利用率,但它们的用途和管理对象是不同的。连接池专注于管理连接资源,适用于需要频繁建立和关闭连接的场景;线程池则专注于管理线程资源,适用于需要并发处理大量任务的场景。

2024-07-04 17:43:59 242

原创 Jedis连接池

当然,我们可以更深入地探讨使用 Jedis 连接池来与 Redis 交互的示例,以及一些最佳实践和扩展功能。

2024-07-04 17:42:44 242

原创 java对锁的优化机制无锁

volatile可见性:确保一个线程对volatile变量的写操作对其他线程可见。有序性:通过内存屏障防止指令重排序,确保volatile变量的操作顺序。不保证原子性volatile不能保证复合操作的原子性,需结合其他同步机制(如Atomic类或锁)来确保线程安全。通过合理地使用volatile关键字,可以在多线程环境中避免使用锁的情况下实现一定的线程安全性,提升并发性能。

2024-07-04 17:38:00 335

原创 volatile原理

volatile可见性:确保一个线程对volatile变量的写操作对其他线程可见。有序性:通过内存屏障防止指令重排序,确保volatile变量的操作顺序。不保证原子性volatile不能保证复合操作的原子性,需结合其他同步机制(如Atomic类或锁)来确保线程安全。通过合理地使用volatile关键字,可以在多线程环境中避免使用锁的情况下实现一定的线程安全性,提升并发性能。

2024-07-04 17:36:00 350

原创 mysql事务和spring事务

在软件开发中,事务管理是确保数据一致性和完整性的重要机制。MySQL事务和Spring事务各自有不同的作用范围和实现方式,但可以相互协作来提供强大的事务管理功能。下面将详细介绍这两者的原理和用法。

2024-07-04 17:34:39 392

原创 mysql索引跳跃举例

索引跳跃是一种高级索引优化技术,允许数据库引擎在复合索引的扫描过程中跳过某些索引列,直接利用后续列进行查询。这种技术在特定场景下可以显著提高查询性能,但其优势和效果需要根据具体的查询和数据分布来评估。如果数据库支持索引跳跃,合理利用这一技术可以优化查询性能。

2024-07-04 17:33:29 298

原创 mysql跨库使用如何保证事务一致性

需要注意的是,使用 2PC 模式需要满足一些前提条件,比如 MySQL 的版本要求、需要配置 XA 日志等。同时,2PC 模式的性能也会有一定的影响,需要根据实际情况进行权衡。除了 2PC 模式,我们还可以考虑使用前面提到的其他解决方案,如 Saga 模式、TCC 模式等,根据具体需求选择合适的方式。好的,我来详细介绍一下如何使用 2PC(Two-Phase Commit)模式来实现 MySQL 跨库事务一致性。使用 2PC 模式可以确保跨库操作的原子性和一致性。

2024-07-04 17:30:32 308

原创 CPU飙升100%的可能原因

https://mp.weixin.qq.com/s/UKoNhQKMMyWI1kw9XwiJ2A

2024-06-24 15:08:58 206

原创 JAVA如何自定义线程池

通过以上步骤,你可以在 Spring Boot 项目中定义和使用自定义的线程池。首先,需要创建一个配置类来定义线程池,然后在需要使用的地方通过@Async注解来引用这个线程池。最后,通过依赖注入的方式,把线程池注入到服务类或控制器中进行使用。这种方式可以有效地管理和优化应用中的并发任务,提高系统的性能和响应能力。

2024-06-24 15:05:18 337

原创 RPC和Dubbo,WebService

总的来说,RPC 和 Dubbo 更关注于远程方法调用的高性能和简单性,而 WebService 更关注于标准化和跨平台的互操作性。根据您的具体需求,可以选择合适的方式来实现分布式系统的服务调用。

2024-06-24 14:50:12 185

原创 FutureTask异步实现定时任务

好的,让我来为您详细介绍一个使用 FutureTask 实现定时任务的 Java 示例。FutureTask 是 Java 并发包中的一个类,它可以用来异步执行任务,并提供获取任务执行结果的方法。这个示例将展示如何使用 FutureTask 来执行定时的数据迁移任务。这个示例展示了如何使用 FutureTask 和定时任务来实现每天定时的数据迁移。您可以根据实际需求修改数据迁移的逻辑,并将其集成到您的应用程序中。提供了一种简单的方式来管理任务的执行状态和结果。在这个示例中,我们使用了。方法来等待任务完成。

2024-06-24 14:46:07 167

原创 shardingShpere使用getCRC算法原理

这个示例展示了如何使用 getCRC16 算法进行数据分片的完整过程。您可以根据自己的需求,调整分片数量、数据模型等,并根据实际场景进行进一步的优化和扩展。好的,我很乐意为您提供一个使用 getCRC16 算法进行数据分片的完整示例代码。这个示例将涉及到数据模型、分片算法、分片管理等多个方面。希望这个示例能够帮助您更好地理解 getCRC16 算法在数据分片中的应用。如果您还有任何其他问题,欢迎随时告诉我。首先,我们定义一个简单的数据模型。

2024-06-24 14:44:19 288

原创 kafka如何保证消息不丢失和不重复消费

消息不丢失:通过副本机制、生产者和 Broker 的配置来确保消息成功写入并持久。

2024-06-24 10:38:04 402

原创 kafka的ISR

ISR 是指那些与 Leader 副本保持同步的副本集合。在 Kafka 中,每个分区都有一个 Leader 和若干个 Follower 副本,Leader 副本负责处理所有的读写请求,而 Follower 副本则复制 Leader 的数据以保证数据的冗余和高可用性。ISR(In-Sync Replicas)是 Kafka 中用于管理和确保数据高可用性和一致性的重要机制。通过维护与 Leader 副本同步的副本集合,Kafka 可以在副本故障时快速恢复,同时确保数据的一致性。

2024-06-24 10:21:37 374

原创 凭证基础知识

总之,银行凭证的管理是一个较为严格的过程,涉及领用、入库、发放、保管、销毁等多个环节,旨在确保银行业务的安全性和合规性。这些都是银行常见的一些主要凭证类型,每种凭证在银行业务中都发挥着重要的作用。:包括电子银行交易记录、电子支付凭证等。:包括汇票、银行汇票、本票、支票等。记录客户在银行办理各种交易的凭证。:包括存款单、存单、支票、存折等。记录客户存款情况的重要凭证。:包括贷款合同、借据、抵押合同等。记录客户贷款情况的重要凭证。:包括借记卡、信用卡等。是客户在银行办理各种业务的重要凭证。

2024-06-24 10:06:14 141

原创 java三个线程如何做到顺序执行

在 Java 中,要控制三个线程的执行顺序,可以使用多种方法,其中包括使用wait和notify机制,,以及Semaphore等。下面我将展示这些方法的具体实现。

2024-06-11 10:37:49 485

原创 使用kafka发送短信

要将基于Kafka的短信通知系统与其他银行服务(如账户管理或欺诈检测)集成,可以使用Kafka作为中心消息中心,实现不同组件之间的通信和数据共享。通过使用Kafka作为中心消息中心,您可以解耦不同的银行服务,并实现它们之间的异步通信。在这个示例中,账户管理服务和欺诈检测服务在发生相关事件时向Kafka主题发布消息。短信通知服务订阅这些主题,监听消息,并根据收到的消息向客户发送短信通知。在这个示例中,我们创建了一个 Kafka 生产者,用于向 “sms-notifications” 主题发送短信通知。

2024-06-11 09:52:08 326

空空如也

空空如也

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

TA关注的人

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