微服务主流框架概览
- 目录
- 概述
- 需求:
- 设计思路
- 实现思路分析
- 1.HSF
- 2.Dubbo
- 3.Spring Cloud
- 5.gRPC
- Service mesh
- 参考资料和推荐阅读
Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
目录
概述
微服务主流框架概览
需求:
设计思路
实现思路分析
1.HSF
HSF是一个分布式RPC框架,联通各种不同的分布式系统,以服务的方式调用。其核心有服务注册中心(ConfigServer)、RPC框架和服务治理(包括服务寻址、路由、限流等)。图6-5所示是HSF微服务框架,以及各个核心模块之间的交互流程。
HSF服务治理包括服务发布和寻址,以及通过各种规则来实现诸如限流、白名单、授权、路由、同机房优先、单元化、动态分组、权重路由、降级等功能,配置和规则放在Diamond集中管理,有专门的ops页面进行维护,所有客户端和服务器端都会订阅这些配置和规则。
HSF(阿里巴巴)
没有
“阿里内只用HSF,而因为HSF没有开源,外面只能用dubbo。”
2.Dubbo
Dubbo是一款高性能、轻量级的开源Java RPC框架。它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
Dubbo最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务。
3.Spring Cloud
Spring Cloud为最常见的分布式系统模式提供了简单易用的编程模型,帮助开发人员构建弹性、可靠和协调的应用程序。
Spring Cloud是一系列框架的有序集合,它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,比如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控、链路追踪等。
Spring Cloud采用的是基于HTTP的REST方式。RPC一般面向接口引用来调用远端服务,对开发人员更加友好,且RPC主要是基于TCP/IP的,调用参数采用二进制进行序列化,网络传输更加精简高效;RPC的缺点是调用双方存在技术栈的强绑定。REST比RPC更灵活,天然具有跨语言的优势,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级的强依赖,这在强调快速演进的微服务环境下,显得更加合适。
5.gRPC
gRPC是一个基于HTTP/2通信协议和Protobuf序列化的RPC实现,其前身是谷歌内部大量使用的Stubby服务间通信产品。gRPC已被CNCF所收录,作为云原生架构的一个进程之间服务调用参考。
gRPC并不算是一个完整的微服务框架,而只是一个轻量级远程服务调用技术。通常我们不会单独使用gRPC,而是将gRPC作为一个组件进行使用。这是因为生产环境中在面对大并发的情况时,需要使用分布式系统来处理,而gRPC并没有提供分布式系统相关的一些必要组件。
Service mesh
service mesh承担了微服务框架的所有功能,包括服务注册发现、负载均衡、熔断限流、认证鉴权、缓存加速、运行监控等。可以说,service mesh是云原生下的微服务治理方案。微服务架构强调去中心化、独立自治、跨语言,service mesh通过独立进程的方式进行了隔离,可以低成本实现微服务框架这些特性。
Java 语言微服务框架很多,以下是一些比较常用的:
-
Spring Boot:是一个创建独立的、基于 Spring 的微服务的框架。
-
Spring Cloud:是一组开源框架,用于构建分布式系统中的微服务架构。
-
Dropwizard:是一个基于快速开发的 RESTful 微服务框架,使用 Jetty 作为内嵌服务器。
-
Vert.x:是一个基于事件驱动、非阻塞、轻量级的微服务框架,适用于构建高并发、高可扩展的应用程序。
-
Play:是一个基于 Akka 和 Scala 的轻量级 Web 框架,用于构建可扩展的高并发应用程序。
-
Micronaut:是一个基于 Java 和 Kotlin 的轻量级微服务框架,具有快速启动时间和内存占用低的优点。
-
Quarkus:是一个基于 GraalVM 和 OpenJDK 的极速、轻量级、可响应的 Java 堆栈微服务框架,用于构建云原生和 Serverless 应用程序。
参考资料和推荐阅读
参考资料
官方文档
开源社区
博客文章
1. https://blog.51cto.com/key3feng/5213056
书籍推荐
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~