读过此文,你会成为微服务架构系统MicroServices的明白人 - Go语言中文社区

读过此文,你会成为微服务架构系统MicroServices的明白人


读过此文,你会成为微服务架构系统MicroServices的明白人

大家好,这一期我们专门来谈一下微服务架构系统MicroServices。

毋庸置疑,随着云服务技术的不断发展,微服务架构系统在当前的软件开发环境中,变得越来越热门了。

【提纲】

首先我们来看一下什么是微服务。

为什么要用微服务?

如何来用微服务?

【什么是微服务】

你如果问10个程序员什么是微服务的话,你可能会得到20个不同的答案。

微服务架构中的服务,首先是一个服务,这些小的服务都可以独立运行,合在一起能够构成一个大的服务程序。

微服务是实现的方式,整体呈现出来的就是一个大的服务程序。举个例子,这个大的服务可包含登录验证,用户管理,产品管理,订单管理,商店管理等等。上面每一块都是一个微服务。

这些个微服务合在一起,构成一个大的商品管理订购系统服务。

我们作为用户来说,能看到的是一个整体的网站服务, 

比如说我们下订单了,订单管理部分可能就是一个独立运行的服务,可安装在一个独立的服务器上。

与此同时,每个用户可能会有一个收藏列表,这部分收藏列表管理系统也可以作为一个单独的微服务。

然后,下单付款服务可以作为一个单独的服务运行。

以此类推。

这些微服务可以装在同一台服务器上,也可以装在不同的服务器上。

这些微服务对于用户使用者来说是不可见的,我们能看到的是整体的一个网站应用程序,这些为服务配合的天衣无缝,给我们提供我们想要的功能,在这些功能的背后, 是很多微服务之间进行协同的工作。

正式通过这些微服务的协同工作,整个程序能够给我们提供完整的功能。

那么,这些服务之间是如何通信的呢?它们是通过HTTP协议和Rest API来进行交互通信的。

使用这种信息通信的方式,主要是保证请求之间没有状态依赖。

作为各自的服务来说,这个服务只需要管理好自己的功能空间就可以了。

每个微服务可以用不同的技术来开发,但是接口应该是统一的Rest API。

【为什么使用微服务呢?】

使用微服务有这么几个好处。

在你对某一个微服务进行更新的时候,你不需要动其他的微服务,也就不需要动整个服务系统。

如果你的系统非常之庞大,做一次更新可能要需要很长的时间,从编译到安装是一个非常痛苦的过程,如果用微服务的话,你只需要更新那一小块儿服务就可以了。

接口方面,因为要求API是无状态的请求接口,这样子可以允许不同的微服务使用不同的技术来开发。

比如你可以用任何你想用的技术Java Spring Boot, PHP, Ruby On Rails, Asp.Net Core, nodejs, python, Go等各种后台开发技术。

【如何才能开发出好的微服务系统呢?】

首先是功能定义要清楚简单,一个微服务只专注于一个功能方向。比如说用户注册管理就是单独这一块儿,不用再加别的功能了。订单管理就是管理订单的服务,也不需要再添加别的东西在这个服务里面了。

每个微服务需要有自己的数据存储空间,可以是一个数据库,也可以是一个表或多个表。

每个服务对自己的数据模型进行定义,修改的时候不会影响到其他的服务。当然接口数据模型除外,因为接口是需要与其他服务进行交互的,这个一定要共同协商进行才可以。

微服务之间的通信必须是无状态的。无状态的请求服务,可以允许我们不断的添加微服务。

一个微服务的中断,不会影响到整体服务的运行。要做到这一点,就需要始终有一个缺省服务提供数据。开始肯定要请求最新的数据,如果最新数据的那个微服务断掉了,那就去找缺省的微服去索取数据。

创建为服务系统需要各方面人员的合作,程序员,数据库管理员,架构师等等缺一不可,只有协同合作才能够创建出比较完善好用的微服务架构系统来。

好了,这期就先说这些,这里是丁哥开讲,欢迎关注防止失联。

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

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