当前位置:秒懂百科馆 >

生活常识

> 微服务架构有哪些框架

微服务架构有哪些框架

微服务框架可以分为侵入式和非侵入式两种,可以以微服务框架Spring Cloud来进行说明,在微服务框架中使用Eruka Server作为服务注册中心,在微服务单元上配置使用Eureka Client向注册中心进行注册,这样就会带来一个问题,在旧代码或者非JAVA代码(比如Python)中使用Spring Cloud微服务框架,这样就需要对旧代码及非JAVA代码进行微服务化的改造。。

微服务并没有一个官方的定义,可以理解为一种架构风格,将一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

以往的应用程序开发中,应用程序都是单体型,在开发和部署上比较方便,但是随着业务的不断增加,开发迭代和性能瓶颈等问题都会增加开发难度。微服务正是为解决这一设计问题而应运而生,微服务在将复杂系统切分为数十乃至上百个小服务的同时,这些小服务带来了语言和框架选择上的灵活性,缩短应用开发上线时间,可根据不同的工作负载和资源要求对服务进行独立缩扩容等优势。

微服务被拆分为多个微服务进程后,进程内的方法调用变成了进程间的远程调用,这种变化会带来分布式系统的一系列问题,比如:

服务的注册与发现

身份验证与授权

服务的伸缩控制

反向代理与负载均衡

路由控制

流量切换

日志管理

性能度量、监控与调优

分布式跟踪

过载保护

服务降级

服务部署与版本升级策略支持

错误处理

从上述微服务存在的技术点可以得到微服务基础架构的如下关键点:

微服务架构有哪些框架

微服务框架可以分为侵入式和非侵入式两种,什么是侵入式和非侵入式呢?可以以微服务框架Spring Cloud来进行说明,在微服务框架中使用Eruka Server作为服务注册中心,在微服务单元上配置使用Eureka Client向注册中心进行注册,这样就会带来一个问题,在旧代码或者非JAVA代码(比如Python)中使用Spring Cloud微服务框架,这样就需要对旧代码及非JAVA代码进行微服务化的改造。Spring Cloud是侵入式的微服务框架,侵入式微服务架构还存在Dubbo框架。

什么是非侵入式的微服务框架呢,还是以微服务框架中微服务的注册来进行说明,比如将服务注册和服务调用从现有服务中抽离出来,形成一个服务代理。该服务代理也叫做Sidecar,负责找到目的服务并负责通讯的可靠性和安全等问题。当服务大量部署时,随着服务部署的Sidecar代理之间的链接形成了一个如下图所示的网格,该网格成为微服务的通讯基础设施层,承载微服务之间的所有流量,被称为Service Mesh(服务网格)。非侵入式的微服务框架的比较有代表性的方案有Istio和Conduit。

下面对这几种方案进行一个简单初步的介绍。

Spring Cloud作为一个微服务的开发框架,包括了很多的组件,其中包括Spring Cloud Netflix(Eureka、Hystrix、Zuul、Archaius)、Spring Cloud Config、Spring Cloud Bus、Spring Cloud Cluster、Spring Cloud Consul、Spring Cloud Security、Spring Cloud Sleuth、Spring Cloud Data Flow、Spring Cloud Stream、Spring Cloud Task、Spring Cloud Zookeeper、Spring Cloud Connectors、Spring Cloud Starters、Spring Cloud CLI等。

另外Spring Boot为Spring Cloud提供一个简化基于Spring的开发环境,可以适应Spring Boot快速开发单个微服务。

Dubbo是一个阿里巴巴开源出来的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含:

远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。

集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。

自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

一个关于Spring Cloud和Dubbo很有意思的比喻,使用Dubbo构建的微服务架构就像组装电脑,各个环节的可选自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,但是如果是一个高手,这一切都不存在问题。Spring Cloud就像品牌机,在Spring Source的整合下,做了大量兼容性的测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外配件时,需要对配件足够的了解。

标签: 架构 框架 服务
  • 文章版权属于文章作者所有,转载请注明 https://mdbkg.com/sheng/8e785.html