文档章节

微服务学习记录 (-)

e
 eileenzhu
发布于 2016/06/23 15:19
字数 1069
阅读 56
收藏 2

前言

加入量化派以前。对于“微服务”这个概念,我仅仅是依稀听人提起过。觉得它还只是一个前卫的名字,仅仅存在在实验室里或者一些理论的书本里,并没有做进一步的了解。

加入量化派的第一周,我便被它的服务架构惊到了--两三条并不算庞大的业务线竟有20多个服务组成。各个服务新版本发布之频繁,但是每次发布的风险之小都让我感到惊讶。这使我急切的渴望去深入了解“微服务”这个概念。

其实,作为一名测试工程师去谈“微服务”实在是班门弄斧,搞不好就贻笑大方了。但是,我还是希望把自己的理解和学习过程做一个梳理,在批评中成长终究也是成长。

什么是微服务

微服务的英文是“Microservices”。知道它的英文名称以后,你的第一反应是啥?我反正就是翻墙,找“谷哥“ ,然后开心的前往维基百科 https://en.wikipedia.org/wiki/Microservices

以下这三段话话来自维基百科

中文版本

微服务 (Microservices) 是一种软件架构风格 (Software Architecture Style),它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模组化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic) 的 API 集相互通讯。

。。。

2014年,Martin Fowler 与 James Lewis 共同提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时服务会使用最小的规模的集中管理 (例如 Docker) 能力,服务可以用不同的编程语言与数据库等元件实作。

 

English Version

Microservices are a more concrete and modern interpretation of service-oriented architectures (SOA) used to build distributed software systems. Like in SOA, services in a microservice architecture are processes that communicate with each other over the network in order to fulfill a goal. Also, like in SOA, these services use technology agnostic protocols.[1] Microservices architectural style is a first realisation of SOA that has happened after the introduction ofDevOps and this is becoming the standard for building continuously deployed systems.[2]

。。。

呃。。

其实我发现维基百科的中英文说法上不太一样的,但是中心思想是一致的。只是看英文的时候,更容易捕捉到一个概念SOA(Service-Oriented Architecture, 面向服务的架构)。

既然说微服务是SOA一个更加具体的现代解读,那就是子类与父类的关系了。

微服务是子类,它继承了SOA这个父类的特点

  • 都是架构中
  • 架构中包含多个服务(service+s)
  • 服务之间相互通信来完成目标(或者说实现功能)
  • 各个服务之间使用技术或者语言无关的API进行通讯(举例:服务A你可以用python写,服务B你可以用Java写,A和B的通信可以用http协议)

当然了,作为子类,他还有自己的特点

一个“微”背后其实包含了,怎样去划分服务。那些在人生旅途中遇到的大大小小的服务,怎样才能优雅的拆分成“微”这样一个力度,还满足所谓的高内聚低耦合。

在我看来,拆分和归类是非常高深的学问。我常常就会在各种分类的过程中纠结挣扎,包括case怎么划分,衣服怎么归类:总有那么一些衣服你可以夏天穿秋天穿啊,还有一些秋天穿啊冬天穿啊,甚至夏天穿啊冬天穿啊。我非常佩服那些思路清晰,条理分明,高瞻远瞩的分类达人。

整理起来比我想象的要花时间,接下来再找时间要继续整理 为什么“微服务” 和 怎么实施“微服务”,可能包括

  1. 服务与服务之间怎么通讯
  2. 服务怎么划分
  3. 微服务的持续集成
  4. 微服务的测试

© 著作权归作者所有

e
粉丝 0
博文 2
码字总数 2030
作品 0
昌平
私信 提问
加载中

评论(1)

Ajian
Ajian
2更呢?
微服务模块划分及依赖调用问题

在使用微服务框架的时候通常是把各个大的功能做成独立的模块,比如一个学习+考试的系统,在设计的时候分成了用户服务、学习服务、考试服务,但是在学习服务或者考试服务中有需要查询学习记录...

记忆的美好
2017/01/08
2.6K
1
「微服务系列 01」什么是微服务,微服务的思考和认知

近期看了杨波老师讲的《微服务》课程,深有感触,准备做下记录和学习笔记,希望能寻找到更多的一些方法论和思想进行微服务架构上的指引。 谈到微服务,有必要谈到两个人,这两个人对微服务架...

码魇
07/26
0
0
微服务架构有毒,何时不使用微服务?

在过去的四年中,使用微服务来构建应用程序似乎成了一种标准。大多数我所合作过的团队也对此表现出了不同程度的兴趣。 微服务所承诺的弹性、高可用、低耦合、敏捷,以及能够解决单体架构带来...

架构师springboot
01/21
91
0
Spring Cloud 学习资料收集

导读 关于Spring Cloud 去年开始逐渐多的出现在我的视线中,随着微服务这个词越来越热,我们或多或少的都听说过这个词,我们可以将Spring Cloud 看做是java 中Spring 为我们提供的微服务的脚...

yangrd
2017/06/27
0
0
微服务在实际生产中的 5 个挑战

在实现企业敏捷性与微服务 API 管理上,学习如何进行 API 管理可以支持更好的集成,与 3scale 一起给你带来更好的合作。 微服务的阴暗面 在这些日子里,好像每个人都进入了微服务,与此同时,...

oschina
2016/08/05
5.4K
9

没有更多内容

加载失败,请刷新页面

加载更多

为什么要在网站中应用CDN加速?

1. 网页加载速度更快 在网站中使用CDN技术最直接的一个好处就是它可以加快网页的加载速度。首先,CDN加速的内容分发是基于服务器缓存的,由于CDN中缓存了不少数据,它能够给用户提供更快的页...

云漫网络Ruan
39分钟前
7
0
亚玛芬体育(Amer Sports)和信必优正式启动合作开发Movesense创新

亚玛芬体育和信必优正式启动合作开发Movesense创新,作为亚玛芬体育的完美技术搭档,信必优利用Movesense传感器技术为第三方开发移动应用和服务。 Movesense基于传感器技术和开放的API,测量...

symbiochina88
50分钟前
4
0
创龙TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA核心板规格书

SOM-TL437xF是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA芯片设计的核心板,采用沉金无铅工艺的10层板设计,适用于高速数据采集和处理系统、汽车导航、工业自动化等领...

Tronlong创龙
51分钟前
4
0
好程序员Java学习路线分享MyBatis之线程优化

  好程序员Java学习路线分享MyBatis之线程优化,我们的项目存在大量用户同时访问的情况,那么就会出现大量线程并发访问数据库,这样会带来线程同步问题,本章我们将讨论MyBatis的线程同步问...

好程序员官方
57分钟前
6
0
IDEA 自定义方法注解模板

IDEA 自定义方法注解模板 1、使用效果 /*** 计算交易费用* @Author wangjiafang* @Date 2019/9/11* @param feeComputeVo* @return*/@PostMapping("/v1/fee_compute")public ApiResp......

小白的成长
57分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部