微服务架构学习 之 什么是微服务 - Go语言中文社区

微服务架构学习 之 什么是微服务


      很长一段时间了,迷恋于Spring技术应用,执迷和执着促使我坚持不懈地带领着公司研发团队,在这条技术道路上摸爬滚打着前行,即使我心中明白,我们是一个非纯粹的IT企业,但IT新颖技术的诱惑,让我们不断紧跟潮流,永不放弃!某个时间,在Spring.io网站上,看到了这个图标:

SPRING CLOUD

      于是乎,我知道了Spring Cloud,知道了微服务这个术语。微服务的定义是什么?字面上理解,微服务是相对服务而言的,是比传统的服务要小很多的服务。简言之,微服务就是小型服务。在学习之前,这是我对微服务的第一直观理解。

      个人观点,每一种新技术出现,都会大肆宣扬自己的特点,通过进一步的学习,我也对微服务的特点进行了总结,大致有如下几点:

      (1)我们知道,传统服务是围绕业务构建应用,而微服务则是将整个应用进行分解,分解成若干个微服务协同工作,实现等同于传统服务的业务应用。这是微服务的特点之一,即一系列独立运行的微服务共同构建起整个业务系统应用。

      (2)从特点一我们知道,每个微服务在独立进程中运行。进程的概念就不多说了,形象地描述,传统服务构建的应用是单个进程运行的,而微服务构建的应用则是多个独立的进程运行。这是我理解的微服务应用的第二个特点。

      (3)特点一、特点二让人很容易理解,但难免会有这样的疑问:这么多微服务一起工作,怎么管理呢?微服务之间如何通信呢?如何部署呢?权威的一些资料给出了答案。即微服务共用一个最小型的集中式的管理,服务之间的通信采用轻量级通信机制(RESTFul、MQ等),采用全自动部署机制独立部署。我权且认为这是微服务的特点之三、特点之四、特点之五。但新的疑问又接踵而来,集中式管理的机制是什么?管理些什么?何时服务之间发生通信?全自动部署怎么实现的?对于初学的小白而言,只能放到后续研究了。

      (4)特点六,简单的说,一个微服务只实现某个特定的业务功能。直接面临的疑惑是:如何合理划分业务,以实现高效、复用且不冗余的微服务呢?

      (5)第七个特点,对于开发人员来说,是一件痛并快乐的事情。竟然可以:可用不同的语言开发,使用不同的数据存储技术。其实,从微服务的以上特点而言,使用不同语言和不同存储技术显然是没有问题的。为什么说对开发人员而言,痛并快乐着呢?那些懒家伙们说:不同语言、不同存储技术啊,怎么学得会呢?那些技术狂人说:太好了,终于可以学习不同语言、不同存储技术了。我的理解是,技术不受限制了,可以结合业务和团队特点,合理选择、因地制宜。

      学无止境、学海无涯。

版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/2f97d174d1de
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-01-12 10:36:20
  • 阅读 ( 992 )
  • 分类:架构

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