公交车上想到的设计模式

xiaoxiao2021-03-01  55

       某日公交车上,突然根据乘客,公交车,线路,联想到了一设计模式,主要应用于分布式系统。我命名为Bus模式。

 

       先简述下公交车的原理:

         1. 某一路车总是以固定的线路两地来回奔波,并在固定的车站停靠; 逻辑上看,是个圆形循环。

         2. 车每到一站,则下一站就明确了.

         3. 每个乘客自己明确知道哪站是自己的目的地。

 

       故对应于系统可以做如下考虑,

            公交线路:分布式系统中贯穿所有子系统的数据传送流;由所有子系统串连而成。

            车站:每个子系统对应一个车站;每个车站必须指定它的下一站。

            乘客: 每个子系统要做的某个事务。每个事务必须明确表明他的类型,就是明确该事务的目标车站,当然它也必须要妇上相应的数据。

            公交车:虚拟N个公交车,当某辆公交车到达该子系统时,把该子系统需要其他系统处理的事务放到公交车上。(所有乘客当车来时,上车)

 

           当一辆公交车到站时,所有想到该站的乘客下车(如果该车站容量有限,到该站的剩余乘客继续留在车上,等下个"类似"站点再下----系统集群. 如果某个事务最后没下车又回到起点站,可能是系统过载,异常处理。)。然后该车站开始处理完事务.并随时等下辆车来,放处理完的事务放到车上(也许送回该事务原先上车的地方,也许把它送到其他车站去处理)。

 

            该模式优点:

                 1.良好的扩展性,按标准往公交线路中增加子系统就可以。

                 2.很好的支持系统集群,负载分流,同样功能的子系统可以都增加到线路中。这点当然与实际公交系统不符。              缺点:

                 1.公交线路的脆弱性,由于线路由各个相邻站点两两相连形成,故任两个站点出现断路,直接导致线路瘫痪. (应该可以加以改进,如每个站点设几个备选的下一站...)

                 2.不适用实时性要求较高的系统。

 

       以上是个人的一点想法,虽然理论上是可行的,但目前并未实现,且相应细节也未深入。

转载请注明原文地址: https://www.6miu.com/read-3650000.html

最新回复(0)