“微服务” 跟云原生有什么关系?不用微服务,会出现什么问题? 微服务会不会出现过多的微服务无法管理的问题?

什么是微服务

微服务是目前特别火第一种技术,可以这么说,如今你稍微去一家还不错的公司,用的基本就是微服务,那么到底什么是微服务呢?

按照官方说法,微服务架构模式Microservices Architecture Pattern)的目的是将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,每个服务都可以很容易得局部改良。 Micro这个词意味着每个服务都应该足够小,但是,这里的小不能用代码量来比较,而应该是从业务逻辑上比较——符合SRP原则的才叫微服务。

但是在作者看来,所谓的微服务,不过是把一个完整的项目,分成不同的模块分别开发,每个模块都是一个服务,而所有服务加起来,就是所谓的微服务,是不是特别好理解?

什么是云原生?

“微服务” 是云原生的一个重要的组成部分,那么什么是云原生呢?云原生是基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系

当然这又是官方解释,但是作者根据工作经验,所谓的云原生,其实就是上线一个项目过程中所用到的所有技术,而微服务是云原生中的一部分。

举个例子,比如你想要上线一个网站,假设网站又10个服务,那么这10个服务就是微服务,而在上线的时候,需要考虑上线平台(比如阿里云和腾讯云)、在linux操作系统上部署、使用docker容器上线等等,这些加起来就是云原生。

不用微服务,会出现什么问题?

如果不使用微服务,短期来说不会出现什么问题,也就是当你的项目内容比较少,访问量不算多的时候,普通的服务器完全可以承受住代码运行所需要的容量和速度,但是一旦访问量增多,涉及到的内容增加,那么原来一台电脑可以承受的压力,现在必须得10台电脑才能承受住,可是你的代码此时只能在一台电脑上运行(没有优化为微服务),因为此时你的项目只有一个整体的服务在tomcat上运行。

这个时候,你可以将你的项目优化为微服务,把各个模块分开,然后分别在不同的服务器上运行,这样就可以缓解这种访问压力了。

 微服务会不会出现过多的微服务无法管理的问题?

当然会,随着项目不断增加,访问量不断增多,内容不断扩充,即使是不断增加微服务,也会造成冗余,因为微服务之间也是相互调用的,微服务越来越多的时候,相互调用也会增加,造成过多的微服务无法管理的问题,那么出现这种问题,可以使用一种新技术来管理微服务,也就是把每个服务的配置信息统一到一个地方去管理,根据作者之前的经验,阿里云推出了这种可以统一管理微服务配置信息等的技术,感兴趣的小伙伴可以去了解一下。

最后,这篇文章给大家帮助了吗?欢迎大家在下方评论支持!

你可能感兴趣的:(微服务,云原生,microservices)