[从源码学设计]蚂蚁金服SOFARegistry之服务注册和操作日志 目录 [从源码学设计]蚂蚁金服SOFARegistry之服务注册和操作日志 0x00 摘要 0x01 整体业务流程 1.1 服务注册过程 1.2 数据分片 0x02 基础数据结构 2.1 Publisher 2.2 Datum 2.3 DatumCache 2.4 Operator 2.5 Acceptor 2.6 总结 0x03 Datum的来龙去脉 3.1 Session Server 内部 3.2 PublishData…
[从源码学设计]蚂蚁金服SOFARegistry之网络封装和操作 目录 [从源码学设计]蚂蚁金服SOFARegistry之网络封装和操作 0x00 摘要 0x01 业务领域 1.1 SOFARegistry 总体架构 1.2 应用场景 1.2.1 单元化状态 1.2.2 内网通讯 1.2.3 Http协议 1.3 问题点 1.4 解决方案 1.5 阿里方案 1.6 实现问题 1.7 总述 0x02 基础封装 2.1 Channel 2.1.1 Java Channel 2.1.2 SOFA Ch…
[从源码学设计]蚂蚁金服SOFARegistry之服务上线 目录 [从源码学设计]蚂蚁金服SOFARegistry之服务上线 0x00 摘要 0x01 业务领域 1.1 应用场景 1.1.1 服务发布 1.1.2 SessionServer的必要性 1.2 问题点 1.3 阿里方案 1.3.1 注册过程 1.3.2 图示 0x02 Client SDK 0x03 Session server 3.1 Bean 3.2 入口 3.3 策略 3.3.1 目录结构 3.3.2 DefaultPubli…
[从源码学设计]蚂蚁金服SOFARegistry 之 ChangeNotifier 目录 [从源码学设计]蚂蚁金服SOFARegistry 之 ChangeNotifier 0x00 摘要 0x01 业务范畴 1.1 概述 1.2 数据变化 0x02 数据结构 2.1 接口定义 2.2 派生类 2.3 Bean 0x03 流程 3.1 放入消息 3.1.1 PublishDataHandler 3.1.2 DataChangeEventCenter 3.2 消费消息&发送通知 3.2.1 Dat…
[从源码学设计]蚂蚁金服SOFARegistry之程序基本架构 0x00 摘要 之前我们通过三篇文章初步分析了 MetaServer 的基本架构,MetaServer 这三篇文章为我们接下来的工作做了坚实的铺垫. 本系列我们接着分析 Data Server,顺带会涉及一些 Session Server.因为 DataServer 和 MetaServer 代码实现和架构的基本套路类似,所以我们主要关心差异点和DataServer的特点. 本文会分析DataServer程序的基本架构. 0x01…
[从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理 目录 [从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理 0x00 摘要 0x01 业务领域 1.1 应用场景 0x02 管理内容 2.1 连接管理 2.2 管理内容 0x03 Connection管理 3.1 Connection对象 3.2 Connection类定义 3.3 ConnectionFactory 3.4 MetaServerConnectionFactory 3.5 DataServerCon…
[从源码学设计]蚂蚁金服SOFARegistry之消息总线 目录 [从源码学设计]蚂蚁金服SOFARegistry之消息总线 0x00 摘要 0x01 相关概念 1.1 事件驱动模型 1.1.1 概念 1.1.2 应用环境 1.2 消息总线 0x02 业务领域 2.1 业务范畴 2.2 问题点 2.3 解决方案 0x03 EventCenter 3.1 目录结构 3.2 类定义 3.2.1 操作 3.2.2 执行 & 解耦 3.2.3 Listener列表 3.2.4 ArrayListMult…
[从源码学设计]蚂蚁金服SOFARegistry之消息总线异步处理 目录 [从源码学设计]蚂蚁金服SOFARegistry之消息总线异步处理 0x00 摘要 0x01 为何分离 0x02 业务领域 2.1 应用场景 2.2 延迟和归并 2.2.1 业务特点 2.2.2 问题 2.2.3 解决 2.3 蚂蚁金服实现 0x03 DataChangeEventCenter 3.1 总述 3.2 DataChangeEventCenter 3.2.1 定义 3.2.2 消息类型 3.2.3 初始化 3.…
[从源码学设计]蚂蚁金服SOFARegistry之存储结构 目录 [从源码学设计]蚂蚁金服SOFARegistry之存储结构 0x00 摘要 0x01 业务范畴 1.1 缓存 1.2 DataServer 分片机制 1.3 服务模型 1.3.1 服务发布模型(PublisherRegister) 1.3.2 服务订阅模型(SubscriberRegister) 1.3.3 dataInfoId 1.3.4 版本号 0x02 基本概念 2.1 物理机房DataCenter 2.2 Server节点…
[从源码学设计]蚂蚁金服SOFARegistry之推拉模型 目录 [从源码学设计]蚂蚁金服SOFARegistry之推拉模型 0x00 摘要 0x01 相关概念 1.1 推模型和拉模型 1.1.1 推模型: 特点: 优点: 缺点: 1.1.2 拉模型 特点: 优点: 缺点: 1.2 Guava LoadingCache 0x02 业务领域 2.1 应用场景 2.2 问题点 2.3 解决方案 2.4 阿里方案 2.4.1 各种模型应用 2.4.2 推拉模型 0x03 拉模型 in Session…
[从源码学设计]蚂蚁金服SOFARegistry之时间轮的使用 目录 [从源码学设计]蚂蚁金服SOFARegistry之时间轮的使用 0x00 摘要 0x01 业务领域 1.1 应用场景 0x02 定时任务 2.1 什么是定时任务 2.2 Java定时任务框架 0x03 时间轮 3.1 缘由 3.2 定义 3.3 Netty时间轮HashedWheelTimer 3.3.1 实现 3.3.2 单线程与业务线程池 3.3.3 全局定时器 3.3.4 队列 3.4 Kafka和多层时间轮 3.4.1…
[从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务 目录 [从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务 0x00 摘要 0x01 业务领域 0x02 阿里方案 0x03 Scheduler 0x04 无限循环任务 4.1 ExecutorService 0x05 周期任务 5.1 ScheduledExecutorService 0x06 Queue的选择 6.1 ThreadPoolExecutor的queue 6.2 SOFARegi…
[从源码学设计]蚂蚁金服SOFARegistry 之 如何与Meta Server交互 目录 [从源码学设计]蚂蚁金服SOFARegistry 之 如何与Meta Server交互 0x00 摘要 0x01 业务范畴 1.1 MetaServer的重要性 1.2 推拉模型 1.3 分析策略 0x02 目录结构 0x03 Bean 0x04 Raft协议 0x05 消息处理 5.1 MetaServerChangeEvent 5.2 消息来源 5.2.1 启动 5.2.2 定时 5.2.3 推送…
[从源码学设计]蚂蚁金服SOFARegistry之Data节点变更 目录 [从源码学设计]蚂蚁金服SOFARegistry之Data节点变更 0x00 摘要 0x02 引子 0x03 业务范畴 3.1 DataServer 数据一致性 3.2 节点变更时的数据同步 0x04 总体逻辑 0x05 DataServerChangeEvent 5.1 消息来源 5.1.1 启动 5.1.1.1 产生消息 5.1.1.2 MetaServerChangeEventHandler 5.1.2 推送 5.1…
[从源码学设计]蚂蚁金服SOFARegistry 之 LocalDataServerChangeEvent及数据同步 目录 [从源码学设计]蚂蚁金服SOFARegistry 之 LocalDataServerChangeEvent及数据同步 0x00 摘要 0x02 业务范畴 2.1 DataServer 数据一致性 2.2 本地机房策略 0x03 总体逻辑 0x04 消息 4.1 LocalDataServerChangeEvent 4.2 来源 0x05 消息处理 5.1 LocalData…
[从源码学设计]蚂蚁金服SOFARegistry之续约和驱逐 目录 [从源码学设计]蚂蚁金服SOFARegistry之续约和驱逐 0x00 摘要 0x01 业务范畴 1.1 失效剔除 1.2 服务续约 0x02 DatumLeaseManager 2.1 定义 2.2 续约 2.2.1 数据结构 2.2.2 调用 2.2.3 续约 2.2.4 图示 2.3 驱逐 2.3.1 数据结构 2.3.2 显式调用 2.3.3 启动调用 2.3.4 驱逐 2.3.5 驱逐处理业务 2.3.5.1 转发驱逐…
[从源码学设计]蚂蚁金服SOFARegistry之配置信息 目录 [从源码学设计]蚂蚁金服SOFARegistry之配置信息 0x00 摘要 0x01 业务范畴 1.1 配置作用 1.2 学习方向 0x02 数据结构 2.1 目录结构 2.2 数据结构定义 0x03 Meta Server 内流程 3.1 Admin请求响应 3.2 DBService 3.3 Bean 3.4 Listener 3.5 Task 3.6 服务 0x04 调用路径 in Data Server 4.1 Bean…
[从源码学设计]蚂蚁金服SOFARegistry之延迟操作 0x00 摘要 SOFARegistry 是蚂蚁金服开源的一个生产级.高时效.高可用的服务注册中心. 本系列文章重点在于分析设计和架构,即利用多篇文章,从多个角度反推总结 DataServer 或者 SOFARegistry 的实现机制和架构思路,让大家借以学习阿里如何设计. 本文为第十七篇,介绍SOFARegistry的延迟操作. 0x01 业务领域 1.1 业务缘由 为什么要有AfterWorkingProcess? AfterWo…
[从源码学设计] Flume 之 memory channel 目录 [从源码学设计] Flume 之 memory channel 0x00 摘要 0x01 业务范畴 1.1 用途和特点 1.2 Channel 1.3 研究重点 1.4 实际能够学到什么 1.5 总述 0x02 定义 2.1 接口 2.2 配置参数 2.2.1 channel属性 2.4 Semaphore和Queue 2.5 MemoryTransaction 0x03 使用 3.1 channel如何使用 3.2 sour…
在用一项技术前,一定要知道它的优点和缺点,它的优点是否对你有足够的吸引力,它的缺点不足你是否有办法补上.黄挺在CNUTCon全球运维大会上的分享也很不错. 黄挺,蚂蚁金服高级技术专家,蚂蚁金服分布式架构 SOFA 的开源负责人.目前在蚂蚁金服中间件团队负责应用框架与服务化相关的工作. 大家好,我是来自于蚂蚁金服的黄挺,花名鲁直,目前在蚂蚁金服负责微服务团队,也是 SOFA 开源的负责人. 来到这个场子的朋友们肯定都知道,Service Mesh 在过去一两年之中迅速成长为社区中非常热门的话题,几…
作者 | 蚂蚁金服技术专家 沧漠 关注『阿里巴巴云原生』公众号,回复关键词"1024",可获取本文 PPT. 前言 Kubernetes 以其超前的设计理念和优秀的技术架构,在容器编排领域拔得头筹.越来越多的公司开始在生产环境部署实践 Kubernetes,在阿里巴巴和蚂蚁金服 Kubernetes 已被大规模用于生产环境.Kubernetes 的出现使得广大开发同学也能运维复杂的分布式系统,它大幅降低了容器化应用部署的门槛,但运维和管理一个生产级的高可用 Kubernetes 集群仍…
自己当初找工作时参加过众多一线互联网公司的Java研发面试,这段时间处于寒冬,然而前几天跳槽找工作,两天面了3家,已经拿了两个offer,觉得可以和大家分享下: 下面为拼多多.饿了么.蚂蚁金服.哈啰出行等公司给我留下较深印象的一些java面试题 private修饰的方法可以通过反射访问,那么private的意义是什么 Java类初始化顺序 对方法区和永久区的理解以及它们之间的关系 一个java文件有3个类,编译后有几个class文件 局部变量使用前需要显式地赋值,否则编译通过不了,为什么这么设计…
电话一面 1.自我介绍.自己做的项目和技术领域 2.项目中的监控:那个监控指标常见的哪些? 3.微服务涉及到的技术以及需要注意的问题有哪些? 4.注册中心你了解了哪些? 5.consul 的可靠性你了解吗? 6.consul 的机制你有没有具体深入过?有没有和其他的注册中心对比过? 7.项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理 8.Spring Boot除了自动配置,相比传统的 Spring 有什么其他的区别? 9.Spring Cloud 有了…
SOFAMesh是蚂蚁金服在ServiceMesh方向上的探索,下面是它高级技术专家敖小剑在QCon上海2018上的演讲. Service Mesh 是一个 基础设施层,用于处理服务间通讯.现代云原生应用有着复杂的服务拓扑,服务网格负责在这些拓扑中 实现请求的可靠传递. 在实践中,服务网格通常实现为一组 轻量级网络代理,它们与应用程序部署在一起,而 对应用程序透明. 加粗部分是重点: 基础设施层:这是 Service Mesh 的定位,今天内容的最后一个部分我会和大家详细展开这个话题: 服务间通…
写在前面 很多小伙伴都反馈说,现在的工作不好找呀,也不敢跳槽,在原来的岗位上也是战战兢兢!其实,究其根本原因,还是自己技术不过关,如果你技术真的很硬核,怕啥?想去哪去哪呗!这不,我的一个读者去面试了蚂蚁金服,HR小姐姐让他下周入职! 注:二狗子,我的一名忠实读者,很勤奋,我的每一篇文章他都是必读的,后来由于经常交流技术,成为了比较熟悉的网友,二狗子也是我给他起的外号,哈哈.这次他拿下了蚂蚁金服,跟我说:面试中大部分的问题我公众号中的文章都有涉及到.哈哈哈,很开心的有木有?! 关注 冰河技术 微信…
阅读本文大概需要 5.6 分钟. 作者:翟洪毅 一.梦想和被拒 二.积累 三.结语   首先介绍一下投稿作者 翟洪毅,16年华理计算机本科毕业.在年前拿到了蚂蚁金服Java开发的offer,P6. 工作经历: 15-17年,壹钱包实习.工作,基础中间件组. 17年8月-19年3月网联清算有限公司,基础组件组. 一.梦想和被拒 进入阿里一直都是我的梦想,我想这跟很多同学是相似的.我前后被拒了两次,分别是大三找实习和工作一年后.第二次尝试一面都没过,但那一次电话面试经历了一个半小时,被问了十几个问题…
导读:GIAC大会期间,蚂蚁金服杨冰,黄挺等讲师面向华南技术社区做了<数字金融时代的云原生架构转型路径>和<从传统服务化走向Service Mesh>等演讲,就此机会,高可用架构社区编辑魏佳和王渊命对蚂蚁金服技术团队的杨冰和黄挺进行的访谈.访谈内容涉及到中间件,微服务,Service Mesh,OpenSource等多个方面,让我们大家一起看看蚂蚁金服技术专家对这些话题的独特见解. 魏佳:欢迎两位,我是高可用架构的编辑魏佳,这位是王渊命.今天很有幸邀请到两位在演讲之后接受我们的采访…
小蚂蚁说: 2019年1月4日,蚂蚁金服ATEC城市峰会将以“数字金融新原力(The New Force of Digital Finance)”为主题,在中国上海举办.蚂蚁金服ATEC(Ant Technology Exploration Conference)科技大会是由蚂蚁金服举办的.面向全球合作伙伴与技术专业人群的前沿技术探索大会,致力于通过对先进的前沿技术探索与讨论,为世界带来平等的机会.过去一年,蚂蚁金服ATEC科技大会走过杭州.硅谷.新加坡.伦敦等全球金融科技中心城市与地区,与当地…
干货 | 蚂蚁金服是如何实现经典服务化架构往 Service Mesh 方向的演进的? https://www.sohu.com/a/235575064_99940985 干货 | 蚂蚁金服是如何实现经典服务化架构往 Service Mesh 方向的演进的? 2018-06-13 17:29蚂蚁金服/操作系统 蚂蚁金服在服务化上面已经经过多年的沉淀,支撑了每年双十一的高峰峰值.Service Mesh 作为微服务的一个新方向,在最近两年成为领域的一个大热点,但是如何从经典服务化架构往 Servi…
写在开始 上班前的第一件事,就是码云看看有什么消息,回复下网友的问题.如果看到喜欢的项目会点进去瞅瞅,然后就开始一天的工作. 然而,这一天的工作并不开心,一个今日热门项目让自己很恼火,一开始感觉并没有什么,直到深入进去,才发现,居然这么赤裸裸的搬挪替换,这都不能算是抄袭! 前情回顾 事情要从一年前说起,闲来无事也给自己充充电,不都说人生苦短,要学 Python 嘛!于是乎就在码云拉了个项目,叫<从零学Python>,关注小柒公众号的朋友们肯定是知道的. 陆陆续续的也更新了不少学习案例,也为大家…