当前位置: 首页 > news >正文

微服务主流框架概览

微服务主流框架概览

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 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
书籍推荐

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

相关文章:

微服务主流框架概览

微服务主流框架概览 目录概述需求: 设计思路实现思路分析1.HSF2.Dubbo 3.Spring Cloud5.gRPC Service mesh 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a be…...

Python Flask Web开发二:数据库创建和使用

前言 数据库在 Web 开发中起着至关重要的作用。它不仅提供了数据的持久化存储和管理功能,还支持数据的关联和连接,保证数据的一致性和安全性。通过合理地设计和使用数据库,开发人员可以构建强大、可靠的 Web 应用程序,满足用户的…...

快速学会git版本管理——上传gitee仓库

首先在gitee右上角有一个新建仓库 创建之后打开自己想要上传的文件 右键打开 Git Bash Here 接下来会弹出git的窗口 首先先初始化仓库 用git命令 git init 然后用git add . 上传所有文件上传到暂存区(上一篇文章说过add是单个文件,add . 是所有文件) 没有显示错误 …...

应用在智能洗衣机触摸屏上的电容式触摸芯片

智能型全自动洗衣机可以自动判断水温、水位、衣质衣量、衣物的脏污情况,决定投放适量的洗涤剂和的洗涤程序。当洗衣桶内衣物的多少和质地不同,而注入水使其达到相同的水位时,其总重量是不同的。利用这一点,通过对洗衣电动机低速转…...

npm版本升级报错

解决方法: 执行npm install --legacy-peer-deps依赖对等 npm install xxx --legacy-peer-deps命令用于绕过peerDependency里依赖的自动安装;它告诉npm忽略项目中引入的各个依赖模块之间依赖相同但版本不同的问题,以npm v4-v6的方式去继续执行…...

Vue+Element-ui+SpringBoot搭建后端汽车租赁管理系统

最近在做项目,花了一周的时间搭建了一个十分完备的汽车租赁后端管理系统。页面采用纯Vue2Element-ui搭建,后端采用SpringbootMybatis搭建,数据库采用Mysql。包括了登录验证,根据不同权限进入不同界面、数据增删改查、表格分页、表…...

PKU校园网连接失败

校园网连接失败 连上校园网,显示已经连接但是没有网络,手动输入校园网门户( its.pku.edu.cn )也没有用。 使用 windows自带的疑难解答,分析发现dns解析异常。 解决方案 手动配置IPV4的dns。 同学的电脑可以正常连接dns,将同学…...

STM32存储左右互搏 I2C总线读写FRAM MB85RC16

STM32存储左右互搏 I2C总线读写FRAM MB85RC16 在较低容量存储领域,除了EEPROM的使用,还有铁电存储器FRAM的使用,相对于EEPROM, 同样是非易失性存储单元,FRAM支持更高的访问速度, 其主要优点为没有EEPROM持续写操作跨页…...

【typeof instanceof Object.prototype.toString constructor区别】

几个数据类型判断区别 typeofinstanceofObject.prototype.toStringconstructor typeof 它返回的是一个字符串,表示未经过计算的操作数的类型 typeof(undefined) //"undefined"typeof(null) //"object"typeof(100) //"number"typeof…...

ARM Codec要求

文章目录 前言一、驱动1. linux kernel driver (非V4L2驱动)1.1 porting guide1.2 programing guide1.3 CPU占用率统计1.4 memory使用统计(不包含input/output/working buffer) 2. freeRTOS driver2.1 porting guide,驱动所支持freeRTOS版本列表2.2 programing guid…...

QT多线程

1.QT4.7以前的版本-----线程处理方式 1. 出现的警告 直接使用从UI—>转到槽,就会出现警告 2. 出现的错误 error: invalid operands of types QTimer* and void (QTimer::*)(QTimer::QPrivateSignal) to binary operator& 错误:无效的操作数类型’QTimer…...

【linux命令讲解大全】059.命令行利器:快速执行指定命令的command命令

文章目录 command补充说明语法参数实例 从零学 python command 调用并执行指定的命令。 补充说明 command 命令用于调用指定的命令并执行,命令执行时不查询 shell 函数。command 命令只能执行 shell 内部的命令。 语法 command [参数]参数 指令:需…...

opencv-4.5.2-android-sdk.zip安装教程

opencv-4.5.2-android-sdk.zip: 下载链接:百度网盘 请输入提取码 提取码:s0p2 导入模块的方法: ①、导入模块 ②、定位到sdk目录 点击ok就行,就导入成功了。导入成功后会多出一个可展开的opencv文件夹(自己命名的),一定要能展…...

