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

软件架构之-论分布式架构设计及其实现

论分布式架构设计及其实现

  • 摘要
  • 正文

摘要

        2023年2月,本人所在集团公司承接了长三角地区某省渔船图纸电子化审查项目开发,该项目旨在为长三角地区渔船建造设计院、渔船审图机构提供一个便捷化的服务平台。在次项目中,我作为项目成员参与了整个项目的建设工作,全权负责项目需求分析以及项目整体架构设计等工作。该项目以实现渔船图纸审查为统一目标,为渔船建造设计院、渔船审图机构、第三方技术审图单位提供一体化服务,推荐长三角地区渔船建造行业发展。我们依据以往现有的开发经验认为,分布式架构不仅能够集中式解决单一架构的性能瓶颈,还能提升系统的可用性、可靠性,并发性等多种软件质量属性,是现在大型软件系统构建的必备技术手段,本文以该项目为例,对系统进行了分层设计、存储层采用分区设计、应用层采用微服务架构,接入层采用负载均衡技术以及多机房部署方式,保证了系统的高性能需求。历时10个月,项目顺利上线,赢得了客户良好评价。

正文

        近年来,随着国家对渔船建造行业的大力支持,以及渔船建造技术的快速发展,渔船建造的规模越来越大,因而导致渔船建造图纸审查数量也迅速增加,传统的纸质化审图已经越来越不能满足渔船建造设计院的需求,对于存在问题图纸的修改、审查,设计师往往奔走于设计院与审图机构之间,耗费大量的人力、物力、财力。2023年初,长三角地区某省为了推进渔船建造行业的一体化发展,实现渔船审图“”零跑腿”的业务需求,发起了渔船图纸电子化审查项目,该项目投资1000万元,计划10个月完成,并对项目进行了公开招标,我司成功中标。
        接到系统开发任务后,我所在部门领导高度重视,第一时间专门开发小组,抽调骨干力量进行系统开发。本人有幸在该项目中担任系统架构师角色,全面主持了该项目的机构设计以及开发工作。经过项目组成员讨论,考虑到该项目对于性能、可靠性、可用性等软件质量属性要求较高,我们决定系统采用分层设计,并在分层设计基础上,分别实现了分布式架构设计,得到了项目组成员以及公司领导认可。

        在项目之初,我充分分析项目特点,认识到项目建设难度较大,涉及到全省不同渔船设计院、不同渔船图纸审查机构,每天会有大量的渔船图纸信息审核,面图纸形式采用PDF格式,对于图纸的上传,以及加载预览,会占用大量的网络资源,对系统的性能要求较高;同时,考虑到该项目设计全省渔船设计院、以及审图单位,涉及用户较多,这也对系统的可用性是个巨大的挑战。因此,我们必须在架构的设计时保持严谨、正确、科学的方法,才能对项目的功能和质量起到保障作用。因此我们决定运用分布式存储、微服务、负载均衡、DNS等多种分布式架构理论方法,结合分层设计思想,确保系统的高性能、可用性、可靠性质量需求。下文将从系统分层角度,详述该项目中如何实施分布式架构方法。
        一、分布式存储
        由于存储层的各项性能指标将决定整个系统的性能,因此存储层的架构设计至关重要。本项目对分布式存储数据行了分区,分区方式有水平分区和垂直分区两种。水平分区是按照一定的分布策略,将数据分布到不同的节点(库、表等)去存储,常见的策略有范围分区、列表分区、hash分区。垂直分区是按照业务字段进行分类并拆分表格,分布存储到不同的节点。采用分区方案后,针对项读多,写少的特点,我们地每个存储节点设计成“主从集群”方式实现“读写分离”和数据的“多节点备份”。这样设计方案适用于性能一要求以较高的大规模存储系统,既提升了系统的整体并发性、数据存储的高可用性,又保证了数据的可靠性。
        在该项目中,考虑到每天的图纸增量巨大,只靠单点集中式数据库是无法实现的。业务方面要求性能的同时,也对存储服务的可用性,数据存储的可靠性提出了需求,例如:可用性要达到99.99%,数据丢失率要小于0.001%。因此分布式存储的架构方案是该项目的不二之选,我们采取如下策略:
        (1)确定基础技术的选型。我们选用Mysql开源数据库作为基础构件,来搭建分区的每个节点。在每个节点上使用两个“Mysql”实现“主从复制集群”,通过Mysql复制binlog,保证两者数据库的一致性。当主库出现问题时,自动化执行“主从切换”,升级从库为主库,继而提供数据库的读写服务,保证可用性。
        (2)确定分区策略。为了确保谁存储的均匀性,采用了Hash的分布策略。对每条项目图纸数据记性Hash运算,并对节点数进行取模后,得到数据的应归属的存储节点。
        (3)确定分区数量。经过负载压力测试,我们得到每个存储节点上Mysql从主从集群在16核32G内存500G普通SSD磁盘的配置下,在可接受的延时范围内,可以达到要求的性能目标。
        (4)确定透明性等级。为了让应用层更方便的访问数据库,我们选用了Sharding Poxy数据库代理构件,向应用层屏蔽了存储层细节,达到了"分片透明性"等级。这样应用层访问分布式数据库时,可以像访问单点数据库一样。

         二、微服务化        “微服务化”主张将一个大型的单体应用拆分成一组小的服务,服务之间相互协作,实现业务功能。每个服务运行独立的进程中,采用轻量级的通信机制,保证了每个小服务的封装性、可重用性,易维护性、易扩展性,用以解决复杂的业务逻辑问题,同时,拆封为多个小的服务有利于实现系统的高并发、高性能、高可用性。
        应用层架构需要满足应用方提出的最大100万并发用户指标。因此我们采用了微服务设计架构,微服务提供了服务的弹性扩展能力,以及并发的扩展能力。业务层我们选用Java的Spring框架,来实现面向用户的服务,把系统图纸上传、提交、审核封装成了WebService服务。在模拟压力测试下,并发量100万时,系统资源使用基本保持在75%左右,进而确保了系统的高并发性能;

         三、负载均衡        通常接入层都会有一个Web服务器,它首先接收到客户端请求,然后将请求传递给应用层某个服务器去处理。此时,它就充当了“负载均衡”功能,决定如何选取应用服务器。常见的负载均衡策略有轮询法、随机法、原地址Hash法、键值范围等静态策略,还有最小连接数法、最快响应迅速调度法等动态策略。它对于整个系统分布式架构具有“疏导”作用,也可以提供“限流”“断熔”等高级负载均衡。
        在本项目中,应用层拥有庞大的应用层服务器,需要在接入层选用高性能的Web的服务器,来充当负载均衡器。经过仔细分析和调研,我们最终选择了Nginx来担当Web服务器,并选用了最小连接数法作为负载均衡侧率。这可以让每个应用层服务器获取平均网络连接数,使得每个服务的响应用户数基本相等,从而尽可能提高应用层服务器利用效率。

        得益于个层面分布式架构方案的实施,渔船图纸审查项目质量指标顺利完成。经过全体成员历时10个月的艰苦奋战,我们终于按期完成了项目目标,并于2023年10月完成了项目的验收以及试运行测试,最终于12月底全面正式上线运行。在试运行过程中,项目运行稳定,并获得了某省渔船设计院、审图机构的一致好评。但在项目建设过程中也存在一些不足,例如:图纸存放与系统发布在同一台服务,导致图纸大量存在的情况下,大量空间资源被占用,导致服务器性能略有下降,因而我们采用多服务器部署策略,发布程序占用一台服务器,图纸资源存储另一台服务器,进而解决了因图纸资源占用空间问题导致服务性能下降问题。通过该项目,让我更深刻的意识到,分布式架构方案是现代软件建设的关键技术,它关系着项目的成败,我会继续学习架构技术,使得在今后的项目中更能发挥自身力量。

