SpringCloud-初识微服务

一 什么是微服务

维基定义:一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。

自己理解:微服务通过字面的理解就是“小的服务”,也就是说,它是一个一个很小的部署在服务器上的单独应用,每个应用都有自己的模块职能,来共同作用一个系统的正常运行。

二  什么是微服务架构

1.微服务架构的定义

百度百科:微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。

自己理解:在一个系统中,将系统中的每一个功能单独拆封出来形成一个一个具有独立功能的应用程序,每一个应用程序负责专一功能,这些应用程序通过 “轻量级设备与HTTP型API进行沟通”,来共同作用于整个功能的实现。

下图是马丁福勒在微服务论文中的定义:

2015-05-10_212121

2.微服务架构优势和劣势

优势:

单一职责:每一个功能有一个自己独立的应用,每个应用负责自己的业务功能,符合“低耦合,高内聚”的开发原则。

便于开发和维护:每一个独立的应用只需要关心自己的开发逻辑即可,每一个功能自己既可以完成编码、测试、部署、运维。代码量和后期维护的成本大大降低。

代码技术隔离:微服务中的每一个应用程序都可以使用自己的技术栈,各个应用程序之间的技术互不干涉。

便于后期运维:后期版本升级或者运维时,只需要部署相应功能的应用程序,不需要将整个程序全部部署一遍。

劣势:

运维成本高:相对于传统一个项目的部署,微服务的多个项目部署大大增加了项目部署时的成本。

系统部署的依赖:具有关联的微服务没有完成会影响业务的实现

服务间的通信成本:一个应用的业务逻辑改变,涉及到相关程序的接口都需要调试一遍。

数据一致性:各个应用程序内的数据一致性也需要维护。

三 什么是分布式?分布式与微服务的比较

1.概念不同:

分布式是若干独立计算计的集合,整个系统由不同的计算机组成,系统由不同物理上分离的计算机组成,主要是分担压力。

微服务是分离功能,他与分布式的分离侧重点不同,分布式是分担整个系统的压力,便于程序正常的运行,微服务是将系统内的功能单独分开,便于开发和后期的维护

2.部署方式不同

微服务架构:微服务的应用可以部署在是同一个服务器,不一定是分散在多个服务器上。微服务架构是一项在云中部署应用和服务的新技术。微服务架构是一种架构模式,它将一个复杂的大型应用程序划分成多个微服务,这些小型服务都在各自独立的进程中运行。

分布式架构:分布式是将一个大的系统划分为多个业务模块,这些业务模块会分别部署到不同的机器上,通过接口进行数据交互。

三 微服务技术栈

这里主要讲一下springcloud中的技术栈 其中包括

SpringCloud Eureka: 这是 Spring Cloud Netflix 微服务套件中的一部分,主要负责完成微服务架构中的服务治理功能,包括服务注册中心、服务注册与服务发现机制的实现,同时实现负载均衡和中间层服务器的故障转移。

SpringCloud Ribbon: 提供客户端的负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。

SpringCloud OpenFeign: 声明式、模板化的服务调用组件。

SpringCloud Hystrix: 熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力

SpringCloud GateWay: API 网关是一个搭建在客户端和微服务之间的服务,我们可以在 API 网关中处理一些非业务功能的逻辑,例如权限验证、监控、缓存、请求路由等。

SpringCloud Config: 配置管理工具包,可以将配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。 

SpringCloud  Alibaba nacos:  服务注册中心和配置中心的组合体,它可以替换 Eureka 作为服务注册中心,实现服务的注册与发现;还可以替换 Spring Cloud Config 作为配置中心,实现配置的动态刷新。

SpringCloud  Alibaba sentinel: Sentinel 主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度帮助用户保护服务的稳定性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那清澈的漓江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值