自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

飞飞好奇的专栏

Fly For Fun 深入分布式、中间件、系统架构技术研究; 专注互联网金融、互联网文化娱乐行业。

  • 博客(192)
  • 收藏
  • 关注

转载 货币桥架构图

该通用平台于2022年8月15日至9月23日进行了落地试验,来自中国香港和大陆、阿联酋与泰国的20家商业银行使用各自中央银行在mBridge平台上发行的CBDC,代表其企业客户进行了支付以及外汇(FX)同步交收(PvP)交易。“互操作性是CBDC发挥其全部潜力的关键因素。

2023-05-18 09:16:02 174

转载 spring核心知识总结

2022-02-16 15:02:57 237

转载 说一下从 url 输入到返回请求的过程

前言年前准备换工作,总结了一波面试最频繁的面试问题跟大家交流。此文章是关于浏览器的常见问题,大概面试10家遇到6家提问类似问题(主要是大厂和中厂)。(面试的部分内容已经忘了,为了串联成一个完整的故事,增加可读性,20%的内容为虚构),目前入职滴滴出行成都团队。问题: 从浏览器地址栏输入url到请求返回发生了什么你一看这种烂掉牙的问题,小case,但996面试大佬由此延展的问题已经远远超越了这个问题本身了,不信你就接着看。我回答了首先会进行 url 解析,根据 dns 系统进行 ip 查找。

2021-03-27 16:01:34 408

转载 全球顶级的14位程序员!

全球顶级的14位程序员!全球最厉害的14位程序员都有哪些人?接下来让我们一起来看一下让业界膜拜的这十几位顶级编程大神。注意,排名不分先后。01 Jon Skeet个人名望:程序技术问答网站Stack Overflow总排名第一的大神,每月的问答量保持在425个左右。个人简介/主要荣誉:谷歌软件工程师,代表作有《深入理解C#(C# In Depth)》。网络上对Jon Skeet的评价: “他根本不需要调试器,只要他盯一下代码,错误之处自会原形毕露。” ...

2021-02-18 13:42:29 2072

转载 Flink流批一体在阿里的架构

Flink流批一体在阿里的架构

2020-11-24 09:59:47 501

原创 专业思考--语言篇

1、不深入去钻研软件工程的规律和技术,不深入去学习一门语言的独有特色,理解语言的设计哲学,建立语言的一套使用方法论,仅仅妄想通过换一门新语言就解决问题,这是一条死路

2020-11-18 14:53:03 222

原创 系统设计思考--redis篇

系统设计思考--redis篇1、双十一亿级用户日活统计如何用Redis快速计算?2、双十一电商推荐系统如何用Redis实现?3、双十一电商购物车系统如何用Redis实现?4、类似微信的社交App朋友圈关注模型如何设计实现?5、美团单车如何基于Redis快速找到附近的车?6、Redis 6.0 多线程模型比单线程优化在哪里了?7、Redis缓存与数据库双写不一致如何解决8、Redis分布式锁主从架构锁失效问题如何解决9、从CAP角度解释下Redis&Zookeeper锁架构异同..

2020-11-18 11:50:40 309 1

转载 阿里飞猪相关架构图

一、行业化组队方式前端同学同时负责一条业务线的全链路业务,而类似频道的纯展示页面与类似订单填写页的表单页面本身依赖的技术方案差异性大,难以抽象复用,也因此很难有更体系化的产出。抓住上面这些问题,紧靠业务上横向打通的大方向,技术策略定为「打破三个壁垒」: 打破前端与设计师的壁垒:拉通 PD 和 UED,构建蜂鸟设计中台体系,提供跨行业一致的视觉交互规范,以及五端一致的配套组件库(H5、Weex、Rax、Android、iOS);形成「行业提报-信息收口-规范升级-沟通决策-落地实施」的.

2020-11-04 14:21:07 2429

转载 滴滴 Elasticsearch 集群跨版本升级与平台重构之路

导读:前不久,滴滴ES团队将维护的30多个ES集群,3500多个ES节点,8PB的数据,从2.3.3跨大版本无缝升级到6.6.1。在对用户查询写入基本零影响和改动的前提下,解决了ES跨大版本协议不兼容、文件格式不兼容、mapping不兼容等难题,整个过程对绝大部分用户完全透明。同时还完成了Arius的架构升级,取得了单机查询性能提升40%,整体集群cpu下降10%,写入tps提升30%,集群资源使用率提升20%、0故障、运维成本下降60%的成绩。本文将系统的介绍滴滴在从2.3.3跨大版本升级到6....

2020-10-28 11:14:40 372

原创 自定义异常调用fastjson序列化问题