相关文章:

软件架构之-论分布式架构设计及其实现

论分布式架构设计及其实现 摘要正文 摘要 2023年2月,本人所在集团公司承接了长三角地区某省渔船图纸电子化审查项目开发,该项目旨在为长三角地区渔船建造设计院、渔船审图机构提供一个便捷化的服务平台。在次项目中,我作为项目成员参与了整个…...

零售EDI:Belk Stores EDI需求分析

Belk Stores 成立于 1888 年,是美国历史最悠久的家族百货连锁品牌之一,总部位于北卡罗来纳州夏洛特市。作为美国东南部领先的零售企业,Belk 在16个州拥有近300家门店,主要经营服装、鞋履、美妆、家居用品等多个品类,服…...

LangChain4j入门(六)整合提示词(Prompt)

前言 提示词(Prompt)是用户输入给AI模型的一段文字或指令,用于引导模型生成特定类型的内容。通过提示词,用户可以告诉AI“做什么”、 “如何做”以及“输出格式”,从而在满足需求的同时最大程度减少无关信息的生成。有…...

【HarmonyOS 5】金融应用开发鸿蒙组件实践

【HarmonyOS 5】金融应用开发鸿蒙组件实践 一、鸿蒙生态观察 2024 年 1 月 18 日: 发布 原生鸿蒙操作系统星河版,面向开发者开放申请,余承东宣布鸿蒙生态设备数达 8 亿台;建设银行、邮储银行等完成鸿蒙原生应用 Beta 版本开发。 …...

