微服务主流框架概览

微服务主流框架概览

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 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 语言微服务框架很多,以下是一些比较常用的:

  1. Spring Boot:是一个创建独立的、基于 Spring 的微服务的框架。

  2. Spring Cloud:是一组开源框架,用于构建分布式系统中的微服务架构。

  3. Dropwizard:是一个基于快速开发的 RESTful 微服务框架,使用 Jetty 作为内嵌服务器。

  4. Vert.x:是一个基于事件驱动、非阻塞、轻量级的微服务框架,适用于构建高并发、高可扩展的应用程序。

  5. Play:是一个基于 Akka 和 Scala 的轻量级 Web 框架,用于构建可扩展的高并发应用程序。

  6. Micronaut:是一个基于 Java 和 Kotlin 的轻量级微服务框架,具有快速启动时间和内存占用低的优点。

  7. Quarkus:是一个基于 GraalVM 和 OpenJDK 的极速、轻量级、可响应的 Java 堆栈微服务框架,用于构建云原生和 Serverless 应用程序。

参考资料和推荐阅读

参考资料
官方文档
开源社区
博客文章
1. https://blog.51cto.com/key3feng/5213056
书籍推荐

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/68883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机图形学线性代数相关概念

Transformation(2D-Model) Scale(缩放) [ x ′ y ′ ] [ s 0 0 s ] [ x y ] (等比例缩放) \left[ \begin{matrix} x \\ y \end{matrix} \right] \left[ \begin{matrix} s & 0 \\ 0 & s \end{matrix} \right] \left[ \begin{matrix} x \\ y \en…

pinia和vuex的使用以及区别

还是要记笔记多看才行,要不然老是会忘记 它没有mutation,他只有state,getters,action【同步、异步】使用他来修改state数据pinia没有modules配置,每一个独立的仓库都是definStore生成出来的state是一个对象返回一个对象和组件的da…

AI工人操作行为流程规范识别算法

AI工人操作行为流程规范识别算法通过yolov7python网络模型框架,AI工人操作行为流程规范识别算法对作业人员的操作行为进行实时分析,根据设定算法规则判断操作行为是否符合作业标准规定的SOP流程。Yolo意思是You Only Look Once,它并没有真正的…

安达发APS|未来制造业何去何从?

从18世纪中叶随着蒸汽机的发展在英国开始的工业革命,到19世纪初由于电力的商业化而开始的大规模生产系统,再到20世纪末ICT(信息和通信技术)的发展和自动化系统的引入,制造业一直在创造可能被称为革命性的创新进步。目前,ICT技术的…

文件上传漏洞全面渗透姿势

0x00 文件上传场景 (本文档只做技术交流) 文件上传的场景真的随处可见,不加防范小心,容易造成漏洞,造成信息泄露,甚至更为严重的灾难。 比如某博客网站评论编辑模块,右上角就有支持上传图片的功能,提交带…

触摸屏与多台 PLC之间无线Ethernet通信

在实际系统中,同一个车间里分布多台PLC,由触摸屏集中控制。通常所有设备距离在几十米到上百米不等。在有通讯需求的时候,如果布线的话,工程量较大且不美观,这种情况下比较适合采用无线通信方式。本方案以威纶通触摸屏和…

使用Python进行健身手表数据分析

健身手表(Fitness Watch)数据分析涉及分析健身可穿戴设备或智能手表收集的数据,以深入了解用户的健康和活动模式。这些设备可以跟踪所走的步数、消耗的能量、步行速度等指标。本文将带您完成使用Python进行Fitness Watch数据分析的任务。 Fitness Watch数据分析是健…

(18)线程的实例认识:线程的控制,暂停,继续,停止,线程相互控制,协作

话不多,但比较中肯,本文参照c# 线程暂停继续的实现方式_哔哩哔哩_bilibili 一、老方式 1、这是一个老的实现方式,基本不推荐,背后控制的原理需要了解。 界面:三个button一个textbox …

说说CDN和负载均衡具体是怎么实现的

分析&回答 什么是 CDN CDN (全称 Content Delivery Network),即内容分发网络。 构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需…

智安网络|探索物联网架构:构建连接物体与数字世界的桥梁

物联网是指通过互联网将各种物理设备与传感器连接在一起,实现相互通信和数据交换的网络系统。物联网架构是实现这一连接的基础和框架,它允许物体与数字世界之间的互动和协作。 一、物联网架构的概述 物联网架构是一种分层结构,它将物联网系…

innovus:route within pin 和限制pin shape内via 数量

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 setNanoRouteMode -routeWithViaInPin "1:1" setNanoRouteMode -routeWithViaOnlyForStandardCellPin "1:1"

多个pdf怎么合并在一起?跟着我的步骤一起合并

多个pdf怎么合并在一起?利用PDF文档合并功能可以帮助您更有效地管理文件,将多个相关文件整合成一个文件,避免分散在多个文件中。此外,合并后的文件更便于共享和传输,因为只需共享一个文件而不是多个文件。虽然合并文件…

IntelliJ IDEA(Windows 版)的所有快捷键

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥 大家好 本文参考了 IntelliJ IDEA 的官网,列举了IntelliJ IDEA(Windows 版)的所有快捷…

数据脱敏sensitive(前端或数据库加密,解密)

可以对数据加密,解密,对数据库加密的数据进行解密显示,对数据库没有加密的数据进行加密处理展示前端等待 1:引入数据如下结构 1-1:SensitiveDecode脱敏解密注解 package com.example.poi.desensitization.annotation;…

将 Python 与 RStudio IDE 配合使用(R与Python系列第一篇)

目录 前言: 1-安装reticulate包 2-安装Python 3-选择Python的默认版本(配置Python环境) 4-使用Python 4.1 运行一个简单的Python脚本 4.2 在RStudio上安装Python模块 4.3 在 R 中调用 Python 模块 4.4 在RStudio上调用Python脚本写的…

vue前端解决跨域

1,首先 axios请求,看后端接口路径,http://122.226.146.110:25002/api/xx/ResxxList,所以baseURL地址改成 ‘/api’ let setAxios originAxios.create({baseURL: /api, //这里要改掉timeout: 20000 // request timeout}); export default s…

【C++ 二叉搜索树】

目录 1.什么是二叉搜索树2.构建二叉搜索树2.1首先搭建树的框架2.2搭建搜索树的框架 3.二叉搜索树的插入3.1非递归式插入3.2递归式插入 4.二叉搜索树的查找4.1非递归查找4.2递归查找 5.二叉搜索树的删除5.1非递归删除5.2递归删除 6.整个代码实现 1.什么是二叉搜索树 简单来讲就…

NSSCTF web 刷题记录1

文章目录 前言题目[GXYCTF 2019]禁止套娃方法一方法二 [NCTF 2019]Fake XML cookbook[NSSRound#7 Team]ec_RCE[NCTF 2018]Flask PLUS 前言 今天是2023.9.3,大二开学前的最后一天。老实说ctf的功力还是不太够做的题目太少,新学期新气象。不可急于求成&am…

设置 Hue Server 与 Hue Web 界面之间的会话超时时间

设置 Hue Server 与 Hue Web 界面之间的会话超时时间 在 CDH 的 Hue 中,Auto Logout Timeout 参数表示用户在不活动一段时间后将自动注销(登出)的超时时间。当用户在 Hue 中处于不活动状态超过该设定时间时,系统将自动注销用户&am…

FreeRTOS中断与任务之间同步(Error:..\..\FreeRTOS\portable\RVDS\ARM_CM4F\port.c,422 )

前言: FreeRTOS中,中断需要注意几点: 何时使用中断;中断服务函数(ISR)要处理的数据量有多大,通常我们希望中断的切换越快越好,也就是说,ISR尽量采用耗时较少的处理方式…