- 博客(290)
- 问答 (1)
- 收藏
- 关注
原创 跨境支付业务合规、清算、结算问题
当消费者使用Alipay进行支付时,Alipay会与印尼的银行或支付机构进行清算,确保支付金额从消费者的账户正确无误地转移到商家的账户。而对账则是清算过程中的一个重要环节,用于核对支付机构和银行之间的交易数据和资金流水,确保双方记录的数据一致。总的来说,Alipay在印度尼西亚的支付业务中,通过与当地银行或支付机构进行清算和结算,确保了支付流程的顺畅和资金的安全。通过银行电汇:中国公司可以在当地的银行或Alipay的合作银行开设一个账户,然后将资金通过电汇的方式汇回国内的银行账户。
2024-03-14 10:38:01 1711 1
原创 JDK8 stream toMap方法介绍
JDK8 List转Map方法,有下3种方法。keyMapper:Key的映射函数valueMapper:Value的映射函数mergeFunction:当Key冲突时,调用的合并方法,对value进行处理。mapSupplier:Map 构造器,在需要返回特定的Map时使用。
2024-03-06 20:25:28 1203
原创 关于Mapper和Service查询方法命令
所以Service一般都是get、load等Mapper.java的接口文件一般都是些:query、select、find。
2024-02-24 14:08:59 498
原创 Spring状态机-待整理
例如事件是“按开门按钮”,动作是“开门”。状态机介绍2:https://blog.csdn.net/u012129558/article/details/90519577。对于自动门,“按下开门按钮”就是一个事件。状态机:https://www.cnblogs.com/javastack/p/17432557.html。也就是从一个状态变化为另一个状态。WAIT_PAYMENT(1, “待支付”),WAIT_DELIVER(2, “待发货”),WAIT_RECEIVE(3, “待收货”),
2024-02-07 15:11:04 461
原创 zoneId、ZoneOffset、Date、LocalDateTime、ZonedDateTime、OffsetDateTime的区别
1、zoneId2、ZoneOffset继承了zoneId3、ZoneOffset 和 TimeZone区别ZoneOffset 和 TimeZone 是 Java 编程语言中处理时区信息的两个不同的类。ZoneOffset 类:ZoneOffset 是 Java 8 中引入的日期时间 API 的一部分,位于 java.time 包中。它代表了与协调世界时(UTC)之间的固定时间偏移,以固定的小时和分钟表示。例如,+02:00 表示时间比协调世界时快 2 小时。
2024-01-31 23:59:30 2089
原创 路由时权重和优先级的区别
可以这么理解,优先极高的先判断,但是优先级高不代表权重大,为什么要这么设计就是因为,比如有的利益最大话,可以设置成优先级高低,但是有点优先级高,但是他的陈功率比较低,所以我们要保障尽量走成功率有保障的。例如,可以先根据优先级排序规则,然后在每个优先级中根据权重选择目标。这样可以实现更精细的路由控制,兼顾了目标选择的概率和规则的执行顺序。就是权重大的,被选中的概率一定多,但是优先考虑优先级高的。当优先级高的,没随机中,在从第二个优先级里面判断是否符合权重规则,一致遍历下去。
2024-01-15 15:26:26 1220
原创 业务记录笔记
1、银行转账,在app发起转账,生成虚拟账户,在ATM对这个虚拟账户转账就可以,或者线上对这个虚拟账户转账。2、电子钱包,机构:Gopay、OVO、Dana、LinkAja3、运营商支付:主要是代付,预充余额里面,后续代扣。4、便利店支付,通过第三方账号充值,这里就完成了现金转电子货币,后续消费只需要使用这个电子货币消费就可以,注意和电子钱包还有有区别的,电子钱包可以转账体现等更多功能。
2024-01-10 10:20:44 1071
原创 开发规范及常用工具
entity : 是与数据库一一对应的字段vo : 返回给前端的视图对象dto : 前端传过来的参数封装成dto,用于返回给前端的对象,一般用于查询操作。POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。
2024-01-09 21:33:33 781
原创 数据结构-汇总
时间复杂度-汇总1、树的结构-初期2、二叉树的分类-平衡树-红黑树二叉树的旋转-LL\RR\RL\LR3、二叉树的旋转-高级一步到位4、红黑树特征、删除、插入
2023-12-26 15:32:39 622
原创 堆外内存处理和回收
Jdk8中原来的方法区变成了元空间,并且使用的是堆外内存,那么堆外内存是如何进行回收的在Java中,堆外内存的管理通常由Java虚拟机外的【本地操作系统】或其他【本地资源管理器】负责。由于堆外内存不受Java虚拟机的直接控制,垃圾收集器无法直接处理堆外内存的回收。堆内存由JVM自己管理,堆外内存必须要由我们自己释放堆内存的消耗速度远远小于堆外内存的消耗,但要命的是必须先释放堆内存中的对象,才能释放堆外内存,但是我们又不能强制JVM释放堆内存。Direct ByteBuffer回收机制。
2023-12-24 12:05:56 566
原创 限流算法+每个算法实现方案
5、Guava类里面的RateLimiter。令牌桶的实现算法有:Guava。2、Gateway和Zuul。3、限流sentinel。
2023-12-19 14:39:29 446
原创 类加载器相关的问题
只有两者都相同的情况,才认为两个类是相同的。即使两个类来源于同一个 Class 文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那这两个类就必定不相同。1、如果我们不想打破双亲委派模型,就重写 ClassLoader 类中的 findClass() 方法即可,无法被父类加载器加载的类最终会通过这个方法被加载。解答:类加载器在进行类加载的时候,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成(调用父加载器 loadClass()方法来加载类)。
2023-12-17 20:44:30 388
原创 Java开发面试题
Redis在bgsave时如果有更改请求,主进程不会立刻改数据(防止子线程写rdb时混乱),而会采用CopyOnWrite(写时复制)技术拷贝一份待更改数据到内存大页(如果开启了的话)里,再进行更改。2、内存上限导致写时数据淘汰:Redis实例设置了内存上限maxmemory,并且内容已满,导致每次写数据时都要淘汰数据,从而影响查询性能。原子性:事务的所有操作,要么全部成功,要么全部失败。实现方式:MULTI(开启事务,将命令都放进队列里),EXEC(执行事务),DISCARD(取消事务,清空队列)。
2023-12-17 15:32:41 830
原创 缓存淘汰算法
可以这么理解:先进入淘汰段,淘汰段也是一个LRU算法,当淘汰段满了,移除最早进来的,如果有重复的就会进入保护段,当保护段满了,进了新的元素,会吧数据挤到淘汰段里面去。
2023-12-16 21:21:36 401
原创 高可用和一致性的保障
1、集群部署将Eureka服务器部署在一个集群中,而不是单个节点。这可以通过在不同物理位置或虚拟机上运行多个Eureka服务器实例来实现。这样,即使一个节点失败,其他节点仍然可以提供服务。2、负载均衡在Eureka服务器之前使用负载均衡器,以确保流量均匀分布到各个Eureka服务器实例。这有助于防止单点故障,并提高系统的整体性能和可用性。3、数据复制和同步如果使用多个Eureka服务器实例,确保它们之间的服务注册信息是相同和一致的。
2023-12-16 10:07:42 994
原创 Flink+Kafka消费
分布式处理引擎Flink使用至少一个【job】调度和至少一个【task】实现分布式处理有界:就是指flink【消费指定范围内】的数据。例如我定义某个作业间隔时间为0.5秒,则flink已0.5秒为界,进行数据处理。有界数据用在离线数据的处理场景较多无界:就是指flink始终【监听数据源】里的数据,获取到就处理。无界数据往往用在【实时数据】处理下的场景较多。我这里结合我们项目的场景来给各位说一下该选那种处理。1 :尽量支持最多的数据落地 2 :数据必须要准确。
2023-12-15 15:50:52 1921
原创 CAP定理面试
分布式系统中,分区容错性是指什么分布式系统中的分区容错性是指系统在遇到【某节点】故障或【网络分区】故障的时候,仍然能够对外提供服务。简单来说,即使分布式系统中有一部分出现故障,其他部分仍能正常运作并满足系统需求。分布式系统中,网络分区故障是指什么分布式系统中的网络分区故障是指由于网络故障或其他原因导致系统中的节点无法互相通信的情况。
2023-12-14 17:29:03 443
原创 ZooKeeper为什么是CP
总结起来,ZooKeeper的ZAB协议,利用【消息广播阶段】和【崩溃恢复阶段】来实现数据一致性。1、在消息广播阶段,leader节点接收和广播事务请求,并根据大多数节点的反馈决定是否进行commit。2、崩溃恢复阶段,当leader不可用时,进行leader选举和数据同步操作。Zxid是ZAB协议中的一个重要概念,用于【标识事务的编号】和【确定leader周期】。通过这些机制,ZooKeeper保证了在分布式场景下数据的一致性和可靠性。
2023-12-14 16:53:44 1555
原创 Redis扩容问题
Redis集群是一种水平扩展的方式,可以动态添加或移除节点,实现高可用性和容量扩展。在需要扩容的时候,添加新的节点,让集群自动将数据迁移到新的节点上。将Redis部署为集群,每个节点存储部分数据。1、使用持久化和快照RDB。
2023-12-12 22:32:36 449
原创 Redis持久化保存机制
这2个命令都会写到AOF文件里面,当AOF的文件越来越大,就会触发AOF的重写机制,【重写机制】会简化AOF文件里面的命令,比如上面的命令就会被【精简】成set key1 b。2、AOF文件满了触发【重写机制】,就【不会精简】AOF文件,而是将内存的数据【生成快照】,保存到RDB中,同时将当前正在执行的命令保存到【AOF文件】中,并将原来的AOF文件删除。AOF:这个是以日志的形式保存,所有的命令都会写到AOF文件里面,比如操作同一个key的命令有2个,set key1 a、set key1 b。
2023-12-12 22:25:32 394
原创 redis集群-主从复制
互联网的架构中需要保证高并发,高性能,高可用。主从复制为了保证系统的高可用而诞生,指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点,后者称为从节点。数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave读为主禁止写。
2023-12-12 20:46:49 370
原创 xxlJob源码分析-待完善
1 、 AppName :就是触发我们任务的那个执行器,所以客户端要指定使用那个执行器,这样在触发任务的时候,执行器就可以找到,对应的客户端 IP 地址,发送任务执行指令。2 、名称: 3 、注册方式:分为下面 2 个钟自动注册:启动时候时候注册进去手动录入:手动填写。
2023-12-10 10:30:13 1289
原创 面试题整理需要重点关注的
强引用:new的对象。哪怕内存溢出也不会回收软引用:只有内存不足时才会回收弱引用:每次垃圾回收都会回收虚引用:必须配合引用队列使用,一般用于追踪垃圾回收动作。
2023-12-09 17:46:07 830
空空如也
有没有更好的实现方案
2022-05-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人