分布式服务框架设计

目录

服务框架的设计

服务框架的功能

服务框架的性能指标

服务治理需要哪些功能


  • 服务框架的设计

  • 尽管不同的分布式服务框架实现细节存在差异,但是核心功能差异不大,下面的架构图描绘了一个分布式服务框架的整体逻辑架构

  • 总共分为 3 层:
  • 1-服务层,Service,其中主要部分就是动态代理,主要用于将服务提供者的接口封装成远程服务调用
    • 上层的服务接口用于 Spring 之类的业务框架使用,也是 Spring 的 bean
  • 2-过滤器层,服务调用职责链,提供多种调用切面供框架自身和使用者扩展,例如负载均衡,性能统计,服务调用完成通知,失败重试等
  • 3-RPC层,这里就是 RPC 框架的核心部分,包括通信框架,序列化框架,还有用于屏蔽底层通信框架和序列化框架的抽象接口
  • 分布式服务框架通常会包含另外两个重要功能:服务治理中心 和 服务注册中心
  • 1-服务注册中心:负责服务的发布和通知,通常支持对等集群部署,某个节点宕机不会影响整个集群不可用
    • 即使全部宕机,只影响新的节点注册和发布,不影响现有的,因为客户端需要缓存服务路由信息
  • 2-服务治理中心:服务治理中心通常包括服务治理接口 和 服务治理 Portal,架构师,测试人员和系统运维人员通过服务治理 Portal 对服务的运行状态,历史数据,健康度和调用关系等进行可视化的分析和维护,目标是要持续优化服务,防止服务架构腐化,保证服务高质量运行
  • 服务框架的功能

  • 虽然每个服务框架不尽相同,但是还是有一些核心功能是相同的,比如以下功能:
    • 1-服务订阅发布:比如,配置化发布和引用服务,服务自动发现,服务在线注册和取消注册
    • 2-服务路由:比如,默认提供随机路由,轮询,基于权重的路由,粘滞连接,路由定制功能
    • 3-集群容错:比如,Failover(失败自动切换),Failback(失败自动恢复),Failfast(快速失败)
    • 4-服务调用:需要支持:同步调用,异步调用,并行调用
    • 5-多协议:包括私有协议,公有协议
    • 6-序列化方式:需要支持二进制和文本类序列化方式
    • 7-统一配置:支持本地静态配置,支持基于配置中心的动态配置
  • 以上功能可以按照业务定制,不需要 100% 支持
  • 服务框架的性能指标

  • 分布式服务框架的性能肯定比不上本地调用,原因是:网络通信,序列化,反射调用,动态代理这些都会消耗性能;所以需要有性能指标
  • 1-高性能:在同等资源占用情况下,单服务提供者的 TPS 要尽量高
  • 2-低延时:在同等资源占用情况下,服务调用延时要尽量低
  • 3-性能线性增长:如果增加了服务提供者,整体性能要能够线性增长
  • 4-可靠性:服务注册中心的可靠性,网络链路的可靠性
  • 服务治理需要哪些功能

  • 服务运行态监控,例如通过路由导流,限流,服务降级,动态控制超时时间
  • 服务监控,性能统计,报表,报警
  • 服务生命周期管理
  • 故障快速定位
  • 服务安全

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

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

相关文章

Ansible自动化安装部署及使用

目录 前言 一、环境概况 修改主机名(可选项) 二、安装部署 1.安装epel扩展源 2.安装Ansible 3.修改Ansible的hosts文件 4.生成密钥 三、Ansible模块使用介绍 Command模块 Shell模块 User模块 Copy模块 File模块 Hostname模块 Yum模块 Ser…

Ubuntu重启后进入initramfs导致无法开机解决方案

今天,我的电脑意外关机,重新开机后打开了虚拟机。该虚拟机使用的是 Ubuntu 22.04 系统。但重启后,系统一直显示(initramfs):,导致无法正常启动。最后,在网上查找了一些解决方案,成功解决了这个开机问题。在…

圣杯布局/双飞翼布局/flex/grid等,实现CSS三栏自适应布局的几种方法

简介 三栏布局是网页设计中常用的布局,即网页中的内容被分为三块:左侧/中间/右侧。其中两侧部分宽度固定,中间部分宽度自适应的根据浏览器宽度撑满剩余空间。而三栏布局也有很多变形,比如两栏或者N栏布局,上中下三栏布…

Linux shell编程学习笔记21:用select in循环语句打造菜单

一、select in循环语句的功能 Linux shell脚本编程提供了select in语句,这是 Shell 独有的一种循环语句,非常适合终端(Terminal)这样的交互场景,它可以根据用户的设置显示出带编号的菜单,用户通过输入不同…

爱德华的台灯真的好用?爱德华、书客、好视力护眼台灯对比测评

如今孩子近视的比例越来越大,而且时间越来越提前,一些上小学的孩子开始近视佩戴眼镜。其实造成近视的原因不外乎作业坐姿不标准,学业时间太长缺少户外的运动,也包括可能灯光光源的问题造成对于视力的影响。如果希望孩子有一个较好…

3.26每日一题(线性非齐次的特解如何设)

1、非齐次方程有e的2x次幂:特解也有e的2x次幂 2、e的2x次幂前面有特殊的一元方程:特解要设为一般的特征方程(axb) 3、求线性齐次特征方程的特征根; 4、判断e的 rx 次幂中的 r 和特征根有没有重合的个数:…

