微服务框架的介绍 |
您所在的位置:网站首页 › 服务框架是什么意思啊 › 微服务框架的介绍 |
一、什么是微服务
微服务并没有一个官方的定义,可以理解为一种架构风格,将一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 以往的应用程序开发中,应用程序都是单体型,在开发和部署上比较方便,但是随着业务的不断增加,开发迭代和性能瓶颈等问题都会增加开发难度。微服务正是为解决这一设计问题而应运而生,微服务在将复杂系统切分为数十乃至上百个小服务的同时,这些小服务带来了语言和框架选择上的灵活性,缩短应用开发上线时间,可根据不同的工作负载和资源要求对服务进行独立缩扩容等优势。 二、微服务框架的技术点微服务被拆分为多个微服务进程后,进程内的方法调用变成了进程间的远程调用,这种变化会带来分布式系统的一系列问题,比如: 服务的注册与发现身份验证与授权服务的伸缩控制反向代理与负载均衡路由控制流量切换日志管理性能度量、监控与调优分布式跟踪过载保护服务降级服务部署与版本升级策略支持错误处理从上述微服务存在的技术点可以得到微服务基础架构的如下关键点: 微服务框架可以分为侵入式和非侵入式两种,什么是侵入式和非侵入式呢?可以以微服务框架Spring Cloud来进行说明,在微服务框架中使用Eruka Server作为服务注册中心,在微服务单元上配置使用Eureka Client向注册中心进行注册,这样就会带来一个问题,在旧代码或者非JAVA代码(比如Python)中使用Spring Cloud微服务框架,这样就需要对旧代码及非JAVA代码进行微服务化的改造。Spring Cloud是侵入式的微服务框架,侵入式微服务架构还存在Dubbo框架。 什么是非侵入式的微服务框架呢,还是以微服务框架中微服务的注册来进行说明,比如将服务注册和服务调用从现有服务中抽离出来,形成一个服务代理。该服务代理也叫做Sidecar,负责找到目的服务并负责通讯的可靠性和安全等问题。当服务大量部署时,随着服务部署的Sidecar代理之间的链接形成了一个如下图所示的网格,该网格成为微服务的通讯基础设施层,承载微服务之间的所有流量,被称为Service Mesh(服务网格)。非侵入式的微服务框架的比较有代表性的方案有Istio和Conduit。 Spring Cloud VS Dubbo 一个关于Spring Cloud和Dubbo很有意思的比喻,使用Dubbo构建的微服务架构就像组装电脑,各个环节的可选自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,但是如果是一个高手,这一切都不存在问题。Spring Cloud就像品牌机,在Spring Source的整合下,做了大量兼容性的测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外配件时,需要对配件足够的了解。 Istio Istio是一个用来连接、管理和保护微服务的开放平台。Istio提供一种简单的方式来建立已部署服务网络,具备负载均衡、服务间认证、监控等功能,而不需要改动任何服务代码。想要为服务增加Istio的支持,只需要在环境中部署一个特殊的边车(sidecar),使用Istio控制面板功能配置和管理代理,拦截微服务之间的所有网络通信。 Istio目前仅支持在Kubernetes上的服务部署,但未来版本中将支持其他环境。 Conduit Conduit是为Kubernetes设计的一个超轻型服务网格服务,它可透明地管理在Kubernetes上运行的服务的运行时通信,使得它们更安全可靠。Conduit提供了可见性、可靠性和安全性的功能,而无需更改代码。 Conduit service mesh也是由数据面板和控制面板组成。数据面板承载应用实际的网络流量。控制面板驱动数据面板,并对外提供北向接口。 参考博客1.Java 微服务框架选型(Dubbo 和 Spring Cloud?) 2.谈谈微服务架构中的基础设施:Service Mesh与Istio 3.使用Istio治理微服务入门 4.微服务架构技术栈选型手册 5.以服务网格(Service Mesh)方式整合现有服务到微服务(基于SpringCloud)架构中 6.微服务并非Spring Cloud独角戏,Service Mesh未来大有可为 7.微服务等于Spring Cloud?一文告诉你微服务到底是什么。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |