作者:潘吉祥
写这篇文章完全是个人一时的灵感,是在学笔者习大量分布式问题解决方案之后,突然有种茅塞顿开的感觉,顺便和读者一同分享一下。
标题说的是“思想”,没错,这里不是在针对某个具体实现的技术手段,而是在于抽象一种“万剑归一”的处理思维,这能让我们在开发中更加顺畅地使用各类已经成熟的解决工具,或者为公司研发属于自己的工具提供思路方案,我们应当重视思路思维在工作中的重要性。
当然这样的思想不是一蹴而就的,按着循序渐进的规律,首先来看一下企业项目的历史演变过程:
这里说明一下个人对于分布式应用和微服务应用的看法:在我看来微服务应用的思想就是分布式的,我们可以说分布式应用和微服务应用都是分布式理念——拆分服务共同协作完成所有功能。
从应用具体组织层面来说,二者对于某类服务的组织处理不同:分布式应用是把原本工程的视图层和服务层以工程的形式分离;而微服务应用是把原本工程的服务进行分离,如图所示
由图可以看出分户式应用的服务之间有着较强的依赖,单个服务无法提供正常的业务。而微服务则是较弱的依赖,服务单独即可完成自己的核心业务。因此下文对于分布式应用和微服务我们此处统称分布式环境。
分布式是架构发展的必然趋势,它能够解决海量请求的问题,同时它也带来了更多传统架构没有的问题,同时让我们来看看这些问题的解决方案:
1大量分布式服务的管理与治理
2分布式事务问题
3分布式任务调度问题
4分布式session问题
5跨域问题
6分布式锁(全局唯一id)
7分布式的日志问题
通过分析分布式各种具体问题的解决方案,我们可以总结出在分布式领域出现的问题有一个首要的原则:第三方原则。
什么是第三方原则:在面对分布式环境中服务出现的各种问题,我们首先应该考虑在系统业务服务之外引入另外独立中间服务,并且中间服务并不直接参与到系统的业务之中。如果着力于改造原有服务本身,这只会将实现复杂化,并且在技术上难以实现。
注意:这里的第三方概念不是相对于公司和平台而言,而是相对于主业务系统而言的。
这个原则虽然看似简单,而且偏向于方法论,但是应当值得我们在分布式开中时刻注意,因为它是各种解决方案最本质的抽象,同时也是我们研发自己方案的准则,需要在实践中加深理解,这是相当有益的。
END
【推荐阅读】
-
-
感谢阅读,请扫码关注
明天见
转载:https://blog.csdn.net/woniu211111/article/details/105571194