- 博客(55)
- 收藏
- 关注
原创 Java 实现将List按照字符串(特定规则)排序
日常开发中我们通常会遇到将一个List按照特定的规则排序,例如我们需要将一个List按照。的顺序排序,我们可以使用下述方式实现。
2024-06-28 16:55:03
498
原创 在浏览器中输入URL之后发生了什么
服务器处理完毕后,会构建一个HTTP响应包,包括响应状态码(如200表示成功, 404表示未找到资源等)、响应头(包括内容类型和长度等),以及响应体,即请求的文件或错误信息。请注意,这是一个高度抽象化的过程,实际上在web架构中可能还涉及到更多的细节和组件,例如缓存服务器、CDN(内容分发网络)、负载均衡器等等,这些都会影响页面的加载过程。DNS服务器作为互联网上的“电话簿”,将域名如。服务器收到请求后,会根据请求行中的资源,如整个网页或网页上的资源(图片、视频等)的路由来处理请求和获取响应数据。
2024-05-04 14:03:35
325
原创 QPS(Queries Per Second)和TPS(Transactions Per Second)的介绍和区别
QPS(Queries Per Second)和TPS(Transactions Per Second)是衡量计算系统性能的两个指标,它们分别代表了系统每秒可以处理的查询数和事务数。虽然这两个术语在某些情况下可以互换使用,但它们在技术上有所区别。
2024-05-04 00:06:15
582
原创 Spring Boot可以同时处理多少请求?
Spring Boot本身对并发请求的处理能力没有明确的限制。具体而言,如果是开发阶段或小规模部署,一个Spring Boot实例可能会使用少数几个到数百个线程处理请求(结合嵌入式Tomcat的默认配置和硬件限制)。在高性能、经过针对性调优,并部署在合适硬件上的生产环境中,一个Spring Boot实例可以并发处理的请求可以达到更高的水平,比如数千甚至上万个并发连接。对于大型系统,通常还会结合负载均衡器等现代化的基础设施组件。
2024-05-02 14:46:42
609
原创 本地消息表模式保障分布式系统最终一致性
系统架构说明状态转换说明订单表消息表process_queue库存系统return_queue说明成功失败///订单库回滚成功成功失败//订单系统重发消息成功成功成功失败/Broker自动重试,注意接口幂等成功成功成功库存不足退回/Broker通知回掉,订单/消息作废成功成功成功成功失败订单系统重发消息,注意接口幂等成功成功成功成功成功数据最终一致成功成功失败 (长时间宕机)
2024-04-20 23:20:56
349
原创 Java使用工厂方法实现聚合支付详细例子
工厂方法(Factory Method)是一种创建型设计模式,目的是定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。基本原理是在一个抽象类中定义一个创建对象的抽象方法,由这个抽象方法的具体实现延伸至具体的工厂子类去实现。这样的设计让子类可以更改具体实例化哪个类而不影响调用者代码。
2024-03-25 14:32:30
284
原创 Java使用工厂方法实现聚合调用不同第三方接口进行实名验证
工厂方法(Factory Method)是一种创建型设计模式,目的是定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
2024-03-22 18:06:47
443
原创 布隆过滤器详解
布隆过滤器是一种空间效率很高的概率型数据结构,用于判断一个元素是否在一个集合中。它可能会有误判(false positives),即判断元素在集合中,但实际上不在;但不会有漏判(false negatives),即如果判断元素不在集合中,则它一定不在集合中。
2024-03-22 10:33:18
530
原创 为什么不推荐使用keySet()遍历HashMap
综上所述,虽然keySet()提供了一种遍历HashMap的方式,但由于其性能较低,且存在效率上的不足,特别是在需要同时访问键和值的情况下,推荐使用entrySet()或其他更高效的遍历方式。此外,随着Java语言的发展,新的API如Map.forEach ()提供了更好的遍历体验和性能。迭代次数加倍:上述的遍历方法导致了每个键值对被处理两次:一次是遍历键的集合,另一次是通过键获取值。包含了键和值,因此你可以同一时间访问键和对应的值,从而避免了为了获取每个值而重新搜索键的开销。方法来获取对应的值。
2024-03-21 18:17:51
261
2
原创 JAVA线程的实现方式
多线程是提高程序性能和响应速度的重要手段,Java 中有多种实现方式- 继承 Thread 类- 实现 Runnable 接口- 使用 Callable 和 Future- 使用线程池
2024-02-22 17:19:53
665
原创 SpringBoot全局异常捕获处理实现方案
注解来指定该方法会处理哪种类型的异常。方法体中,你可以自定义返回给用户的响应,包括HTTP状态码和返回信息。如果需要更多具体的自定义设置,还可以在响应里添加 headers 信息,或者创建更复杂的响应体,例如使用。官方的 Spring 框架文档提供了和这个主题相关的更多高级选项和最佳实践指南。注解可以确保它会接收到由控制器抛出的异常。在以上代码片段中,使用了。
2024-02-07 17:52:22
405
原创 spring项目实现按日期分表技术
实际项目中分表的逻辑可能更复杂。根据业务情况和数据规模,可能还需要考虑到事务一致性、查询优化、表的创建和维护策略等问题。通常分表方案还会搭配使用数据中间件,例如ShardingSphere等,以提供更灵活且自动化的分表能力。这个例子仅提供了按天分表保存日志的一种实现方式,提供作为概念演示。在真实的生产环境中,还需要进一步考量性能、事务和拓展性等问题。
2024-02-07 15:46:15
223
原创 金融信贷风控系统设计
风控系统是对数据的运用,是通过各种渠道的数据来对借款人的信用进行评估,进而设计出符合不同类型产品的模型,再用大量的进件去检验模型的效果,不断地完善模型。上述只是基于自己对风控系统的理解,讲了一些基本的设计情况,具体情况一定要结合实际的使用场景进行设计。
2024-02-06 22:35:55
1170
原创 Mysql大表添加字段失败解决方案
MDL锁属于表级别的元数据锁。表级别锁分为数据锁和元数据锁,通常我们说的加锁一般指的是加的数据锁。跟数据锁一样,元数据锁也分读锁和写锁。MDL不需要显示使用,在进行表操作时会自动加上。当对表数据进行增删改查( insert、delete、select、update等)时,会自动加上MDL读锁;当要对表进行加减字段的结构修改时,会自动加上MDL写锁。读锁不互斥:意味着可以多个线程同时对一张表进行增删改查(CRUD)的操作。写锁独占:进行结构修改前,要先等待其他所有的MDL锁释放了才能获取到MDL写锁。
2024-02-06 17:26:46
1396
1
原创 生产问题-并发重复生成订单(幂等性)问题
事务应该在分布式锁的里面进行控制。首先获取分布式锁保证在分布式环境中相关操作的原子性和一致性,之后在锁的保护下进行事务操作,这样可以确保在并发环境下,对共享资源的访问和修改是安全的,操作完成后再释放分布式锁。如果把事务放在分布式锁的外面,则无法保证事务内的操作在并发场景下的安全性和一致性。
2024-02-05 17:46:49
632
1
原创 金融信贷风控特征计算详解
在大型金融机构中,由于组织架构较为复杂,不同条线之间往往存在重复造“轮子”的情况,建模人员加工的风险特征仅仅在某个产品上进行使用,不同机构条线间缺乏对风控特征的共享,因此,需要一个统一的特征管理平台,来规范特征的衍生、存储、使用及更新迭代管理,特征平台 Feature Store也因此应运而生。特征管理:特征抽取、处理、存储、元数据管理,以便于特征溯源、分享和复用;特征消费服务:为线上部署的模型,提供高吞吐、低延迟的特征获取能力;
2024-02-05 16:04:36
1645
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人