接口自动化测试系列-excel管理测试用例

代码源码: 框架结构 核心代码 excel数据处理 from configureUtil.LogUtil import getlog logger getlog(targetNameHandleData) import xlrd from openpyxl import load_workbook,workbook from openpyxl.styles import Font, colors import openpyxl import o…...

Spring——Spring的控制反转IOC

摘要 IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;…...

基于CentOS7.5构建LVS-DR 群集,并启用Nginx负载均衡,一键完成。

在两台服务器上的步骤: 安装必要软件:在两台服务器上,安装必要的软件,包括ipvsadm和keepalived。使用以下命令安装软件: sudo yum install ipvsadm keepalived -y 禁用防火墙或配置规则:禁用防火墙或根据实…...

redis 数据结构(二)

整数集合 整数集合是 Set 对象的底层实现之一。当一个 Set 对象只包含整数值元素,并且元素数量不时,就会使用整数集这个数据结构作为底层实现。 整数集合结构设计 整数集合本质上是一块连续内存空间,它的结构定义如下: typed…...

Hadoop依赖环境配置与安装部署

目录 什么是Hadoop?一、Hadoop依赖环境配置1.1 设置静态IP地址1.2 重启网络1.3 再克隆两台服务器1.4 修改主机名1.5 安装JDK1.6 配置环境变量1.7 关闭防火墙1.8 服务器之间互传资料1.9 做一个host印射1.10 免密传输 二、Hadoop安装部署2.1 解压hadoop的tar包2.2 切换…...

[C++网络协议] I/O复用

具有代表性的并发服务器端实现模型和方法: 多进程服务器:通过创建多个进程提供服务。 多路复用服务器:通过捆绑并统一管理I/O对象提供服务。✔ 多线程服务器:通过生成与客户端等量的线程提供服务。 目录 1. I/O复用 2. select函…...

3D数据导出工具HOOPS Publish:3D数据查看、生成标准PDF或HTML文档!

HOOPS中文网http://techsoft3d.evget.com/ 一、3D导出SDK HOOPS Publish是一款功能强大的SDK,可以创作丰富的工程数据并将模型文件导出为各种行业标准格式,包括PDF、STEP、JT和3MF。HOOPS Publish核心的3D数据模型是经过ISO认证的PRC格式(ISO 14739-1:…...

[羊城杯 2023] web

文章目录 D0nt pl4y g4m3!!! D0n’t pl4y g4m3!!! 打开题目&#xff0c;可以判断这里为php Development Server 启动的服务 查询得知&#xff0c;存在 PHP<7.4.21 Development Server源码泄露漏洞(参考文章) 抓包&#xff0c;构造payload 得到源码 class Pro{private $ex…...

Redisson—独立节点模式和集群管理工具

一、集群管理工具 Redisson集群管理工具提供了通过程序化的方式&#xff0c;像redis-trib.rb脚本一样方便地管理Redis集群的工具。 1、 创建集群 以下范例展示了如何创建三主三从的Redis集群。 ClusterNodes clusterNodes ClusterNodes.create() .master("127.0.0.1:…...

基于RabbitMQ的模拟消息队列之五——虚拟主机设计

文章目录 一、创建VirtualHost类二、初始化三、API1.创建交换机2.删除交换机3.创建队列4.删除队列5.创建绑定6.删除绑定7.发送消息转发规则 8.订阅消息1.消费者管理2.推送消息给消费者 3.添加一个消费者管理ConsumerManager9.确认消息 创建VirtualHost类。 1.串起内存和硬盘的数…...

Hadoop的概述与安装

Hadoop的概述与安装 一、Hadoop内部的三个核心组件1、HDFS&#xff1a;分布式文件存储系统2、YARN&#xff1a;分布式资源调度系统3、MapReduce&#xff1a;分布式离线计算框架4、Hadoop Common&#xff08;了解即可&#xff09; 二、Hadoop技术诞生的一个生态圈数据采集存储数…...

进程、线程与构造方法

进程、线程与构造方法 目录 一&#xff0e; 进程与线程1. 通俗解释2. 代码实现3. 线程生命周期&#xff08;图解&#xff09; 二&#xff0e; 构造方法 一&#xff0e; 进程与线程 1. 通俗解释 进程&#xff1a;就像电脑上运行的软件&#xff0c;例如QQ等。 线程&#xff1a;…...

04 Linux补充|C/C++