cv2.VideoWriter_fourcc(*‘mp4v‘)生成的视频无法在浏览器展

看这个博主的博客,跟我碰到的问题的一致,都是使用AVC1写视频时报编码器不存在的异常,手动编译opencv-python或者使用conda install -c conda-forge opencv安装依赖即可。 博主博客:Python OpenCV生成视频无法浏览器播放问题说明及…...

MD编辑器推荐【Obsidian】含下载安装和实用教程

为什么推荐 Obsidian ? 免费 (Typora 开始收费了)Typora 实现的功能,它都有!代码块可一键复制 文件目录支持文件夹 大纲支持折叠、搜索 特色功能 – 白板 特色功能 – 关系图谱 下载 https://pan.baidu.com/s/1I1fSly…...

新书速览|GraphPad Prism图表可视化与统计数据分析:视频教学版

《GraphPad Prism图表可视化与统计数据分析:视频教学版 》 本书内容 《GraphPad Prism图表可视化与统计数据分析:视频教学版 》以GraphPad Prism 10为平台,讲述统计分析软件GraphPad Prism的具体应用方法。在介绍《GraphPad Prism图表可视化与统计数据分析:视频教学…...

波峰波谷策略

这是一个基于数据分布的峰度(kurtosis)和偏度(skewness)的交易策略。 当数据呈现趋势性,并且潜在趋势为正时,我们做多。 当数据呈现趋势性,并且潜在趋势为负时,我们做空。 当趋势发生反转后,我们平仓。 那么,我们如何确定趋势和趋势的强度呢?让我们先来复习一下峰…...

【综述】视频目标分割VOS

目录 1、Associating Objects with Transformers for Video Object Segmentation1)背景知识2)研究方法3)实验结果4)结论 2、Rethinking Space-Time Networks with Improved Memory Coverage for Efficient Video Object Segmentat…...

基于线性回归的数据预测

1. 自主选择一个公开回归任务数据集(如房价预测、医疗数据、空气质量预测等,可Kaggle)。 2. 数据预处理:完成标准化(Normalization)、特征选择或缺失值处理等步骤。 3. 使用线性回归模型进行建模。采用80…...

第5天-python饼图绘制

一、基础饼图绘制(Matplotlib) 1. 环境准备 python 复制 下载 pip install matplotlib numpy 2. 基础饼图代码 python 复制 下载 import matplotlib.pyplot as plt# 数据准备 labels = [1, 2, 3, 4] sizes = [30, 25, 15, 30] # 各部分占比(总和建议100) colors…...

c++学习方向选择说明

文章目录 前言一、什么样的人适合用c找编程相关工作二、c可以投递什么岗位三、应届生c怎么学才可以找到好工作那这样的话,校招生搞c应该怎么学才能凸显自己的优势呢?那有人就问了,那我应该学啥啊? 四、零基础学习c路线 前言 做了…...

采集需要登录网站的教程

有些网站需要用户登录才能显示相关信息,如果要采集这类网站,有以下几个方法: 1. 写发布模块来抓包获取post的数据; 2. 有些采集器内置浏览器获取这些信息,但是经常获取的不准确,可靠性太低; 3. …...

在hadoop中实现序列化与反序列化

在 Hadoop 分布式计算环境中,序列化与反序列化是数据处理的核心机制之一。由于 Hadoop 需要在集群节点间高效传输数据并进行分布式计算,其序列化框架不仅要支持对象的序列化与反序列化,还要满足高效、紧凑、可扩展等特殊需求。本文将深入探讨…...

数据结构*排序

排序的一些相关概念 稳定性 假设在待排序序列中,存在两个元素A和B,A和B的值相同。在排序后,A和B的相对位置没有变化,就说这排序是稳定的。反之不稳定。 内部排序与外部排序 内部排序:数据完全存储在内存中&#xf…...

