Golang分布式设计模式之-----分层设计

本文探讨了在Golang中如何运用分层设计模式构建分布式系统,通过一个http流分析系统的例子,详细阐述了如何根据功能划分层次、定义接口以及组装各个模块,以降低耦合性和简化测试维护。
摘要由CSDN通过智能技术生成

            提到分布式系统,我们会想到很多机器,分别部署着各自的服务,然后整体组成一个分布式系统。在这类系统中,分布式系统与常规的集中式系统存在着以下三个区别。(来自分布式算法导论)

1、缺乏全局状态知识

2、缺乏全局时间帧

3、非确定性

         这三大特点也成为分布式系统设计的难点。也正是如此,分布式系统的设计比常规的集中式系统要难的多。为了区别,我们称这种分布式系统为,群体分布式。这种犹如社会群体。

        

         golang语言天生具有分布式的特点,其主要是基于协程与chan的概念。如果对golang不了解的人可以简单的去看看golang语言。

 

         有了golang语言,我们的可执行程序,也可以设计成分布式。一个可执行程序设计成分布式,这种分布式我们成为单体分布式。这种犹如,个体,存在着很多的部件。

 

         其与群体分布式的区别在于:

1、由于在同一个可执行程序中,全局状态知识,是可以存在的。

2、由于在同一个可执行程序中,全局时间帧,也是可以存在的。

3、也存在着非确定性

 

         其实我们就经常与分布式打交道,其中最经典的有:tcp协议(点对点的通信),路由协议(包的传递过程)。这都是典型的分布式算法。

 

         那么OSI7层模型与tcp/ip模型都属于分层的设计模式。现在我们将此设计经验。借鉴到golang语言的开发过程中。

 

         下面我们以一个http流分析系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值