课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
微服务开发是随着互联网的不断发展而被程序员掌握的一种开发方式,下面我们就一起来了解一下,程序员使用微服务与分布式系统的原因。
简而言之,微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTPAPI。
这些服务围绕业务能力来构建,并通过完全自动化部署机制来独立部署。这些服务使用不同的编程语言书写,以及不同数据存储技术,并保持低限度的集中式管理。
如果非要我用自己的语言来理解一下就是:将一个大型系统分为一个个的小型服务系统,共同支撑大型系统,每个小服务系统都可以独立开发/测试/迭代/部署/扩容。
其实微服务的概念不难理解,但真正动手起来做的话遇到的则一般不是微服务的问题而是分布式问题,有很多人经常把这两个概念搞混淆,认为他俩说的是一个东西,其实是两个东西,我们做出来的东西往往是涵盖了这两个概念。
微服务是指的一种面向服务的软件架构方式,而分布式则是一种为了某个共同目标而协调多台计算机节点进行工作的软件系统。
使用微服务和分布式系统的主要原因:
业务的增加我们通过业务拆分来解决其带来的问题,这可以算是微服务的范畴。
不同的服务部署在不同的机器上,但是对于用户来说却和访问一个系统没什么区别,依靠网络将多个计算机节点组成一个统一的整体,这可以算是分布式系统的范畴。
由于数据量的不断增加我们可以通过增加机器节点来分摊数据量,这算是分布式系统中分布式存储的范畴。比如我们的Redis数据一台机器已经存不下了,就要考虑使用RedisCluster将数据分散到多台机器上面,其他例如Kafaka、ES都是分布式架构的中间件都可以进行分布式存储。
如果应用中某些计算量比较大的任务使用一台机器执行会耗时过长,这时我们可以拆分任务给多台节点同时执行,这算是分布式系统中分布式计算的范畴。近我在接手项目的时候就遇到了类似的问题,原任务单机执行时间过久,让我改为所有在线节点同时执行,共同分摊任务,并且要能动态根据在线节点数量进行任务拆分。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。