- 博客(96)
- 收藏
- 关注
原创 流媒体转发服务器的应用场景与原理
RTSP + RTCP + RTP一起使用,实现上面的功能,但是这个组合对于web端和手机端的支持都不好,所以,只用于传统的安防领域,通过C++编写的客户端来进行这些协议播放视频。RTMP是RTSP + RTCP + RTP组合的改进版,可以很好的适配手机之类的播放视频。
2024-10-30 15:32:11 242
原创 金融里面的那些事儿
发行用户使用的银行卡的银行叫发卡行,发行商户使用的pos机的银行叫收单行,用户刷卡支付的时候,收单行先将资金垫付给商户,事后再统一找发卡行要回来,这样一来收单行和发卡行便产生了债权债务关系。用通俗的话解释,清算就是有两方因为某项合作业务,合作形式是先完成交易事后进行支付,导致一方欠了另一方一笔钱,形成债务关系,并最终通过某种方式偿还了这笔钱的过程。第二步是结清关系,根据计算出的应收应付结果,完成资金交割转移,结清债权债务,这一步专业叫“里面有通过发卡行与收单行的例子,解释清算的由来,以及银联的由来。
2024-07-23 21:36:49 262
原创 消费金融系统开发回忆录
整个支付链路上的功能支付系统应该有:账户管理、渠道管理、支付管理、对账管理、清算管理、结算管理 一笔支付订单,在支付系统侧就是要记录清楚,谁发起的、对哪个商品进行支付、通过哪个渠道支付、支付时间、支付结果等 展示: SS IQP 流程:APS TDL TDC TC CORE FA MM RMS/IRISK/RMFP 核
2024-07-20 08:58:03 840
原创 信贷业务知识学习
个人不可循环授信额度:授信100w,第一次贷款了50w,第二次再去贷30w不用重复授信,此时额度还剩20w,如果你此时把80w还了,但是你的额度还是20w,而不是100w。先授信,后用信:根据你提供的信用资质,你提供的抵押物的价值等,给你评估一个授信额度,授信额度出来以后,你才能去申请菜款,所以叫做先申请授信额度,然后使用授信额度。等额本息:就是每个月还的钱是一样的,比如每个月还2000,这2000中有本金有利息,每个月的利息是越来月底,也就意味着这2000块中,每个月的本金是越来越多。
2024-07-19 23:40:09 472
原创 关于大数据技术栈的一些总结
它就是hadoop,因为hadoop它是开源的,然后阿里、CDH、CDP等等大数据平台厂商,他们就是再去把它封装,封装的更好用一点,那我们就省的去去安装hadoop、安装Spark,安装hive、然后还要考虑他们的兼容性啊,系统的兼容性啊,还要提升他的计算效率呀,这些都厂商来处理,因为这些他们很专业,就是相当于他是专门就是做大餐的,然后我们自己做一顿就没那么好吃。市场上都是把菜把米都做好了,就我们买回来,然后去炒菜就可以了,这种都是他们都是高效低成本,然后专业化的,那我们再自己去搞一套就。
2024-07-19 23:38:46 334
原创 支付系统考点
1. 支付宝或者微信的支付是异步的,他的系统请求支付宝进行支付,支付宝响应成功,只代表支付宝成功接受到了你的支付请求,后续的实际支付操作支付宝还要异步调很多渠道,比如银行卡就要和对应的银行系统交互,比如账户余额就要和支付宝的余额系统进行交互,比如花呗可能还要调花呗的系统,当支付宝和这些渠道交互成功后才是实际的扣款,这时支付宝才能回调实际的支付结果给他。的最终一致性解决方案,轮训那些在支付中,但是还没有扭转到支付成功或者支付失败的支付订单,去主动调用支付宝或者微信查询支付结果。
2024-07-19 23:29:25 281
原创 RocketMQ源码级实现原理-内存映射
而之后访问数据时发现内存中并无数据而发起的缺页异常过程,可以通过已经建立好的映射关系,只使用一次数据拷贝,就从磁盘中将数据传入内存的用户空间中,供进程使用。36行代码,是释放内存映射的这片虚拟地址空间(删除这段内存映射,也就是从页表中把这段映射删除),否则当前进程的别的线程,就不能再使用这片虚拟地址空间了。可以看到第33行,就在使用指针的方式,来操作这片虚拟内存,因为是mmap映射下的这片内存,所以操作了这片虚拟地址空间,那么对应的磁盘文件也会被修改。
2024-07-18 21:23:25 914
原创 RocketMQ源码级实现原理-存储系统概要设计
存储逻辑层,比如CommitLog类中出了对外暴露putMessage()的接口外,还需要提供一些内部类,比如FlushRealTimeService这类的刷盘线程逻辑。1. ConsumeQueue里面放的是一个个索引条目,索引条目有三个字段:CommitLogOffSet ,MessageSize、TagHashCode。文件写入速度,顺序读写 3g/s左右,随机读写2g/s左右(内存条的读写速度是10个g左右)一个好的文件系统,它的性能肯定是要优于分布式KV和newSQL;
2024-07-16 23:39:54 207
原创 RocketMQ源码级实现原理-消息发送流程与高可用设计
如果本地缓存中没有找到topic路由信息,则发送远程请求去nameserver中查找当前topic对应的路由信息,查找到了则直接选择topic下的一个queue发送消息。一般,一台物理机上只会有一个MQClientInstance实例,一个MQClientInstance实例中保存了不同的producerGroup的producer,也保存了不同consumerGroup的consumer。RocketMQ的一个好的实践:命令细化,每个功能都有一个唯一的命令与之对应。1. 236行启动了很多的定时任务。
2024-07-15 20:57:10 181
原创 MySQL性能调优-2-实际优化案例
关于SQL优化的思路,一般都是使用执行计划看看是否用到了索引,主要可能有两大类情况:对业务字段建立了二级联合索引,但是MySQL错误地觉得走主键聚族索引全表扫描效率更高,而没有走二级索引走二级索引,但是引起了几万、几十万的回表,此时还不如利用聚簇索引进行正序或者倒序的全表扫描,配合limit n,全表扫描只需要扫到符合条件的n条就停止。
2023-12-04 09:59:49 697
原创 电商营销场景的RocketMQ实战01-RocketMQ原理
物理存储结构主要是为了优化写入和读取, 都是为了写入、存储 、 读取, 这三块去做一个设计的,写入尽可能高吞吐,高并发,如何让存储可以有效的进行数据结构组织服务于我们的写入和读取, 如何让高并发的读取可以有效的进行,broker主要要做到的一些事情1 、 写入优化。
2023-11-30 19:19:31 1319
原创 Spring Cloud Netflix微服务组件-Hystrix
上上图@HystrixCommand注解种鸽所有信息,默认就会被保存在这个元信息MetaHolder中去,spring的代码都是很统一的,这种注解的元数据一般都是用MetaXxxxx来保存的。大体流程:用户在调用findById()方法时,hystrix写的AOP切面类会拦截这个注解,拦截这个注解后会初始化一个GenericCommand命令,在初始化这个GenericCommand命令内部,就会通过这些线程池的配置,来初始化该命令特有的执行线程池。
2023-11-16 19:05:44 289
原创 Spring Cloud Netflix微服务组件-Eureka
分区容忍是能容忍一个或一部分节点挂掉后,整体系统也能正常工作(就是别的节点还是活着的),所以分布式系统中P是必须要有的。比如数据库主从架构,主从两个节点之间需要数据同步,主挂了,从还能提供服务,这就是分区容错的体现可用性是,每个请求都能得到正常的响应(不要求读到最新值)p分区容忍,既然是分布式系统那么分区容忍是逃不掉的,剩余的一致性和可用性相互矛盾,只能二选一有没有保证CA的系统,单机就是。因为单机没有分区,单机也就是只有一个节点,那么也就不需要网络通信,。
2023-11-15 17:02:08 1101
原创 Spring源码系列-Spring事务
540行,先通过扫描配置类,把配置类中用过通过@Bean自定义的Bean后置处理器,与通过Import注册到ioc容器中的第三方组件自己的Bean后置处理器等多种形式的处理器,通过在第543行中,来将它们全部从BeanDefinition,调用getBean方法实例化成处理器,并存入Ioc容器中的专有list中去。而事务的解析切面就简单了,Spring自己就提供了一个Advisor,都不需要去解析,直接就能拿到,拿到后事务的第一步解析切面的步骤就完成了。事务的增强逻辑是内置的,也就是spring自己写的。
2023-11-11 19:39:34 164
原创 Spring源码系列-Spring AOP
aop的运行原理就是,先把切面所有通知变成统一的Advisor,然后通过AspectJ的表达式匹配算法,判断出当前bean与哪些Advisor匹配,将这些匹配的Advisor们保存起来,在创建jdk动态代理对象时,将这些匹配的匹配的Advisor们,传入ReflctiveMethodInvocation中,然后就是通过递归调用,依次调用各个Advice,最后调到目标方法,然后再一步步的返回。有了上面的第17行,就能实现上上图中,select中调用的insert方法也是被动态代理过的方法。
2023-11-09 08:34:22 166
原创 Spring源码系列-框架中的设计模式
责任链执行器中有一个proceed(),方法内遍历执行负责人的invoke()方法,invoke方法以执行器作为参数:invoke(执行器),invoke(执行器)处理完业务后,执行器又调用proceed()方法,将索引移到下一个负责人位置。在方法体中,可以通过不同对Event类的判断来进行相应的处理。通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean。
2023-11-09 08:32:03 297 1
原创 从零开始开发亿级流量电商优惠券项目实战
2. **优惠券生成模块**:这个模块应该能够创建新的优惠券,并设定相应的参数,比如优惠券的有效期、可用商品或类目、优惠幅度(比如是打折还是直接减价)、优惠券数量限制等。6. **报表和分析模块**:分析优惠券的使用情况,包括哪些优惠券被使用的最多,哪些用户最常使用优惠券等。5. **优惠券核销模块**:当用户想要使用优惠券时,系统需要验证优惠券的有效性,包括是否在有效期内、是否符合使用条件等。1. **用户管理模块**:存储和管理用户的信息,包括用户的优惠券使用历史和当前可用的优惠券。
2023-07-05 09:27:54 379
原创 并发编程-注册中心
核心就是有一个RegisterClient内部会起一个HeartbeatWorker线程,负责每隔30s往注册中心推送一次心跳、 内部会起一个后台线程,通过sleep 30s的方式,每30s去注册中心拉取一次注册表。微服务的注册表定时拉取机制实现。
2023-06-26 09:57:37 163
原创 并发编程-并行任务执行框架
反正,这个并行任务执行框架的核心逻辑,就是把每个item都拆散投入到了线程池的不同的线程中了,而不是分片的思想,可能10个或者100个item作为一个分片,进去一个线程。内部持有一个线程池,给出一个ItemProcessor接口,让客户实现每一个元素的处理逻辑,客户自己决定元素处理成什么样算成功,什么样算失败,什么样抛出异常。由于需要对任务的执行进度,执行情况进行管理,实时的监控,所以,需要对每一组item用一个统一的jobName进行管理。
2023-06-06 11:47:38 145
原创 设计模式笔记
三大类设计模式创建者模式结构型模式行为型模式创建者模式 - 工厂模式重点掌握: 简单工厂 + 配置文件的实现方式也就是ioc的最基本实现原理
2022-09-14 21:05:28 1007
原创 何为高并发
小红书-内卖秒杀项目总结_yuyanggo的博客-CSDN博客1)守住数据库的底线:MySQL订单入库限流,避免MySQL被压垮2)将商品数据提前初始化到redis中,利用redis缓存在实际下单前做好各种校验3)用isMember函数(Set),记录用户已经购买过哪些商品,购买过的不许再次购买...
2022-03-29 14:05:48 972
转载 IO多路复用原理
课程目录:基础知识点1: Linux操作系统中断1.1:什么是系统中断?(软中断 / 硬中断)1.2:系统中断,内核会做什么事?1.3:再深一点点,硬件中断触发的过程(ps:8259A芯片中断控制器的工作流程)基础知识点2:Socket基础2.1:Java 使用 Socket 编程Demo,带你再简单回忆一下Socket API。2.2:Socket 读/写 缓冲区工作机制基础知识点3:系统调用,用户态 内核态3.1:为什么要有这两种状态?(用户栈 / 内核栈)3.2
2022-03-06 21:37:44 253
原创 实际场景中的多线程并发编程案例
一、CountDownLatchCountDownLatch的用法CountDownLatch典型用法1:某一线程在开始运行前等待n个线程执行完毕。将CountDownLatch的计数器初始化为n new CountDownLatch(n) ,每当一个任务线程执行完毕,就将计数器减1 countdownlatch.countDown(),当计数器的值变为0时,在CountDownLatch上 await() 的线程就会被唤醒。一个典型应用场景就是启动一个服务时,主线程需要等待多个组件加载完毕,之后再继
2021-12-06 09:57:45 7666 1
原创 Java开发基础技术板块
1. 优秀文章合集1.1 讲述Java集合的普通便利删除与迭代器删除这道Java基础题真的有坑!我求求你,认真思考后再回答。
2021-11-05 11:18:17 132
原创 Java事务板块
1 优秀文章合集1.1@Transactional注解如果想要生效,需要调用被Spring动态代理后的类实例的方法事务没回滚?来,我们从现象到原理一起分析一波!
2021-11-04 16:52:26 172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人