一、描述程序中发现,空指针异常(java.lang.NullPointerException),调用fastjson反序列化,不会报错自定义的异常(*.ServiceMethodNotFoundException),调用fastjson反序列化,会报错二、Debug了一下代码发现:1、调用了toJSONString(),在序列化后的字符串中加入了“@type”属性"@type":"*.NullPointerException""@type":"*.ServiceMethodNotFoundE

2020-07-28 11:43:22 535

原创 二、XXL-JOB(执行器源码学习)

一、执行器配置,其他省略xxl.job.executor.appname=xxl-job-executor-sample### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";xxl.job.executor.ip=### 执行器端口号 [选填]:小于等于...

2020-03-11 19:39:27 1047

原创 一、XXL-JOB概述

一、源码结构xxl-job-admin:调度中心xxl-job-core:执行器xxl-job-executor-samples:执行器Sample示例调度中心项目:xxl-job-admin作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。执行器项目:xxl-job-core作用:负责接收“调度中心”的调度并执行;可直接部署执行器,也...

2020-03-11 15:56:03 973

原创 mybatis jdbcTyp和javaType的类型处理

前一个版本,要变更活动的一个表字段,从int型改为varchar。有点疑问如果先执行数据库脚本,后发版,会不会有问题?本地debug 了一下mybatis执行流程确认了一下。发现不是mybatis做了判断,而是JDBC做了这些脏活累活儿。下面的图片是mysql执行sql的调用栈信息:mybatis通过TypeHandlerRegistry,因为java类是Integer,所...

2019-12-22 08:11:07 289

转载 10、cglib和jdk动态代理 调用性能测试

说明这里将cglib 和 jdk动态代理进行对比,毕竟工业界用java assist或者asm比较奇怪针对调用速度进行比较(创建速度jdk动态代理肯定要快)版本:cglib 2.2.2 jdk 1.8.0_77主要参考了下面这几篇文章,各自说法各不同,让人比较奇怪http://www.cnblogs.com/haiq/p/4304615.htmlhttp://adolphor.com...

2019-11-07 10:31:35 595

转载 9、cglib demo分析以及methodProxy与Fastclass源码

前言上一节讲了say方法最终会转发,在demo中cglib.CglibProxy#intercept这个里面用了Object result = methodProxy.invokeSuper(o, objects);这个invokeSuper是什么?如何实现代理类函数的调用 转发到 父类对应函数的调用.这里就涉及methodProxy以及FastClass机制了。这两者也是...

2019-11-07 10:29:48 5561 3

转载 8、cglib demo以及Enhancer源码解析

先通过demo演示效果,然后进行源码分析demo用Enhancer结合MethodInterceptor以及CallBackFilter完成这里Enhancer类是CGLib中的一个字节码增强器,它可以方便的对你想要处理的类进行扩展1.demo拦截器1package cglib;import net.sf.cglib.proxy.MethodInterceptor;imp...

2019-11-07 10:26:05 652

转载 7、cglib NamingPolicy 命名策略

背景NamingPolicy表示生成类的名字的策略,比如、上一节看到了生成的class文件名字是KeySample$MyFactory$$KeyFactoryByCGLIB$$7116a61e,这个是由NamingPolicy定的结论默认的实现类:DefaultNamingPolicy, 具体cglib动态生成类的命名控制一般的命名规则:被代理class name + "$$"...

2019-11-07 10:24:12 690

转载 6、cglib KeyFactory

作用:Generates classes to handle multi-valued keys, for use in things such as Maps and Sets. Code for equals and hashCode methods follow the the rules laid out in Effective Java by Joshua Bloch.什么...

2019-11-07 10:00:52 596

转载 5、cglib概述

背景对于没有实现接口的类,不能使用动态代理Proxy。而CGLIB则可以实现对类的动态代理.使用cglib[Code Generation Library]实现动态代理,并不要求委托类必须实现接口,底层采用asm字节码生成框架生成代理类的字节码原理:对指定的目标类生成一个子类,并覆盖其中方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。 在子类中采用方法拦...

2019-11-06 21:01:10 243

转载 4、动态代理的缓存机制

1.背景上一节大致介绍了Proxy动态代理的原理,从几个疑问上面分析,这一节介绍一下动态代理的缓存机制。网上的资源比较少。可以怀着下面几个问题阅读源码为什么要缓存缓存的内容是什么哪里调用的缓存缓存的实现机制缓存的过期机制2.属性说明Proxy涉及的缓存主要在java.lang.reflect.WeakCache这个类中该类存在于jdk反射的包中当生成代理对象的时候会...

2019-11-06 17:59:47 695 1

