分布式问题解决:第三方原则

作者:潘吉祥


写这篇文章完全是个人一时的灵感,是在学笔者习大量分布式问题解决方案之后,突然有种茅塞顿开的感觉,顺便和读者一同分享一下。

标题说的是“思想”,没错,这里不是在针对某个具体实现的技术手段,而是在于抽象一种“万剑归一”的处理思维,这能让我们在开发中更加顺畅地使用各类已经成熟的解决工具,或者为公司研发属于自己的工具提供思路方案,我们应当重视思路思维在工作中的重要性。

当然这样的思想不是一蹴而就的,按着循序渐进的规律,首先来看一下企业项目的历史演变过程:

这里说明一下个人对于分布式应用和微服务应用的看法:在我看来微服务应用的思想就是分布式的,我们可以说分布式应用和微服务应用都是分布式理念——拆分服务共同协作完成所有功能。

从应用具体组织层面来说,二者对于某类服务的组织处理不同:分布式应用是把原本工程的视图层和服务层以工程的形式分离;而微服务应用是把原本工程的服务进行分离,如图所示

由图可以看出分户式应用的服务之间有着较强的依赖,单个服务无法提供正常的业务。而微服务则是较弱的依赖,服务单独即可完成自己的核心业务。因此下文对于分布式应用和微服务我们此处统称分布式环境。

分布式是架构发展的必然趋势,它能够解决海量请求的问题,同时它也带来了更多传统架构没有的问题,同时让我们来看看这些问题的解决方案:

1大量分布式服务的管理与治理

2分布式事务问题

3分布式任务调度问题

4分布式session问题

5跨域问题

6分布式锁(全局唯一id)

7分布式的日志问题

通过分析分布式各种具体问题的解决方案,我们可以总结出在分布式领域出现的问题有一个首要的原则:第三方原则。

什么是第三方原则:在面对分布式环境中服务出现的各种问题,我们首先应该考虑在系统业务服务之外引入另外独立中间服务,并且中间服务并不直接参与到系统的业务之中。如果着力于改造原有服务本身,这只会将实现复杂化,并且在技术上难以实现。

注意:这里的第三方概念不是相对于公司和平台而言,而是相对于主业务系统而言的。

这个原则虽然看似简单,而且偏向于方法论,但是应当值得我们在分布式开中时刻注意,因为它是各种解决方案最本质的抽象,同时也是我们研发自己方案的准则,需要在实践中加深理解,这是相当有益的。

END

【推荐阅读

原创 | 全网最实在的docker入门教程一

原创 | 全网最实在的docker入门教程二

原创 | 全网最实在的docker入门教程三

原创 | 全网最实在的docker入门教程四

手撕zookeeper:作为注册中心负载均衡

填坑之旅:手撕分布式zookeeper锁

MySQL数据库插入100w条数据要花多久?

老大说:谁要再用double定义商品金额,就自己收拾东西走


感谢阅读,请扫码关注
明天见
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农code之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值