Squirrel状态机-从原理探究到最佳实践
Squirrel状态机是一种用来进行对象行为建模的工具,主要描述对象在它的生命周期内所经历的状态,以及如何响应来自外界的各种事件。比如订单的创建、已支付、发货、收获、取消等等状态、状态之间的控制、触发事件的监听,可以用该框架进行清晰的管理实现。使用状态机来管理对象生命流的好处更多体现在代码的可维护性、可测试性上,明确的状态条件、原子的响应动作、事件驱动迁移目标状态,对于流程复杂易变的业务场景能大大减轻维护和测试的难度。
peter peter
4年前
Go:分布式锁实现原理与最佳实践
分布式锁应用场景很多应用场景是需要系统保证幂等性的(如api服务或消息消费者),并发情况下或消息重复很容易造成系统重入,那么分布式锁是保障幂等的一个重要手段。另一方面,很多抢单场景或者叫交易撮合场景,如dd司机抢单或唯一商品抢拍等都需要用一把“全局锁”来解决并发造成的问题。在防止并发情况下造成库存超卖的场景,也常用分布式锁来解决。实现
数据同步gossip协议原理与应用场景介绍
Gossip是一种p2p的分布式协议。它的核心是在去中心化结构下,通过将信息部分传递,达到全集群的状态信息传播,传播的时间收敛在O(Log(N))以内,其中N是节点的数量。基于gossip协议,可以构建出状态一致的各种解决方案。
Stella981 Stella981
4年前
JavaScript 核心原理精讲【朋友圈已刷屏】
作为一名前端工程师,JavaScript你一定每天都在用。但是,即便工作5年以上的前端也不一定用得非常熟,甚至很多前端对JavaScript的掌握程度仅仅停留在会用的层面。而且Vue/React等框架的便利,更是让前端人无需苦学JavaScript原生,就可以快速构建一个网页。它解决了开发者短期的痛点,却为依赖框架开发的程序员埋下长期隐
Stella981 Stella981
4年前
Presto 分布式SQL查询引擎及原理分析
!(https://mmbiz.qpic.cn/mmbiz_jpg/icQbWvrFMeJU4Iyz4iahZU517dLHVB6oPz940R1qcOP9mY5nPC9gbd8c8B50K4uia1NqO6XbHYPJCGocfQYXCbCsw/640?wx_fmtjpeg)​转载本文需注明出处:微信公众号EAWorld,违者必究。
Stella981 Stella981
4年前
Spark源码剖析(八):stage划分原理与源码剖析
引言对于Spark开发人员来说,了解stage的划分算法可以让你知道自己编写的sparkapplication被划分为几个job,每个job被划分为几个stage,每个stage包括了你的哪些代码,只有知道了这些之后,碰到某个stage执行特别慢或者报错,你才能快速定位到对应的代码,对其进行性能优化和排错。stage划分原理与源码
Wesley13 Wesley13
4年前
Java IO之NIO原理解析以及代码演示
一、JavaNIO几个核心部分ChannelBufferSelector二、IO和NIO的区别IO基于流(Streamoriented),而NIO基于Buffer(Bufferoriented)在一般的JavaIO操作中,我们以流式的方式顺序地从
Stella981 Stella981
4年前
AQS 都看完了,Condition 原理可不能少!
!(https://oscimg.oschina.net/oscnet/6d11d8535f9f4a9ba3b6508948653a95.png)前言"在介绍AQS时,其中有一个内部类叫做ConditionObject,当时并没有进行介绍,并且在后续阅读源码时,会发现很多地方用到了Cond
Stella981 Stella981
4年前
Consul 基本概念,同类比较和内部原理
这个文章我们主要来说一下Consul的基本概念,以及其实现的内部原理,和Eureka的比较。\1.什么是Consul?Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全服务网格。Consul需要数据平面并支持代理和本机集成模型。Consul
图解:卷积神经网络数学原理解析
图解:卷积神经网络数学原理解析源自:数学中国过去我们已经知道被称为紧密连接的神经网络。这些网络的神经元被分成若干组,形成连续的层。每一个这样的神经元都与相邻层的每一个神经元相连。下图显示了这种体系结构的一个示例。图1.密集连接的神经网络结构当我们根据一组有限的人工设计的特征来解决分类问题时,这种方法很有效。例如,我们根据足球运动员在比赛期间的统计数据来预测