转载 3、动态代理

定义动态代理类的源码是在程序运行期间由JVM根据反射等机制动态的生成,所以不存在代理类的字节码文件。代理类和委托类的关系是在程序运行时确定。实现方式在java的动态代理机制中,有两个重要的类或接口一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。每一个动态代理类都必须要实现Inv...

2019-11-06 17:57:17 208

转载 2、静态代理

定义由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。步骤定义委托类subject定义实现类realSubject定义代理类proxy客户端调用demo场景是完成一个UserManager的query调用package proxy;public class Main {...

2019-11-05 18:06:01 174

转载 1、背景介绍

概念为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。***代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 ***为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效控制对委托类对象的直接访...

2019-11-05 18:01:30 228

原创 基础知识点(一)

1、redis常用的数据结构以及在业务中使用的场景。2、redis的hash怎么实现的?3、rehash过程讲一下和JavaHashMap的rehash有什么区别?4、redis cluster有没有了解过,怎么做到高可用的?5、说说redis的持久化机制,为啥不能用redis做专门的持久化数据库存储?6、了不了解tcp/udp,说下两者的定义,tcp为什么要三次握手和四次挥手?7、t...

2019-07-16 09:55:06 155

转载 系统突然运行慢,线上CPU100%,频繁FullGC排查

当然,这些问题最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出 jstack 和内存信息,然后重启系统,尽快保证系统的可用性。这种情况可能的原因主要有两种: 代码中某个位置读取数...

2019-06-22 12:40:40 1600

转载 聊聊高并发长连接架构:百万在线的美拍直播弹幕系统如何实现

导读:直播弹幕是直播系统的核心功能之一。如何迅速作出一个有很好扩展性的弹幕系统?如何应对业务迅速发展?相信很多工程师/架构师都有自己的想法。本文作者是美拍的架构师,经历了直播弹幕从无到有,从小到大的过程。本文是作者对构建弹幕系统的经验总结。直播弹幕指直播间的用户,礼物,评论,点赞等消息,是直播间交互的重要手段。美拍直播弹幕系统从 2015 年 11 月到现在,经过了三个阶段的演进,目前能支撑百万用...

2019-06-13 14:38:51 633

原创 连接数、端口范围、最大文件数

1. 有些linux系统最大tcp链接数比较小,无法支持同时并发6w量的tcp链接?原因:最大tcp连接数和系统允许打开的最大文件数,用户允许打开的最大文件数,TCP网络连接可用的端口范围有关,取上述的最小值;一般的设置规则为:系统最大文件数>可用端口>用户最大文件数修改可用端口数:查看端口范围sysctl -a |grep ipv4.ip_local_p...

2019-06-13 10:47:25 1350

转载 账户系统的具体实现

在上一篇文章中我们通过场景举例的方式,讨论了一套相对通用的互联网业务账户系统,从业务模型上应该如何定义。那么除了从业务模型上进行定义外,在具体系统实现上又该如何设计?又有哪些需要注意的地方呢?在本篇内容中小码农就和大家一起讨论下账户系统的实现细节,希望可以和大家一起交流进步。事实上账户系统的业务逻辑是比较复杂的,对数据的一致性要求很高,特别是记账动作涉及强事务特性;另外,性能问题也是常常制约账...

2019-05-16 17:47:53 1821

转载 账户系统设计(上)

在很多互联网公司业务发展的早期,业务模式比较单一的情况下,涉及用户账户资金交易相关的逻辑也比较简单,但是随着公司业务模式的不断创新及类型的多元化发展,会渐渐发现现有系统账户逻辑越来越雍肿,不仅难以支持新业务的扩张,对现有业务的支持也适配困难,最终导致新业务系统不得不重新搭建自己的业务账户逻辑,造成重复建设不说,也往往给后续的财务资金核算造成混乱。以某互联网A租车公司的业务发展路径为例?阶段...

2019-05-16 09:19:54 3422

转载 阿里搜索推荐系统

一、系统框架导购升级的优化思路从三个方向着手:1.策略升级。利用深度学习及异构网络的思想,对用户个性化进行更深的理解和建模;同时对因马太效应引起的独立query数下降等问题进行优化。 2.导购外投。在包括会场激活页、猜你喜欢等渠道进行搜索导购赋能,为用户打通搜索通路。 3.产品创新。一方面对现有的产品进行创新升级,如激活页、下拉推荐等;另一方面积极尝试新产品形态,如首页热词、搜索动态卡片...

2019-05-13 16:04:49 2747

转载 金融风控反欺诈之图算法

先介绍下金融借贷业务流程:用户前来申请借贷,会先经过欺诈识别,把欺诈团伙和主观欺诈的个人拒绝掉,然后对通过的人做信用评估,最后根据额度模型,算出利润最大化时放款金额。刚才提到了团队欺诈,举个真实的例子。宜人贷在他们的财报中公布的,他们被一个团伙成功撸走了2000多单,当时宜人贷的件均4w, 一下损失了8000w!!那么如何防范这种风险呢。这就是今天要分享的图算法。图可以将这些一个个有良好记...

2019-04-29 10:08:56 10713 3

原创 离不开的微服务架构,脱不开的RPC细节

服务化有什么好处?服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队的技术解耦,如下图所示: 服务A:欧洲团队维护,技术背景是Java 服务B:美洲团队维护,用C++实现 服务C:中国团队维护,技术栈是go 服务的上游调用方,按照接口、协议即可完成对远端服务的调用。但实际上,大部分互联网公司,研发团队规模有限...

2019-04-12 14:49:50 235

转载 技术架构知识图整理

2019-04-03 11:38:06 327

原创 分布式事务

一、基础理论   目前关于事务的几大理论包括:ACID事务特性,CAP分布式理论,以及BASE等。ACID在数据库事务中体现,CAP和BASE则是分布式事务的理论,结合业务系统,例如订单管理,例如仓储管理等,可以借鉴这些理论,从而解决问题。1、ACID 特性2、CAP特性C(一致性)一致性是指数据的原子性,在经典的数据库中通过事务来保障,事务完成时,无论成功或回滚,数据都会处于一致...

2019-02-26 10:25:54 305

转载 跳跃表学习

假如我们要用某种数据结构来维护一组有序的int型数据的集合,并且希望这个数据结构在插入、删除、查找等操作上能够尽可能着快速,那么,你会用什么样的数据结构呢?数组一种很简单的方法应该就是采用数组了,在查找方面,用数组存储的话,采用二分法可以在 O(logn) 的时间里找到指定的元素,不过数组在插入、删除这些操作中比较不友好,找到目标位置所需时间为 O(logn) ,进行插入和删除这个动作所需...

2019-02-15 11:19:11 190

原创 Servlet相关学习

servlet2.3规范2.2.1servlet引擎可以声明多个实例去处理请求,servlet在应用服务的部署描述中定义发布.serlvet有两个实现类GenericServlet 和 HttpServletservletapi 不会去管是单实例 还是多实例,是由框架和容器来控制的。1、struts2的action为多实例2、spring的Bean是单实例,不过从2.5开始...

2019-01-11 11:07:56 175

转载 句法分析树标注集

ROOT:要处理文本的语句IP:简单从句NP:名词短语VP:动词短语PU:断句符,通常是句号、问号、感叹号等标点符号LCP:方位词短语PP:介词短语CP:由‘的’构成的表示修饰性关系的短语DNP:由‘的’构成的表示所属关系的短语ADVP:副词短语ADJP:形容词短语DP:限定词短语QP:量词短语NN:常用名词NR:固有名词NT:时间名词PN:代词VV:动词VC:...

2018-12-24 16:02:56 1383

原创 dubbo架构简单学习

Dubbo架构 服务发布spring容器通过DubboBeanDefinitionParser类的对象来解析xml文件中的标签,生成ServiceConfig等配置对象; ServiceConfig的export()等发布服务的方法被调用;3、通过spi机制确定Protocol接口的实现对象为DubboProtocol的对象,调用它的openServer()等方法;4、通过s...

2018-12-07 17:29:50 625

转载 QuestionAnsweringSystem技术实现简要分析

QuestionAnsweringSystem是一个Java实现的人机问答系统,能够自动分析问题并给出候选答案。IBM人工智能计算机系统"沃森"(Watson)在2011年2月美国热门的电视智力问答节目"危险边缘"(Jeopardy!)中战胜了两位人类冠军选手,QuestionAnsweringSystem就是IBM Watson的Java开源实现。本文从系统架构、主要数据结构、关键技术及代码实现...

2018-11-15 18:23:07 1101 1

转载 金融新科技的一些玩法

 Fintech是指通过互联网、大数据、云计算、人工智能、区块链等技术在金融领域的应用,重塑传统金融的业务运作模式和流程,并衍生出新的产品及服务。目前金融机构的主流玩法有五种: 1、金融智能搜索;2、金融预测和分析3、公募、私募基金在通过人工智能辅助量化交易、高频程序化交易;4、投资银行和卖方研究尝试自动报告生成;5.、财富管理公司在探索智能投顾方向。对应五种玩法的...

2018-11-02 15:45:37 1022

空空如也

空空如也

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

TA关注的人

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