耦合,松耦合,紧耦合

什么是耦合?

模块间的依赖性就是耦合,两个功能函数之间的依赖程度

如五个人共同开发一个模块,应该尽量松耦合,就是联系越小越好,这样一个模块变动,另一个模块就不会变动

 

松耦合的方法,一般是底层函数,功能尽量单一,尽量避免修改底层函数,功能相近的函数,可以设计两个以上,不要为了减少代码量,把一个函数的功能设计太多

 

松耦合系统通常是基于消息的系统,此时客户端和远程服务并不知道对方是如何实现的。客户端和服务之间的通讯由消息的架构支配,只要消息符合协商的架构,则客户端或服务的实现就可以根据需要进行更改,而不必担心会破坏对方

 

松耦合通讯机制提供了紧耦合机制所没有的许多优点,并且他们有助于降低客户端和远程服务之间的依赖性。但是,紧耦合性通常可以提供性能的好处,便于在客户端和服务之间进行更为紧密的集成(这在存在安全性和事务处理要求时,可能是必须的)

 

紧耦合架构本质是一个client/server模型,客户机发起请求给服务器,服务器收到,根据请求做出回答,然后反馈给客户机。这种架构最典型的应用就是我们

每天都用到的web服务。优点嘛,就是简单。架构简单、设计简单、开发周期短、能够快速投入 部署和应用。在Laxcus集群的早期运行中,这些特点都得到有力的验证。

紧耦合架构

但是到了后期,随着laxcus集群规模的不断扩大,访问量的不断增加,尤其是数据计算量、计算时间成倍数的增长后,紧耦合架构渐渐不堪重负,缺点开始不断暴露出来

1、无法支持大规模的计算业务,因为大数据业务对计算机资源占比普遍很大,导致多任务并行能力有限,举个例子,我们曾在一台Pentium IV 2.G+2G的机器上测试一项小规模的数据处理业务,当并行任务量达到100多个的时候,计算机已经发生超载现象

2、计算机载荷无法控制,换句话说,就是计算机不能控制超载现象,而超载对硬件伤害非常大,这会严重降低计算机稳定运行能力和使用寿命

3、任务执行中管理难度大,任务在执行过程中不受管控

4、对网络资源消耗大,同步操作在数据发送和数据返回之间,有很大一段是空闲的,这种空闲占用是对网络资源的极大浪费

5、安全控制力度差,因为服务器直接暴露给客户机,容易引发网络攻击行为

6、程序代码之间关联度过高,不利于模块化处理

7、以上现象最终导致系统稳定性变差

这些问题出现后,我们开始考虑修改系统设计,经过多番考量、比较、权衡之后,我们决定改用松耦合架构重新规划系统设计。新框架是在原来client/server模型之上的改进,即在client/server模型之间加入一个代理,把CS模型变成CAS模型,在新的架构下,客户机的角色不变,代理服务器承担起与客户机的通信,和对客户机的识别判断工作,服务器位于代理服务器后面,对客户机来说不可见,它只负责数据处理工作,另外我们也把CS模型的同步操作改为CAS的代理处理

在设计新架构的同时,我们还发现,如果要适应松耦合架构,原来在紧耦合架构下运行的程序代码,因为现在的工作方式发生了变化,它们几乎都要重写,这是一个庞大的工程,需要消耗大量的人力,时间去修改和调试。所以我们在松耦合架构之上,结合代理服务器,又设计了一套invoke/produce机制,这是另一种代理方案,是针对数据处理进行抽象化处理。原来的数据处理和业务逻辑套用这套机制后,程序代码几乎不用修改,转移到CAS模型上运行就可以了

松耦合架构

新架构设计和代码修改完成后,我们在原来的集群上,和紧耦合架构做了各种对比测试。结果表现是出其的好,不仅解决了紧耦合架构上存在的所有问题,而且其中很多技术指标还超出了我们的预估,主要表现以下一些方面

1、多任务并行处理能力获得极大提升。同样是上述那个数据处理,紧耦合架构只能支持最大约100多个并行,而转到松耦合架构上,达到了8700多个,这还只是在Pentium IV 2.0芯片上的表现,放到Core 2平台,并行处理任务很轻松地超过10000个

