什么是分布式架构?分布式系统是将一个大的系统打散成很多个小系统、小服务,再
由多个团队协作完成共同的目标。现在以微服务架构为代表的分布式系统大行其道,至于微
服务的好处我在这就不多赘述,比如:更小的管理粒度、独立的数据存储、统一的通信标准
等等,今天咱们就聊一聊以微服务为代表的分布式系统设计时有哪些坑吧!
在著名软件著作《人月神话》中提到,软件世界没有“银弹”,这句话当然适用于架构
领域,随这从单体架构过度到微服务架构,因为将原有系统打散,给系统增加了许多不稳定
因素。
单体架构想微服务架构转变
下面我从网络、性能、运维成本、组织架构与集成测试五个方面分别进行阐述。
第一点,以往单体应用是在单机中进行进程内通信,通信稳定性相当好。但是打散为分
布式系统后,变为进程间通信,往往这个过程还伴随着跨设备的网络访问,架构师在设计时
必须考虑上下游系统因为网络因素无法通信的情况,要假设网络是不可靠的,并设计微服务
在网络异常时也能进行符合预期的异常处理。以支付模块为例,用户支付成功后系统自动调
用短信服务向用户手机发送“订单支付成功”的消息,此时架构师就必须假设短信服务在服
务或者网络不可用时不会影响到订单业务的正常执行。
微服务进程间RESTful通信
第二点,相比传统单体架构进程内通信,跨进程、跨网络的微服务通信在网络传输与消
息序列化带来的延迟是不可被忽略的,尤其是在五个以上微服务间消息调用时,因为网络延
迟对于实时系统的影响是是很大的。早些年我和一个军事院校合作了一个雷达仿真训练的系
评论