标签:交流 i++ blog 服务发现 api 组织 block 复杂 公司
最近有朋友提出了问题:“是不是拥有了服务发现就是微服务了?”,对于这个问题,很难回答,毕竟微服务的定义在每个人心里都是不一样的,就像“互联网思维”一样,我们说得清“互联网”,却总也说不清楚什么是“互联网思维”(在这个思想开放的互联网时代,你我都是哈姆雷特,但是也是交流沟通便利性的时代)。今天总结这篇文章呢,来说说我对微服务的理解,以及再来探讨下微服务的定义。
其实回头看看我之前写的《微服务指南走北》系列的第一篇《微服务指南走北(一):微服务是什么》中描述的:微服务是基于Restful风格的,基于资源及资源操作一组API的集合,可以实现模块儿或者说是特定的业务范围内的一个完全独立、细粒度、自包含的一个服务。每个微服务提供一组API,供其他微服务或者应用客户端所用。
其中,包含如下几个要点:
1. 基于资源
2. 模块儿化或者业务独立
我认为微服务的“微”主要体现在业务的分离上,也许一个服务会占用较大内存,但是业务相对独立,每个服务负责相应的业务;就像我们常见的公司的组织架构一样,不同的部门来完成不同的任务,不同部门之间相互配合又相互独立。
我们先来回顾下之前我所总结的微服务的优点(摘自《微服务指南走北(一):微服务是什么》):
1. 可以解决复杂性的问题,在功能不变的情况下,分解为多个相互协作的微服务,通过rest API定义边界,这样极大易于开发、理解和维护。
微服务架构是的每个服务可以由专门的开发团队或者个人开发者进行开发,开发者可以自由选择技术,不必受制于规定的技术和框架,只要API服务协议好交互方式即可(如restful)。这样即使重新技术过时的微服务模块儿或者重写以前的代码,也不是很困难。
微服务架构模式使得每个微服务独立部署,且每个服务独立扩展,开发者不再需要协调其它服务部署对本服务的影响。微服务架构模式使得持续化部署成为可能。
这里我再补充几个优点:
4. 微服务可以结合docker相关服务,易于实现HA(比如kubernetes + docker + 微服务),使得可以服务不会受到单点故障的影响。
以下是我实际应用微服务架构需要保证的特点:
对于这个问题,到这里,我也无法做出定论,但是比较确定的是微服务是在特定情境下使用的架构思想,既然是思想,就如开篇所说的,大家都是哈姆雷特,我也只能对我自己的理解进行描述,无法对你心里的思想进行固化,不过如果你感觉比较模糊,可以借鉴我再实际应用中总结的微服务需要保证的特点(即上一章描述的)。
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(==防止爬虫==):http://blog.csdn.net/gsying1474
标签:交流 i++ blog 服务发现 api 组织 block 复杂 公司
原文地址:http://blog.csdn.net/gsying1474/article/details/70522250