微服务主流框架概览
微服务主流框架概览
- 目录
- 概述
- 需求:
- 设计思路
- 实现思路分析
- 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
书籍推荐
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~
相关文章:
![](https://img-blog.csdnimg.cn/20210404234818963.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW1hb2NoZW5n,size_16,color_FFFFFF,t_70#pic_center)
微服务主流框架概览
微服务主流框架概览 目录概述需求: 设计思路实现思路分析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…...
![](https://img-blog.csdnimg.cn/d795c19411934e629a59ad15e0472b5b.png)
Python Flask Web开发二:数据库创建和使用
前言 数据库在 Web 开发中起着至关重要的作用。它不仅提供了数据的持久化存储和管理功能,还支持数据的关联和连接,保证数据的一致性和安全性。通过合理地设计和使用数据库,开发人员可以构建强大、可靠的 Web 应用程序,满足用户的…...
![](https://img-blog.csdnimg.cn/238ea02eba1746e28df1645c203e1fd2.png)
快速学会git版本管理——上传gitee仓库
首先在gitee右上角有一个新建仓库 创建之后打开自己想要上传的文件 右键打开 Git Bash Here 接下来会弹出git的窗口 首先先初始化仓库 用git命令 git init 然后用git add . 上传所有文件上传到暂存区(上一篇文章说过add是单个文件,add . 是所有文件) 没有显示错误 …...
![](https://img-blog.csdnimg.cn/55a0fd4ab2c5467a973786aade84b643.jpeg#pic_center)
应用在智能洗衣机触摸屏上的电容式触摸芯片
智能型全自动洗衣机可以自动判断水温、水位、衣质衣量、衣物的脏污情况,决定投放适量的洗涤剂和的洗涤程序。当洗衣桶内衣物的多少和质地不同,而注入水使其达到相同的水位时,其总重量是不同的。利用这一点,通过对洗衣电动机低速转…...
![](https://img-blog.csdnimg.cn/7087c8f3381446ffbffdfc81e8da06bb.png)
npm版本升级报错
解决方法: 执行npm install --legacy-peer-deps依赖对等 npm install xxx --legacy-peer-deps命令用于绕过peerDependency里依赖的自动安装;它告诉npm忽略项目中引入的各个依赖模块之间依赖相同但版本不同的问题,以npm v4-v6的方式去继续执行…...
![](https://img-blog.csdnimg.cn/f46fcfe126a142b6a43b0b811dabb620.png)
Vue+Element-ui+SpringBoot搭建后端汽车租赁管理系统
最近在做项目,花了一周的时间搭建了一个十分完备的汽车租赁后端管理系统。页面采用纯Vue2Element-ui搭建,后端采用SpringbootMybatis搭建,数据库采用Mysql。包括了登录验证,根据不同权限进入不同界面、数据增删改查、表格分页、表…...
![](https://www.ngui.cc/images/no-images.jpg)
PKU校园网连接失败
校园网连接失败 连上校园网,显示已经连接但是没有网络,手动输入校园网门户( its.pku.edu.cn )也没有用。 使用 windows自带的疑难解答,分析发现dns解析异常。 解决方案 手动配置IPV4的dns。 同学的电脑可以正常连接dns,将同学…...
![](https://img-blog.csdnimg.cn/597f25b84fb743cebd49e7a9e3786216.jpeg)
STM32存储左右互搏 I2C总线读写FRAM MB85RC16
STM32存储左右互搏 I2C总线读写FRAM MB85RC16 在较低容量存储领域,除了EEPROM的使用,还有铁电存储器FRAM的使用,相对于EEPROM, 同样是非易失性存储单元,FRAM支持更高的访问速度, 其主要优点为没有EEPROM持续写操作跨页…...
![](https://www.ngui.cc/images/no-images.jpg)
【typeof instanceof Object.prototype.toString constructor区别】
几个数据类型判断区别 typeofinstanceofObject.prototype.toStringconstructor typeof 它返回的是一个字符串,表示未经过计算的操作数的类型 typeof(undefined) //"undefined"typeof(null) //"object"typeof(100) //"number"typeof…...
![](https://www.ngui.cc/images/no-images.jpg)
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…...
![](https://img-blog.csdnimg.cn/f486eebdb4e84adba4343a642d4f23f3.png)
QT多线程
1.QT4.7以前的版本-----线程处理方式 1. 出现的警告 直接使用从UI—>转到槽,就会出现警告 2. 出现的错误 error: invalid operands of types QTimer* and void (QTimer::*)(QTimer::QPrivateSignal) to binary operator& 错误:无效的操作数类型’QTimer…...
![](https://www.ngui.cc/images/no-images.jpg)
【linux命令讲解大全】059.命令行利器:快速执行指定命令的command命令
文章目录 command补充说明语法参数实例 从零学 python command 调用并执行指定的命令。 补充说明 command 命令用于调用指定的命令并执行,命令执行时不查询 shell 函数。command 命令只能执行 shell 内部的命令。 语法 command [参数]参数 指令:需…...
![](https://img-blog.csdnimg.cn/92203814c8904c63b51aa7b5acaecc21.png)
opencv-4.5.2-android-sdk.zip安装教程
opencv-4.5.2-android-sdk.zip: 下载链接:百度网盘 请输入提取码 提取码:s0p2 导入模块的方法: ①、导入模块 ②、定位到sdk目录 点击ok就行,就导入成功了。导入成功后会多出一个可展开的opencv文件夹(自己命名的),一定要能展…...
![](https://img-blog.csdnimg.cn/59f42ca07761400f8ac9d7fd4170ff57.png)
接口自动化测试系列-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…...
![](https://img-blog.csdnimg.cn/448c1653aa5441328613beab12864c55.png)
Spring——Spring的控制反转IOC
摘要 IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;…...
![](https://www.ngui.cc/images/no-images.jpg)
基于CentOS7.5构建LVS-DR 群集,并启用Nginx负载均衡,一键完成。
在两台服务器上的步骤: 安装必要软件:在两台服务器上,安装必要的软件,包括ipvsadm和keepalived。使用以下命令安装软件: sudo yum install ipvsadm keepalived -y 禁用防火墙或配置规则:禁用防火墙或根据实…...
![](https://img-blog.csdnimg.cn/img_convert/20328e37cbd463dbb0736c38293cee06.png)
redis 数据结构(二)
整数集合 整数集合是 Set 对象的底层实现之一。当一个 Set 对象只包含整数值元素,并且元素数量不时,就会使用整数集这个数据结构作为底层实现。 整数集合结构设计 整数集合本质上是一块连续内存空间,它的结构定义如下: typed…...
![](https://img-blog.csdnimg.cn/0f7e7bee35694716b9c602299ca34373.png)
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 切换…...
![](https://img-blog.csdnimg.cn/d22f8d10458843d7bd191fa39e8de729.png)
[C++网络协议] I/O复用
具有代表性的并发服务器端实现模型和方法: 多进程服务器:通过创建多个进程提供服务。 多路复用服务器:通过捆绑并统一管理I/O对象提供服务。✔ 多线程服务器:通过生成与客户端等量的线程提供服务。 目录 1. I/O复用 2. select函…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
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:…...
![](https://img-blog.csdnimg.cn/fe2d2bcdeac545f7914bbc1703e68ae2.png)
[羊城杯 2023] web
文章目录 D0nt pl4y g4m3!!! D0n’t pl4y g4m3!!! 打开题目,可以判断这里为php Development Server 启动的服务 查询得知,存在 PHP<7.4.21 Development Server源码泄露漏洞(参考文章) 抓包,构造payload 得到源码 class Pro{private $ex…...
![](https://www.ngui.cc/images/no-images.jpg)
Redisson—独立节点模式和集群管理工具
一、集群管理工具 Redisson集群管理工具提供了通过程序化的方式,像redis-trib.rb脚本一样方便地管理Redis集群的工具。 1、 创建集群 以下范例展示了如何创建三主三从的Redis集群。 ClusterNodes clusterNodes ClusterNodes.create() .master("127.0.0.1:…...
![](https://img-blog.csdnimg.cn/91e6d29b65b94eaf8e1621beabd2204e.png)
基于RabbitMQ的模拟消息队列之五——虚拟主机设计
文章目录 一、创建VirtualHost类二、初始化三、API1.创建交换机2.删除交换机3.创建队列4.删除队列5.创建绑定6.删除绑定7.发送消息转发规则 8.订阅消息1.消费者管理2.推送消息给消费者 3.添加一个消费者管理ConsumerManager9.确认消息 创建VirtualHost类。 1.串起内存和硬盘的数…...
![](https://img-blog.csdnimg.cn/img_convert/340415be253e1f9947cd6b1724367b70.png)
Hadoop的概述与安装
Hadoop的概述与安装 一、Hadoop内部的三个核心组件1、HDFS:分布式文件存储系统2、YARN:分布式资源调度系统3、MapReduce:分布式离线计算框架4、Hadoop Common(了解即可) 二、Hadoop技术诞生的一个生态圈数据采集存储数…...
![](https://img-blog.csdnimg.cn/a9ab43ce0fc949788f301652eee39945.png)
进程、线程与构造方法
进程、线程与构造方法 目录 一. 进程与线程1. 通俗解释2. 代码实现3. 线程生命周期(图解) 二. 构造方法 一. 进程与线程 1. 通俗解释 进程:就像电脑上运行的软件,例如QQ等。 线程:…...
![](https://img-blog.csdnimg.cn/85c21ac837c74b8bb2b1f00466aaedf9.png)
04 Linux补充|C/C++
目录 Linux补充 C语⾔ C语言中puts和printf的区别? Linux补充 (1)ubuntu安装ssh服务端openssh-server命令: ubuntu安装后默认只有ssh客户端,只能去连其它ssh服务器;其它客户端想要连接这个ubuntu系统,需要安装部署…...
![](https://img-blog.csdnimg.cn/297a68d8b70d469f91489b3b6a830294.gif)
利用python制作AI图片优化工具
将模糊图片4K高清化效果如下: 优化前的图片 优化后如下图: 优化后图片变大变清晰了效果很明显 软件界面如下: 所用工具和代码: 1、所需软件包 网盘链接:https://pan.baidu.com/s/1CMvn4Y7edDTR4COfu4FviA提取码&…...
![](https://img-blog.csdnimg.cn/763ccf414b5947dfb7ad48f2acdc619b.png)
React v6(仅支持函数组件,不支持类组件)与v5版本路由使用详情和区别(详细版)
1.路由安装(默认安装最新版本6.15.0) npm i react-router-dom 2.路由模式 有常用两种路由模式可选:HashRouter 和 BrowserRouter。 ①HashRouter:URL中采用的是hash(#)部分去创建路由。 ②BrowserRouter:URL采用真实的URL资源,…...
![](https://img-blog.csdnimg.cn/84ee07d714aa4154ad2f47608df98185.png)
(数字图像处理MATLAB+Python)第十二章图像编码-第一、二节:图像编码基本理论和无损编码
文章目录 一:图像编码基本理论(1)图像压缩的必要性(2)图像压缩的可能性A:编码冗余B:像素间冗余C:心理视觉冗余 (3)图像压缩方法分类A:基于编码前后…...
![](https://img-blog.csdnimg.cn/01b950f4a7974f1fb72a40dc656a62d5.png)
【Unity编辑器扩展】| 顶部菜单栏扩展 MenuItem
前言【Unity编辑器扩展】 | 顶部菜单栏扩展 MenuItem一、创建多级菜单二、创建可使用快捷键的菜单项三、调节菜单显示顺序和可选择性四、创建可被勾选的菜单项五、右键菜单扩展5.1 Hierarchy 右键菜单5.2 Project 右键菜单5.3 Inspector 组件右键菜单六、AddComponentMenu 特性…...
![](/images/no-images.jpg)
亳州做网站哪家好/樱桃bt磁力天堂
实际生产开发中,遇到突发情况,需要紧急修复线上bug,但是灰度环境(或者其他预生产测试环境)已经存在多个新功能的代码了,这时候我们可能选择直接在生产tag版本的代码上进行修复并发布。 local_branch : 本地分支名 tag_name : 生…...
php做的网站怎么运行/长春网站建设方案咨询
问题及代码: /*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名:test.cpp *作者:liu_feng_zi_ *完成日期:2015年6月25日 *版本号:v1.0 *问题描述:复数运算符重载(与<…...
![](/images/no-images.jpg)
网站建设文化事业建设费/站长工具怎么关掉
CVS很酷,但Subversion更酷。然而,如果你在使用Eclipse进行开发,那么你可能直到近来才能利用Subversion带来的优点摘要 CVS很酷,但Subversion更酷。然而,如果你在使用Eclipse进行开发,那么你可能直到近来才能…...
![](/images/no-images.jpg)
wordpress首页跳转/seo平台
构建编译项目不需要安装CMake,MinGW等额外工具。只需要Android NDK和OpenCV源码。在WIN10上使用cmd窗口命令编译OpenCV步骤,操作版本为4.0.1:在OpenCV根目录下面新建一个文件夹,比如叫做build_cmd。因为OpenCV要求CMAKE_BINARY_DI…...
![](/images/no-images.jpg)
flash代码做网站教程/上海公关公司
计算机编程术语: 参考网址:https://blog.csdn.net/linear_luo/article/details/52318820 application 应用程式 应用、应用程序 application framework 应用程式框架、应用框架 应用程序框架 architecture 架构、系统架构 体系结构 argument 引数&am…...
![](https://www.oschina.net/img/hot3.png)
点匠网站开发流程/中国营销策划第一人
为什么80%的码农都做不了架构师?>>> 首先是安装:emerge vsftpd,然后按照下面的操作步骤即可配置ftp(主要就是修改/etc/vsftpd/vsftpd.conf)。在linux中添加ftp用户,并设置相应的权限ÿ…...