目录 Linux补充 C语⾔ C语言中puts和printf的区别&#xff1f; Linux补充 (1)ubuntu安装ssh服务端openssh-server命令&#xff1a; ubuntu安装后默认只有ssh客户端&#xff0c;只能去连其它ssh服务器&#xff1b;其它客户端想要连接这个ubuntu系统&#xff0c;需要安装部署…...

利用python制作AI图片优化工具

将模糊图片4K高清化效果如下&#xff1a; 优化前的图片 优化后如下图&#xff1a; 优化后图片变大变清晰了效果很明显 软件界面如下&#xff1a; 所用工具和代码&#xff1a; 1、所需软件包 网盘链接&#xff1a;https://pan.baidu.com/s/1CMvn4Y7edDTR4COfu4FviA提取码&…...

React v6(仅支持函数组件,不支持类组件)与v5版本路由使用详情和区别(详细版)

1.路由安装(默认安装最新版本6.15.0) npm i react-router-dom 2.路由模式 有常用两种路由模式可选&#xff1a;HashRouter 和 BrowserRouter。 ①HashRouter&#xff1a;URL中采用的是hash(#)部分去创建路由。 ②BrowserRouter&#xff1a;URL采用真实的URL资源&#xff0c;…...

(数字图像处理MATLAB+Python)第十二章图像编码-第一、二节:图像编码基本理论和无损编码

文章目录 一&#xff1a;图像编码基本理论&#xff08;1&#xff09;图像压缩的必要性&#xff08;2&#xff09;图像压缩的可能性A&#xff1a;编码冗余B&#xff1a;像素间冗余C&#xff1a;心理视觉冗余 &#xff08;3&#xff09;图像压缩方法分类A&#xff1a;基于编码前后…...

【Unity编辑器扩展】| 顶部菜单栏扩展 MenuItem

前言【Unity编辑器扩展】 | 顶部菜单栏扩展 MenuItem一、创建多级菜单二、创建可使用快捷键的菜单项三、调节菜单显示顺序和可选择性四、创建可被勾选的菜单项五、右键菜单扩展5.1 Hierarchy 右键菜单5.2 Project 右键菜单5.3 Inspector 组件右键菜单六、AddComponentMenu 特性…...

亳州做网站哪家好/樱桃bt磁力天堂

实际生产开发中&#xff0c;遇到突发情况&#xff0c;需要紧急修复线上bug&#xff0c;但是灰度环境(或者其他预生产测试环境)已经存在多个新功能的代码了&#xff0c;这时候我们可能选择直接在生产tag版本的代码上进行修复并发布。 local_branch : 本地分支名 tag_name : 生…...

php做的网站怎么运行/长春网站建设方案咨询

问题及代码&#xff1a; /*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名&#xff1a;test.cpp *作者&#xff1a;liu_feng_zi_ *完成日期&#xff1a;2015年6月25日 *版本号&#xff1a;v1.0 *问题描述&#xff1a;复数运算符重载&#xff08;与<…...

网站建设文化事业建设费/站长工具怎么关掉

CVS很酷&#xff0c;但Subversion更酷。然而&#xff0c;如果你在使用Eclipse进行开发&#xff0c;那么你可能直到近来才能利用Subversion带来的优点摘要 CVS很酷&#xff0c;但Subversion更酷。然而&#xff0c;如果你在使用Eclipse进行开发&#xff0c;那么你可能直到近来才能…...

wordpress首页跳转/seo平台

构建编译项目不需要安装CMake&#xff0c;MinGW等额外工具。只需要Android NDK和OpenCV源码。在WIN10上使用cmd窗口命令编译OpenCV步骤&#xff0c;操作版本为4.0.1&#xff1a;在OpenCV根目录下面新建一个文件夹&#xff0c;比如叫做build_cmd。因为OpenCV要求CMAKE_BINARY_DI…...

flash代码做网站教程/上海公关公司

计算机编程术语&#xff1a; 参考网址&#xff1a;https://blog.csdn.net/linear_luo/article/details/52318820 application 应用程式 应用、应用程序 application framework 应用程式框架、应用框架 应用程序框架 architecture 架构、系统架构 体系结构 argument 引数&am…...

点匠网站开发流程/中国营销策划第一人

为什么80%的码农都做不了架构师&#xff1f;>>> 首先是安装&#xff1a;emerge vsftpd&#xff0c;然后按照下面的操作步骤即可配置ftp&#xff08;主要就是修改/etc/vsftpd/vsftpd.conf&#xff09;。在linux中添加ftp用户&#xff0c;并设置相应的权限&#xff…...