【每日一题】数组中两个数的最大异或值

文章目录 Tag题目来源题目解读解题思路方法一:哈希集合 其他语言python3 写在最后 Tag 【哈希集合】【位运算-异或和】【数组】【2023-11-04】 题目来源 421. 数组中两个数的最大异或值 题目解读 找出数组中两个数的最大异或结果。 解题思路 一看数据量达到了 …

Ubuntu20.04搭建RISC-V和qemu环境

1. 前言 risc-v是一个非常有潜力的指令集框架,最近对其产生了浓厚的兴趣,由于之前对于这方面的知识储备很少,在加上网上的教程都是点到为止,所以安装过程异常曲折。好在最后一步一步积累摸索,终于利用源码安装完成。看…

【中国知名企业高管团队】系列59:TCL

今天华研荟为大家介绍TCL公司的情况和创始人李东生先生的故事。 一、关于TCL TCL创立于1981年,前身为中国首批13家合资企业之一:TTK家庭电器(惠州)有限公司,该公司为中港合资企业,最初从事卡式录音磁带的生产制造,19…

基于单片机的超声波测距仪

收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、本课题研究的主要内容二、超声波测距仪的整体方案2.2 超声波测距仪设计原理 三、超声波测距仪系统硬件电路的设计3.1 超声波测距仪的基本结构 四、 超声波测距仪系统的软件设计4.1 主程序软件设计仿真 五、结…

2019数二(二重积分的不等式问题)

注&#xff1a; 1、在相同积分区域内的积分比较大小&#xff1a;被积函数大的积分值大&#xff0c;被积函数小的积分值小 2、在区间[0&#xff0c;Π/2]上 &#xff1a;sinx < x < tanx

c面向对象编码风格(上)

面向对象和面向过程的基本概念 面向对象和面向过程是两种不同的编程范式&#xff0c;它们在软件开发中用于组织和设计代码的方式。 面向过程编程&#xff08;Procedural Programming&#xff09;是一种以过程&#xff08;函数、方法&#xff09;为核心的编程方式。在面向过程…

C语言查看各数据类型所占大小

编译器&#xff1a;VC2010 #include<stdio.h> int main() {printf("%d\n",sizeof(char));printf("%d\n",sizeof(short));printf("%d\n",sizeof(int));printf("%d\n",sizeof(long));printf("%d\n",sizeof(long long))…

【sql注入】sql关卡1~4

前言&#xff1a; 靶场自取 level-1 测试注入点 POC: 1,1,1,1"",1/1,1/0 》存在注入点 爆破 POC: id-1andextractvalue(1,concat(0x7e,user(),0x7e))-- level-2 尝试注入点 POC1:admin POC2:admin POC3:adminandsleep(3)-- POC4: adminandif(1,1,0)0-- POC…

最新 vie-vite框架下 jtopo安装使用

官方地址 官方源码 安装下载 1.官方好像都没有给git地址&#xff0c;尝试npm安装报错 2.找到1.0.5之前的版本npm i jtopo2&#xff0c;安装成功后使用报错&#xff0c;应该是版本冲突了 1.本地引入&#xff0c; 点击官方源码下载&#xff0c;需要jtopo_npm文件 2.引入到本…

Jetpack:030-Jetpack中的状态

文章目录 1. 概念介绍2. 使用方法2.1 可监听对象2.2 获取状态值2.3 修改状态值2.4 重组函数 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中网格布局相关的内容&#xff0c;本章回中主要 介绍状态。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&#xff0…

【SpringCloud Alibaba -- Nacos】Linux 搭建 Nacos 集群

搭建 Nacos 集群 架构 centos安装docker https://docs.docker.com/engine/install/centos/ 详细配置过程 MySql8 mysql数据库配置 数据库脚本 nacos/conf/nacos-mysql.sql Nacos2 application.properties 修改为mysql spring.datasource.platformmysqldb.num1 db.url…

【工具】Github统计代码行数工具推荐(VScode插件、兼容任何平台、不用下载安装包)

需求&#xff1a; 1&#xff09;被要求统计代码行数&#xff1b; 2&#xff09;不想打开Linux&#xff0c;懒得下载Windows版本GitStats&#xff1b; 3&#xff09;打开了Linux但也不记得find命令行怎么用&#xff1b; 4&#xff09;打开了Linux&#xff0c;装好了Gitstats但自…

wagtail的使用

文章目录 安装虚拟环境新建项目时指定虚拟环境打开已有项目添加虚拟环境 安装wagtail查看安装后的包 创建wagtail项目安装依赖迁移创建超级用户运行项目 管理工作台内容扩展首页的数据模型更新数据库修改模板页创建一个页面的过程 models中的基本字段templates字符型文本字段富…

汽车标定技术(四)--问题分析:多周期测量时上位机显示异常

目录 1.问题现象 2.数据流分析 ​​​​3.代码分析 3.1 AllocDAQ 3.2 AllocOdt 3.3 AllocOdtEntry 4.根因分析及解决方法 4.1 根因分析 4.2 解决方案 1.问题现象 在手撸XCP代码时&#xff0c; DAQ的实现是一大头痛的事情。最初单周期实现还好一点&#xff0c;特别是…