新浪《经济新闻》丨珈和科技联合蒲江政府打造“数字茶园+智能工厂+文旅综合体“创新模式

5月14日,新浪网《经济新闻》频道专题报道珈和科技在第十四届四川国际茶业博览会上的精彩亮相,并深度聚焦我司以数字技术赋能川茶产业高质量发展创新技术路径,及在成都市“茶业建圈强链”主题推介会上,珈和科技与蒲江县人民政府就智…...

【Linux】第二十三章 控制启动过程

1. 请简要说明 RHEL9的启动过程。 (1)计算机通电。系统固件 (UEFI 或 BIOS) 开机自检 (POST),并初始化部分硬件,然后,固件会寻找启动设备(如硬盘、USB、网络等),并将控制权交给引导…...

深信服golang面经

for range 中赋值的变量,这个变量指向的是真实的地址吗,还是临时变量 不是真实地址,是临时变量 package mainimport "fmt"func main() {slice : []int{4, 2, 3}for _, v : range slice {fmt.Println(v, &v) // 这里的 v 是临…...

基于 Netty + SpringBoot + Vue 的高并发实时聊天系统设计与实现

一、系统架构设计 1.1 整体架构图 ------------------ WebSocket (wss) ------------------ Netty TCP ------------------ | Vue前端 | <-------------------------> | SpringBoot网关 | <------------------> | Netty服务集…...

根据当前日期计算并选取上一个月和上一个季度的日期范围,用于日期控件的快捷选取功能

代码如下&#xff1a; <el-date-picker v-model"value" type"monthrange" align"right" unlink-panels range-separator"至"start-placeholder"开始月份" end-placeholder"结束月份" :picker-options"pic…...

Spring Boot 使用 jasypt配置明文密码加密

引入依赖 <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.4</version> </dependency>添加配置 jasypt:encryptor:password: pssw0rd&Hubt2ec…...

ubuntu下docker安装mongodb-支持单副本集

1.mogodb支持事务的前提 1) MongoDB 版本&#xff1a;确保 MongoDB 版本大于或等于 4.0&#xff0c;因为事务支持是在 4.0 版本中引入的。 2) 副本集配置&#xff1a;MongoDB 必须以副本集&#xff08;Replica Set&#xff09;模式运行&#xff0c;即使是单节点副本集&#x…...

科技赋能,开启现代健康养生新潮流

在科技与生活深度融合的当下&#xff0c;健康养生也迎来了全新的打开方式。无需传统医学的介入&#xff0c;借助现代科学与智能设备&#xff0c;我们能以更高效、精准的方式守护健康。​ 饮食管理步入精准化时代。利用手机上的营养计算 APP&#xff0c;录入每日饮食&#xff0…...

《安徽日报》聚焦珈和科技AI创新:智慧虫情测报护航夏粮提质丰产

5月7日&#xff0c;《安徽日报》焦点新闻版块以《高科技助力田管&#xff0c;确保夏粮丰收——为4300多万亩小麦守好防线》为题&#xff0c;深度报道了农业科技在夏粮生产中的关键作用。其中&#xff0c;珈和科技自主研发的AI虫情测报一体机作为绿色防控、农业智慧化的标杆被重…...

企业级 Go 多版本环境部署指南-Ubuntu CentOS Rocky全兼容实践20250520

&#x1f6e0;️ 企业级 Go 多版本环境部署指南-Ubuntu / CentOS / Rocky 全兼容实践 兼顾 多版本管理、安全合规、最小权限原则与 CI/CD 可复现性&#xff0c;本指南以 Go 官方 toolchain 为主&#xff0c;结合 asdf 实现跨语言统一管理&#xff0c;并剔除已过时的 GVM。支持 …...

MCP 协议传输机制大变身:抛弃 SSE,投入 Streamable HTTP 的怀抱

在技术的江湖里&#xff0c;变革的浪潮总是一波接着一波。最近&#xff0c;模型上下文协议&#xff08;MCP&#xff09;的传输机制就搞出了大动静&#xff0c;决定和传统的服务器发送事件&#xff08;SSE&#xff09;说拜拜&#xff0c;转身拥抱 Streamable HTTP&#xff0c;这…...

Windows 上配置 Docker,Docker 的基本原理和用途,以及如何在 Docker 中运行程序

Windows 系统上的 Docker 安装与使用指南 1. Windows 上配置 Docker 检查系统要求&#xff1a;使用 64 位 Windows 10/11&#xff0c;BIOS 已启用硬件虚拟化&#xff08;VT-x/AMD-V&#xff09;。Windows 版本最好更新到 2004 及以上&#xff08;内部版本19041&#xff09;&am…...

CBCharacteristic:是「特征」还是「数据通道」?

目录 名词困惑&#xff1a;两种中文译法的由来官方定义 & 开发者视角乐高类比&#xff1a;文件夹与文件智能手表实例&#xff1a;Characteristic 长什么样&#xff1f;iOS 代码实战&#xff1a;读 / 写 / 订阅小结 & Best Practice 1. 名词困惑&#xff1a;为什么有两…...

【JavaEE】多线程

线程 在Java中&#xff0c;鼓励多线程编程。进程可以满足并发编程&#xff0c;但是效率不高&#xff08;创建、销毁、调度时间都比较长&#xff0c;这些都消耗在申请资源上了&#xff09;&#xff0c;而线程就不一样。 线程也叫“轻量级进程”&#xff0c;创建、销毁、调度都更…...

docker- Harbor 配置 HTTPS 协议的私有镜像仓库

Harbor通过配置 HTTPS 协议&#xff0c;可以确保镜像传输的安全性&#xff0c;防止数据被窃取或篡改。本文将详细介绍如何基于 Harbor 配置 HTTPS 协议的私有镜像仓库。 1.生成自建ca证书 [rootdocker01 ~]# mkdir -p /liux/softwares/harbor/certs/custom/{ca,server,client…...

[SpringBoot]Spring MVC(5.0)----留言板

Spring留言板实现 预期结果 可以发布并显示点击提交后&#xff0c;显示并清除输入框并且再次刷新后&#xff0c;不会清除下面的缓存 约定前后端交互接口 Ⅰ 发布留言 url : /message/publish . param(参数) : from,to,say . return : true / false . Ⅱ 查询留言 url : /messag…...

Jules 从私有预览阶段推向全球公测

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

vLLM框架高效原因分析

vLLM框架在模型推理中以高效出名&#xff0c;主要基于以下核心原理和技术优化&#xff0c;这些设计使其在处理大语言模型时显著提升性能&#xff1a; 一、PagedAttention&#xff1a;动态显存管理技术 vLLM的核心创新在于PagedAttention&#xff0c;灵感源自操作系统的虚拟内存…...

【Git】常用命令大全

以下是 Git 的常用命令大全&#xff0c;分为几个常见类别&#xff0c;便于理解和使用&#xff1a; 1. 初始化与克隆 初始化本地仓库&#xff1a;git init克隆远程仓库到本地&#xff1a;git clone <repository_url> 2. 添加与提交 添加指定文件到暂存区&#xff1a;git…...

pycharm无需科学上网工具下载插件的解决方案

以下是两种无需科学上网即可下载 PyCharm 插件的解决思路&#xff1a; 方法 1&#xff1a;设置 PyCharm 代理 打开 PyCharm选择菜单&#xff1a;File → Settings → Appearance & Behavior → System Settings → HTTP Proxy在代理设置中进行如下配置&#xff1a; 代理地…...

学习threejs,使用Physijs物理引擎,使用DOFConstraint自由度约束,模拟小车移动

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️Physijs 物理引擎1.1.1 ☘️…...

仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑

幽蓝君发现一个问题&#xff0c;仓颉开发语言距离发布马上一年了&#xff0c;一些知名App已经使用仓颉开发了许多功能&#xff0c;但是网络上关于仓颉开发语言的教程少之又少&#xff0c;系统性的教程更是没有&#xff0c;仓颉官网的文档也远远不如ArkTS详尽。 现阶段对于想学…...

[Git] 初识 Git 与安装入门

告别文件噩梦&#xff1a;初识 Git 与安装入门 嘿&#xff0c;朋友&#xff01;不知道你是不是也遇到过这样的情况&#xff1a;你在写一份重要的文档、报告&#xff0c;或者更常见的&#xff0c;一段代码时&#xff0c;为了安全起见&#xff0c;怕改错了回不去&#xff0c;或者…...

海康威视摄像头C#开发指南:从SDK对接到安全增强与高并发优化

一、海康威视SDK核心对接流程​​ 1. ​​开发环境准备​​ ​​官方SDK获取​​&#xff1a;从海康开放平台下载最新版SDK&#xff08;如HCNetSDK.dll、PlayCtrl.dll&#xff09;。​​依赖项安装​​&#xff1a;确保C运行库&#xff08;如vcredist_x86.exe&#xff09;与S…...

大语言模型 14 - Manus 超强智能体 开源版本 OpenManus 上手指南

写在前面 Manus 是由中国初创公司 Monica.im 于 2025 年 3 月推出的全球首款通用型 AI 智能体&#xff08;AI Agent&#xff09;&#xff0c;旨在实现“知行合一”&#xff0c;即不仅具备强大的语言理解和推理能力&#xff0c;还能自主执行复杂任务&#xff0c;直接交付完整成…...

使用 LibreOffice 实现各种文档格式转换(支持任何开发语言调用 和 Linux + Windows 环境)[全网首发,保姆级教程,建议收藏]

以下能帮助你可以使用任何开发语言&#xff0c;在任何平台都能使用 LibreOffice 实现 Word、Excel、PPT 等文档的自动转换&#xff0c;目前展示在 ASP.NET Core 中为 PDF的实战案例&#xff0c;其他的文档格式转换逻辑同理。 &#x1f4e6; 1. 安装 LibreOffice &#x1f427;…...

CentOS Stream 9 中部署 MySQL 8.0 MGR(MySQL Group Replication)一主两从高可用集群

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《MySQL技术精粹》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、MySQL 8.0 中的高可用方案 2、适用场景 二、环境准备 1、系统环境说明…...

软考中级软件设计师——计算机网络篇

一、计算机网络体系结构 1.OSI七层模型 1. 物理层&#xff08;Physical Layer&#xff09; 功能&#xff1a;传输原始比特流&#xff08;0和1&#xff09;&#xff0c;定义物理介质&#xff08;如电缆、光纤&#xff09;的电气、机械特性。 关键设备&#xff1a;中继器&#…...

RK3568 OH5.1 源码编译及问题

安装编译器和二进制工具 在源码根目录下执行prebuilts脚本&#xff0c;安装编译器及二进制工具。 bash build/prebuilts_download.sh在源码根目录执行如下指令安装hb编译工具&#xff1a; python3 -m pip install --user build/hb使用build.sh脚本编译源码 进入源码根目录&…...

【razor】回环结构导致的控制信令错位:例如发送端收到 SR的问题

一、razor的echo程序 根据对 yuanrongxi/razor 仓库的代码和 echo 测试程序相关实现的分析,下面详细解读 echo 程序中 RTCP sender report(SR)、receiver report(RR)回显的问题及项目的解决方式。 1. 问题背景 在 RTP/RTCP 体系下,SR(Sender Report)由发送端周期性发…...

leetcode hot100:三、解题思路大全:哈希(两数之和、字母异位词分组、最长连续序列)、双指针(移动零、盛最多水的容器、三数之和、接雨水)

哈希 两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按任意顺序返…...

MySQL 8.0 OCP 1Z0-908 161-170题

Q161.Examine this command, which executes successfully: cluster.addInstance ( ‘:’,{recoveryMethod: ‘clone’ 1}) Which three statements are true? (Choose three.) A)The account used to perform this recovery needs the BACKUP_ ADMIN privilege. B)A target i…...

onlyoffice 源码 调试说明 -ARM和x86双模式安装支持

很多用户在调试onlyoffice源码最大的问题是如何搭建环境,这个难度很高,下面提供一键安装的方式,让普通用户也能快速调试源码。 OnlyOffice Document Server 基于源码运行的容器调试模式&#xff0c;凭借 Docker 容器化技术的核心优势&#xff0c;为开发者提供了跨平台、高兼容性…...

workflow:高效的流式工作架构

引言 workflow是sougou的一款开源框架 主要是以请求回应的模式解决各自网络/IO任务而发明的 一.workflow的任务流 1.workflow都封装了哪些任务流 以请求回应的模式来解释 ① 网络层 服务端 在服务端的request 相当于发送了一个获取客户端请求的请求&#xff0c;response相当…...

音视频之H.265/HEVC速率控制

H.265/HEVC系列文章&#xff1a; 1、音视频之H.265/HEVC编码框架及编码视频格式 2、音视频之H.265码流分析及解析 3、音视频之H.265/HEVC预测编码 4、音视频之H.265/HEVC变换编码 5、音视频之H.265/HEVC量化 6、音视频之H.265/HEVC环路后处理 7、音视频之H.265/HEVC熵编…...