2、实现负载自适应机制(根据当时运行环境,松耦合架构分配并行工作任务,避免超载现象)

3、实现了运行任务的随机控制(松耦合架构对运行中的工作任务进行随机调整和控制,进一步避免了持续超载现象)

4、基本杜绝了网络攻击行为,由于代理服务器的隔绝和筛查作用, 同时结合其它安全管理手段,外部攻击在代理服务器处就被识别和过滤掉了,这样就保护了后面的服务器不受影响

5、Invoke/Produce机制改善了程序结构的模块化,有利于实现复杂的数据业务处理

6、异步操作减少了网络资源消耗和操作关联

7、综合以上措施,他们共同增强了系统稳定性

 

最后用一张表对两种架构做个对比,作为两种架构性能特点的总结

 

紧耦合架构

松耦合架构

工作方式

同步

异步

程序关联依赖

业务逻辑关系

集中控制

分散控制

设计难度

容易

比较复杂

响应能力

和并行工作量成反比

时效表现

实时

无要求

业务适用范围

简单计算

复杂计算

安全

应用领域

小规模并行处理环境

大规模、超大规模并行处理环境

系统稳定性

 

转载于:https://www.cnblogs.com/z-x-y/p/9230856.html

### 回答1: 松耦合耦合是指在实施matlab仿真时各个子系统之间的联系程度不同。 松耦合是指子系统之间的联系较为独立,各个子系统之间的影响相对较小。在matlab仿真中,松耦合意味着每个子系统的输入和输出相对独立,可以通过简单的接口进行连接和通信。这种松耦合的仿真设置可以提高系统的灵活性和可扩展性,便于对子系统进行单独调试和测试,能够提高系统的稳定性和可靠性。 耦合是指子系统之间的联系较为密,各个子系统之间的影响较大。在matlab仿真中,耦合需要各个子系统之间密切协作,共享大量的数据和信息,需要进行复杂的数据传递和共享。这种耦合的仿真设置可以更真实地模拟系统的整体行为,能够更准确地反映子系统之间的相互影响,但同时也增加了系统设计和调试的复杂性。 在实际的matlab仿真中,应根据具体系统的需求和设计目标选择适当的耦合方式。对于简单的系统或需要单独调试的子系统,可以选择松耦合的方式进行仿真。而对于复杂的系统或需要考虑子系统之间相互影响的情况,应选择耦合的方式进行仿真。根据需要进行耦合的程度折中,可以在matlab仿真中实现准确的系统模拟和测试。 ### 回答2: 松耦合耦合是指在进行MATLAB仿真时,不同的模块或部件之间的耦合程度。 在松耦合的情况下,各个模块之间的关联程度较低,彼此之间的影响较小。可以通过接口、参数传递或者独立的运行来实现模块之间的交互。这种耦合方式具有很高的灵活性和可扩展性,可以方便地对模块进行独立修改和测试。此外,在进行大型系统的仿真时,可以通过将整个系统拆分成多个子系统,每个子系统独立地进行仿真,最后再进行整合。这样可以有效地减少复杂性,提高仿真的效率。 相反,在耦合的情况下,各个模块之间的关联程度较高,彼此之间的影响较大。各个模块之间的输入输出关系较为复杂,需要通过共享数据、全局变量等方式进行信息传递。虽然这种耦合方式能够更精确地模拟实际系统,但耦合程度较高也增加了系统的复杂性、耦合强度和维护难度。 根据具体的仿真需求和系统设计,选择合适的耦合方式是很重要的。当需求较为简单,模块之间的关联程度较低时,可以选择松耦合的方式来进行MATLAB仿真。相反,当需求较为复杂,模块之间的关联程度较高,需要更精确地模拟系统行为时,可以选择耦合的方式。 总的来说,松耦合耦合是在进行MATLAB仿真时,用来描述模块之间关联程度的术语。选择合适的耦合方式可以提高仿真的效率和准确性,使得仿真结果更符合实际情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值