How to Build Distributed Concurrent System(思维草稿)

DuCut_1794120730156_604.mp4 立即下载

问题:

Distributed需要解决的问题?

fault tolerance:容错性

reliable:可靠性

scalable:伸缩性


Concurrent带来的问题?

parallelism:并发性

performance:性能



简而言之:Reactive Programming(http://www.reactivemanifesto.org/)

Reactive Systems are:

Responsive: The system responds in a timely manner if at all possible. Responsiveness is the cornerstone of usability and utility, but more than that, responsiveness means that problems may be detected quickly and dealt with effectively. Responsive systems focus on providing rapid and consistent response times, establishing reliable upper bounds so they deliver a consistent quality of service. This consistent behaviour in turn simplifies error handling, builds end user confidence, and encourages further interaction.

Resilient: The system stays responsive in the face of failure. This applies not only to highly-available, mission critical systems — any system that is not resilient will be unresponsive after a failure. Resilience is achieved by replication, containment, isolation anddelegation. Failures are contained within each component, isolating components from each other and thereby ensuring that parts of the system can fail and recover without compromising the system as a whole. Recovery of each component is delegated to another (external) component and high-availability is ensured by replication where necessary. The client of a component is not burdened with handling its failures.

Elastic: The system stays responsive under varying workload. Reactive Systems can react to changes in the input rate by increasing or decreasing the resources allocated to service these inputs. This implies designs that have no contention points or central bottlenecks, resulting in the ability to shard or replicate components and distribute inputs among them. Reactive Systems support predictive, as well as Reactive, scaling algorithms by providing relevant live performance measures. They achieveelasticity in a cost-effective way on commodity hardware and software platforms.

Message Driven: Reactive Systems rely on asynchronous message-passing to establish a boundary between components that ensures loose coupling, isolation, location transparency, and provides the means to delegate errors as messages. Employing explicit message-passing enables load management, elasticity, and flow control by shaping and monitoring the message queues in the system and applying back-pressure when necessary. Location transparent messaging as a means of communication makes it possible for the management of failure to work with the same constructs and semantics across a cluster or within a single host. Non-blockingcommunication allows recipients to only consume resources while active, leading to less system overhead.




Akka是如何解决这些问题的?

另外一种编程模型


问题:需要在初始化的时候做出更多的工作(这个工作具体指什么?)

收益:在扩展性上和可测试性上更容易得到保证(整体如何测试?)


和Thread Model的对比?和Distributed Objects的对比?

线程模型本身就有局限性,受限于线程的个数和资源,即使使用线程池,线程池里的线程使用完了以后,也会出现timeout。并且,使用线程模型并不会带来线性的支撑能力扩展,因为不同的线程可能会访问同一共享资源(竞争资源)。


Actor Systems

最重要的三个概念:address / mailbox / actor

最重要的四个操作:CREATE / SEND / BECOME / SUPERVISE

distributed chain of responsibility design pattern

Carl Hewitt, 1973, Erlang

runtime replacement



CAS: compare and swap


基于线程的模型和基于消息的模型

不变状态(immutability)是Message-Oriented Programming的核心。


如何对Message-Oriented Programming进行建模???




let it crash????(还有什么其他的?)







改进差分进化算法及其求解柔性作业车间调度问题(Python代码实现) 内容概要:本文系统探讨了改进差分进化算法在求解柔性作业车间调度问题中的应用,并结合Python代码实现,展示了该算法相较于传统方法在全局搜索能力和收敛速度方面的优势。研究不仅聚焦于算法本身的改进策略,如变异、交叉和选择操作的优化,还深入分析了其在复杂制造环境中应对多目标、多约束调度问题的有效性。文中通过标准测试实例验证了算法性能,并与其他智能优化算法进行了对比分析,体现了其在实际工程应用中的潜力。此外,文档还关联了多无人机路径规划、电力系统状态估计、微电网优化、图像与信号处理等多个前沿技术领域,展现了智能优化算法在跨学科工程仿真与决策支持中的广泛适用性。; 适合人群:具备一定编程基础和工程背景,从事智能制造、自动化、工业工程、电气工程、控制科学与工程、计算机科学及相关领域的科研人员、高校研究生及企业研发技术人员。; 使用场景及目标:①为科研工作者提供可复现的智能优化算法代码框架,支持柔性作业车间调度、多无人机协同路径规划、电力系统优化等复杂工程问题的建模仿真;②辅助完成学术论文复现、课程设计、毕业设计或科研项目开发;③推动智能算法在生产调度、能源管理、交通规划等实际场景中的落地应用。; 阅读建议:建议读者结合文中提供的算法原理与代码实现,动手调试并验证不同参数设置对优化结果的影响,同时可参考荔枝科研社提供的完整资源包进行扩展学习与实践,以加深对算法机制与工程应用的理解。 立即下载

相关推荐

复现基于改进秃鹰算法的微电网群经济优化调度研究(Matlab代码实现)

内容概要:本文聚焦于“基于改进秃鹰算法的微电网群经济优化调度”研究,提出一种改进的秃鹰优化算法(IBOA)以解决传统智能优化算法在求解过程中易陷入局部最优、收敛速度慢等问题。通过引入自适应权重、动态搜索机制及种群多样性保持策略,显著增强了算法的全局搜索能力和收敛精度。研究构建了包含光伏发电、风力发电、储能系统、可控负荷及电网交互的微电网群多主体协同调度模型,以系统综合运行成本最小化为目标函数,综合考虑功率平衡、设备出力能力、储能荷电状态、爬坡速率等多种实际约束条件。利用Matlab平台进行仿真验证,并与标准BOA、PSO、GA等经典智能算法进行对比,结果表明所提算法在降低系统运行成本、提高可再生能源消纳率及优化调度效率方面具有明显优势。; 适合人群:适用于具备电力系统基础、优化理论知识及Matlab编程能力的高校研究生、科研人员及从事微电网、综合能源系统优化调度相关工作的工程技术人员。; 使用场景及目标:①用于微电网群或多微网系统的经济调度建模与仿真;②开展新型智能优化算法的设计、改进与性能评估;③支撑含高比例可再生能源的配电系统优化运行决策; 阅读建议:建议结合提供的Matlab代码深入理解算法实现细节与调度模型构建过程,重点分析改进策略对优化性能的影响,并可通过替换场景参数或引入其他算法进行横向对比实验,进一步掌握智能优化在能源系统中的应用方法。【复现】基于改进秃鹰算法的微电网群经济优化调度研究(Matlab代码实现)

GLM-5 论文理解记录

GLM-5 论文阅读记录

qq_42563807的博客 657

改进-基于新扩展移相角下的双有源桥DAB变换器仿真(EPS调制、软开关、最小应力优化)(Simulink仿真实现)

内容概要:本文系统阐述了基于新扩展移相角的双有源桥(DAB)DC-DC变换器的先进仿真研究,聚焦于EPS调制策略、软开关技术实现及最小应力优化控制目标的协同设计。通过Matlab/Simulink平台构建双闭环控制系统模型,深入剖析变换器在高频隔离、双向功率传输场景下的动态响应特性与效率优化机制。该仿真方案复现了顶级EI期刊研究成果,具备高学术参考价值,并集成于一套完整的电力电子与新能源系统仿真资源体系中,涵盖微电网、PWM整流器、LLC谐振变换器、储能管理等多个关键技术方向,配套完整的仿真代码、设计文档与理论资料,支持深度学习与二次开发; 适合人群:面向电力电子、电气工程及其自动化、新能源科学与工程等领域的研究生、科研人员以及从事高性能DC-DC变换器研发的工程师,要求具备扎实的电路理论基础、电力电子拓扑分析能力及一定的Matlab/Simulink仿真实践经验; 使用场景及目标:①深入掌握DAB变换器的核心工作原理及其在EPS调制与软开关协同下的最优控制策略;②支撑高水平科研论文的复现、改进与创新性研究;③服务于硕士课题、博士研究或企业级新能源变换器产品的前期验证与算法开发; 阅读建议:建议结合文中提供的Simulink模型与引用的权威文献进行系统学习,重点理解控制架构设计、参数整定方法与优化算法实现路径,同时可横向对比其他电力电子变换器案例,拓展系统级工程思维与科研创新能力。

IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题

程序员的工作不是写程序,而是写程序解决问题。做到心中无码,才更容易专注于解决问题。

kiwi_coder 1万+

Zemax序列模式下激光二极管(LD)光源建模与像散校正实战

本文详细讲解了在Zemax序列模式下精确建立激光二极管(LD)光源模型并校正其像散的核心方法。通过将椭圆光束的发散角转换为渐晕系数,并巧妙利用理想柱面镜模拟像散,实现了对LD光源特性的高精度模拟。该方法特别适用于激光耦合、激光雷达等需要对像散光束进行精密控制的光学系统设计。

weixin_28455801的博客 436

告别算力焦虑:手把手教你用华为CloudMatrix384超节点部署MoE大模型(附xDeepServe配置)

本文详细解析了如何在华为CloudMatrix384超节点上高效部署MoE大模型,通过xDeepServe框架配置和专家分配优化,实现2300 Tokens/s的推理吞吐。文章涵盖环境准备、性能调优、成本平衡及容灾设计,帮助开发者告别算力焦虑,提升AI推理效率。

weixin_30790841的博客 439

Dropwizard:用Java轻轻的写一个RESTful Service

在我的上一篇博客《 Embedded Server:像写main函数一样写Web Server》中,提到了使用Jetty Embedded Server进行Java Web Server的开发比传统的Web Container的方式进行开发的优势。如果直接使用Jetty提供的API进行Web Server的开发,特别是RESTful service的开发,难免看起来还是简单粗暴了一些。

kiwi_coder 1万+

CIC-IDS-2018数据集高效预处理实战:从数据清洗到特征整合

本文详细介绍了CIC-IDS-2018数据集的高效预处理方法,从数据清洗到特征整合的全流程实战。通过内存优化、异常值处理和特征工程等技巧,帮助网络安全研究人员快速处理大规模网络流量数据,提升机器学习模型的训练效率和准确率。特别针对特征数据的预处理提供了实用代码示例和优化建议。

weixin_29274969的博客 501

1+1/1+1/2+1/3 + ...+1/16的整数部分是多少?

问:1/1 + 1/2 + 1/3 + 1/4 + ... + 1/36 的整数部分是多少?

kiwi_coder 6953

手把手拆解UCIe协议层:从Raw Mode到Flit Mode,数据包到底经历了什么?

本文深入解析UCIe协议层的数据包处理机制,从Raw Mode到Flit Mode的三大变体(Standard 256B、68B-Enhanced、Latency-Optimized),详细揭示数据包在不同模式下的封装与转换过程。通过工程师视角,展示协议层如何实现多模式动态切换、错误恢复及与D2D Adapter的协同设计,为芯片级互连技术提供实践指导。

weixin_28728495的博客 238

手把手完整实现STM32+NB-IoT+MQTT+ThingsCloud云平台+手机APP(Android或iOS)及微信小程序及Web app 应用

本教程以远程温湿度显示及点灯作为示例。最终效果实现本地OLED显示屏、云平台和手机APP、微信小程序和Web App可远程查看温湿度数据,并可远程控制LED灯亮灭。以此完成基于MQTT协议的NB-IoT远程发布订阅数据,以此在本教程基础上可扩展开发更多的功能。

嵌入式阿齐Archie 2万+

Heroku:快速部署Dropwizard开发的RESTful Service

上一篇博客《Dropwizard:用Java轻轻的写一个RESTful Service》中讲到了使用Dropwizard可以快速的开发出一个RESTful service,同时因为Dropwizard使用的是Jetty Embedded Container,就可以不再需要繁琐的去安装相应的container,以及其他的好处(参考《Embedded Server:像写main函数一样写Web Server》)。唯一需要的东西,只是java的运行时环境。为了说明这样带来的好处,这篇博客将会采用大家耳熟能详的一个

kiwi_coder 6192

SAP_SD模块销售开票计划预收款系统配置及前台操作说明

在 SAP SD 中,开票计划(Billing Plan)是一种允许根据时间节点或里程碑对销售订单进行分期开票的功能。其中最常见的一种应用就是预收款(Down Payment Billing),即在销售订单中直接定义某个百分比或金额作为预收款,系统在开票时自动生成预收账单。大额合同或长期项目型销售(先收 20%,交货前收 30%,交货后收 50%)。分期付款模式(分阶段收款)。必须预收款才能安排生产或交货的业务。后台路径:SPRO—销售与分享—销售—销售凭证—销售凭证项目—定义项目类别。

我小时候很黑的博客 1407

塔式起吊机是怎么安装的?

昨天回家,市区漫天的灰尘,到处都在修,修房子,修二环路。看到一个很高的塔式起吊机。我就想到了几个问题 这么长的长臂是怎么弄到那么高的未知的?后面那几个大石板放在后臂是怎么弄的?想起那些几十层的塔式起吊机又是怎么弄的? 如果我是这个工程的施工人,我会怎么去弄? 好像是个有点儿意思的问题。我想了一个下午,然后到网上搜了下,可以看下这个视频: http://www.tudou.com/p

kiwi_coder 5608

【Python爬虫教程】第3篇-解决使用reqeusts遇到的ProxyError异常

Python request代理错误提示“HTTPSConnectionPool, Cannot connect to proxy, no such file or directory”

分享技术,记录思考和感悟 1507

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

忆前年ThoughtWorks面试经历--用门开啤酒

本来想不写这样的文章,觉得这种回忆过去的东西,都是一些有文化有层次的人写的。我这种小屁孩儿没做出个名堂,写了这种,以后要是还没出息,不久留下笑话的把柄了吗。后来看到微薄上别人写的回忆面试什么的,感觉写的可开心了,我也就想开心开心。要是以后没什么出息,就当我是个棒槌吧。   大四的时候,给导师做一个项目,是一个用来处理地震数据的分布式批处理系统。有一天,导师把我叫到了办公室,说周六的时候要

kiwi_coder 5402

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

一个有意思的Ruby Webdriver超时问题的解决过程

因为写ruby的时候感觉混身上下都拽起来了,所以比较喜欢用ruby写代码。今天遇到了一个webdriver timeout的问题,问题本身还是因为我对webdriver不了解以及破文档导致的。首先我们把问题简化一下: driver = Selenium::WebDriver.for :safari driver.navigate.to "http://www.faraway.com" wait = Selenium::WebDriver::Wait.new(:timeout => 1000) # seco

kiwi_coder 3961

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

从small到safe,形容词的学问

高中的时候,历史老师黄勇是个非常有趣的人。黄老师讲课的时候眉飞色舞,我一个哥们说,上他的课你不可能睡觉。因为太有趣了。也很幸运有这么好的老师。黄老师是特级教师,后面好像去了教育局。也是很遗憾的。   历史上经常会有什么新革命,新变法之类的。每次,遇到这种带有“新”字的东西,黄老师都要问,“这个‘新’,‘新’在哪里?”。 当你不断的被重复某句话的时候,你很难不记住这句话。就好像恒源祥的广告,“

kiwi_coder 3735

<<Big Data: Principles and Best Practices of Scalable Realtime Data Systems>>读书笔记

Chapter 1 A New Paradigm for Big Data 1.1 How this Book is structured focus on principles of big data problem => theory / illustration 1.2 Scaling with a traditional database original  proble

kiwi_coder 3658

三问微服务

微服务是一个越来越热的话题,讨论的问题都大致是我有一个单体大应用,如何拆成微服务?如何保证保证拆了微服务以后,微服务之间的依赖性?服务之间调用的性能问题?分布式一致性问题?现在也有越来越多的讨论微服务与组织架构的对应关系

kiwi_coder 3188

那些烂代码教给我的事

(以前的博文,转到csdn上来) 如果作为一个程序员,你对我写的东西不感兴趣,可以直接跳到最后一句。 这周三的时候,我还是跟往常一样在做我的事,偷偷摸摸学点儿ror。一个老师让一个同学叫我过去帮忙看程序,说是程序编译不通过。。。 先说明,这个项目组的项目是一个地质相关的绘图软件,大部分的程序设计到石油数据,和一些计算机图形学的东西,是跟中石油合作的,有大概8、9年的样子了,无测试。几

kiwi_coder 3094

脑法之一 --- DEBUG与搜索算法

何为DEBUG?DEBUG,就是搜索BUG,让后把它DE了。

kiwi_coder 2979

从找零到人民币面额设计

引子 晚上坐飞机从北京回成都,在机场候机花了23元买了一袋麻辣牛肉干。身上没零钱,就拿了一张100给售货员找零77。突然觉得这件事情太好玩儿了。中国发行的货币有100、50、20、10、5、1这几种面额的纸币。为什么我们的面额要这样设计呢?不这样设计会怎样?假设这几种面额的设计是合理的,那么这些纸币要按照什么样的比例进行发行才能保证我们生活中给100找73的这个看似很简单的事情能够正常进行呢?

kiwi_coder 2768

记一种TDD方式:红绿憋,红绿再憋

前段时间看到微博上看到一则冷笑话,讲的是如何画马: 我看到前半截的时候,我还真的在纸上用笔一点点的画,但是当我看到最后一步的时候,What the Fuck!!!

kiwi_coder 2526

一个被烂眼儿公司水了的同学

前天,大家都在高高兴兴吃毕业散伙饭的时候。W同学站起来,端着酒杯,说,给大家说一个坏消息--我的工作弄丢了。 瞬间,气氛尴尬了。 W说,原来他跟公司说好,答完辩就到公司实习。公司也同意了。但前天打电话给那公司的时候,公司却说,因为他没有去实习,就取消offer了。 大家都在咒骂那家公司。那家公司叫“我要去哪儿网”,http://517na.com,不是“去哪儿网”,是“我要去哪儿网”

kiwi_coder 2526
上一篇: CSS Page Layout: Building Float-Based Layouts
下一篇: 【ES6】之 Arrow Function箭头函数
kiwi小白
博客等级 码龄14年 153粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值