微服务怎么实现?是前端还是后端的事?

乔212


题主好,很高兴能回答题主的问题。

说到微服务,现在可算是火的一塌糊涂,不管是大厂还是小厂,互联网公司还是传统软件行业,很多都在追逐为服务的热潮。不过,我认为微服务只是新瓶装老酒,其本质就是模块化,这点在问题描述中已经提到了。

那么接下来我们就来分析一下微服务到底是前端的事还是后台的事儿,微服务的具体实现是什么样子的?

模块化

前面我们提到了,微服务只是模块化的延伸。我们在传统的软件开发当中,如果涉及到模块化的话,通常是前端做前端的模块,后台做后台的模块。而在微服务的思想中,强调的是高内聚低耦合的设计思想,尽可能的使微服务可以达到独立开发、部署、运行、运维的目标。

由此可见,如果想实现真正的微服务的话,前端后台缺一不可。否则难以满足高内聚低耦合的设计目标。

实现

微服务其实是一种架构设计的思想,并不强调微服务的具体实现方式。只是微服务作为一种天然的分布式架构,又有如此高的设计要求,实现的复杂性自不必说。好在无论Java、Python还是其他的编程语言,都有好心人和大牛提供了相应的实现框架。

因此,题主完全可以不用担心,Python和vue是可以搞出微服务的。

建议

前文提到微服务是一种设计思想,在各种社区,也能找到各种编程语言对应的微服务实现框架,但是我非常不建议题主在做全栈项目时使用微服务这种设计思想,但是对于框架的学习,建议题主还是要尽可能的掌握。甚至未来参加工作了,依然是这个建议。也就是说不到万不得已的时候,不要触碰微服务!


特别行动科


1. 微服务其实我理解的就是功能专一化,方便升级扩展。微服务有个分而治之的思想。

2. vue和python进行整合,前后端分离可以通过http进行交互分离,vue通过http请求,python提供服务。这就是前后端分离的雏形。

3. 第三代微服务都是通过容器化的方式进行服务编排。互相的调用。


IT人故事会


微服务只是一个概念,是一种架构设计思想,并不是什么新技术。原理就是化整为零,把一个软件应用,拆分为一个个可独立运行的"微"服务,跟常规意义的插件、扩展之类类似,不同之处在于"微服务"是一个可独立运行的应用程序,一般采用容器化部署比如Docker之类。以下从优点、缺点以及适用场景三方面来拆解。

  1. 优点,有效解决单体软件随着时间的推移的维护灾难,可按需加载,最大程度释放系统资源。跟开发语言无关,采用容器化独立部署,无论使用什么开发语言都可无缝集成。可以细粒度拆分软件项目,完美的持续集成。

  2. 缺点,微服务是一个分布式系统,如果拆分粒度过细,容易形成连环故障。各模块之间需要维护数据的一致性,要规划好通信,对整个系统架构要求比较高。在测试层面来讲,相对单体软件,测试工作量有一定程度的增加。应用部署相对来说比较复杂一点。

  3. 适用场景,业务层面,应对多客户需求,通常每个客户总有一部分需求是不一样的。性能层面,应对高并发、高负载。

总之,软件互联网行业知识体系更新比较频繁,新概念、新技术层出不穷,我们探其本质,不要被表象所迷惑。机械科班出身的IT人共勉。



分享到:


相關文章: