微服务与SpringCloud

打算断断续续地学习完《SpringCloud微服务》这本书。对于概念模块采取总结的方式做记录。

其中微服务模块的学习,也阅读了微博技术专家胡忠想先生的专栏《从0开始学微服务》。

一、微服务背景

1.微服务简介

微服务是一种架构风格。将单体应用划分为小型的服务单元,微服务之间使用Http的API进行资源访问与操作。

好处:服务独立部署、低耦合,服务可快速启动,更适合敏捷开发,可动态按需扩容,代码复用(服务都提供REST API)。

坏处:分布式部署,调用更复杂(易产生网络问题、容错问题、调用关系问题等)

因为当下微服务比较热门,通常我们在工作中,会根据业务或工作的需求建立不同的项目服务,而多个服务之间的关系是相互调用的,但每个服务又都是独立的,拥有自己独立的功能而不会太过臃肿。

SpringCloud是实现微服务架构的一系列框架的有序集合。


2.传统微服务

服务之间的调用:

此前的解决方案:基于Dubbo构建的微服务架构(阿里巴巴开源)===》服务调用方不再需要关注服务提供方的地址,只要从注册中心获取服务提供方的地址即可。

新解决方案:SpringCloud

Dubbo:关注的更细,只针对服务治理;基于Netty的TCP及二进制的数据传输,高性能。

SpringCloud:高更新,关注整个服务架构;基于Http,创建连接会造成性能损耗。


3.一次服务调用过程参考:

首先服务提供者(就是提供服务的一方)按照一定格式的服务描述,向注册中心注册服务,声明自己能够提供哪些服务以及服务的地址是什么,完成服务发布。

接下来服务消费者(就是调用服务的一方)请求注册中心,查询所需要调用服务的地址,然后以约定的通信协议向服务提供者发起请求,得到请求结果后再按照约定的协议解析结果。

而且在服务的调用过程中,服务的请求耗时、调用量以及成功率等指标都会被记录下来用作监控,调用经过的链路信息会被记录下来,用于故障定位和问题追踪。在这期间,如果调用失败,可以通过重试等服务治理手段来保证成功率。

4.微服务架构基本组件:

微服务架构下,服务调用主要依赖下面几个基本组件:

服务描述——服务对外描述(常用的服务描述方式包括 RESTful API、XML 配置以及 IDL 文件三种)(RESTful API 方式通常用于 HTTP 协议的服务描述,并且常用 Wiki 或者Swagger来进行管理)

注册中心——服务提供者注册其服务与地址,服务调用者向注册中心查询服务,发起请求。

一般来讲,注册中心的工作流程是:

服务提供者在启动时,根据服务发布文件中配置的发布信息向注册中心注册自己的服务。

服务消费者在启动时,根据消费者配置文件中配置的服务信息向注册中心订阅自己所需要的服务。

注册中心返回服务提供者地址列表给服务消费者。

当服务提供者发生变化,比如有节点新增或者销毁,注册中心将变更通知给服务消费者。

服务框架

服务监控

服务追踪

服务治理



二、SpringCloud介绍

模块:

Eureka:服务注册中心,做服务管理

Ribbon:基于客户端的负载均衡组件

Hystrix:容错框架,能防止服务的雪崩效应

Fegin:Web服务客户端,能简化http接口的调用

Zuul:API网关,提供路由转发、请求过滤等功能。

Config:分布式配置管理

Sleuth:服务跟踪

Stream:构建消息驱动的微服务应用程序的框架

Bus:消息代理的集群消息总线


三. 实战

环境:JDK、maven、eclipse

SpringCloud基于Springboot搭建。


四.Eureka注册中心

Spring Cloud Eurek是Spring Cloud Netfix微服务套件中一部分,基于Netfix Eureka做了二次封装,主要负责实现微服务架构中的服务治理功能。

是基于REST的服务,并提供了基于JAVA的客户端组件,将服务注册到Spring Cloud Eureka中进行统一管理。

微服务架构重要的一部分——服务治理。

Dubbo框架针对服务治理,服务治理必须要有——注册中心。

注册中心可使用:Eureka、zookeeper、Consul、Etcd。

(注册中心的概念:类似于12306网站是注册中心,顾客是调用的客户端,顾客会去12306时查票、购票。而程序当需要调用某一服务是,会去Eureka中拉去服务列表,查看调用的服务是否在,有则拿到服务地址、端口等,进行调用)                                                                                                                                                                                                                          

此处还有一个Eureka和zk的比较。

分布式系统领域著名的CAP定理:(最多同时实现两个)

C:数据一致性;A:服务可用性;P:服务对网络分区故障的容错性。

Eureka:基于AP原则;

ZK:基于CP原则。

Dubbo大部分基于zk,Springcloud基于Eureka。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,188评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,464评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,562评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,893评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,917评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,708评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,430评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,342评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,801评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,976评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,115评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,804评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,458评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,008评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,135评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,365评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,055评论 2 355