编辑
2024-11-08
实用工具
00

简介

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

官网

sentinel的特征

  • 丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等
  • 完备的实时监控: Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况
  • 广泛的开源生态: Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel
  • 完善的 SPI 扩展点: Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等

sentinel的主要优势和特性

  • 轻量级,核心库无多余依赖,性能损耗小
  • 方便接入,开源生态广泛
  • 丰富的流量控制场景
  • 易用的控制台,提供实时监控、机器发现、规则管理等能力
  • 完善的扩展性设计,提供多样化的 SPI 接口,方便用户根据需求给 Sentinel 添加自定义的逻辑

Sentinel和Hystrix对比

SentinelHystrix
隔离策略信号量隔离线程池隔离/信号量隔离
熔断降级策略基于响应时间或失败比率基于失败比率
实时指标实现滑动窗口滑动窗口(基于 RxJava)
规则配置支持多种数据源支持多种数据源
扩展性多个扩展点插件的形式
基于注解的支持支持支持
限流基于 QPS,支持基于调用关系的限流有限的支持
流量整形支持慢启动、匀速器模式不支持
系统负载保护支持不支持
控制台开箱即用,可配置规则、查看秒级监控、机器发现等不完善
常见框架的适配Servlet、Spring Cloud、Dubbo、gRPC 等Servlet、Spring Cloud Netflix
编辑
2024-10-30
项目分享
00

前提

业务需要播放rtsp视频流需要在本地实现推流功能

需要两个软件:

  • ffmpeg
  • mediamtx

mediamtx

github下载

找到对应的压缩下载,windows举例 解压后双击打开.exe文件

ffmpeg安装

官网下载地址

选择一个对应版本,windows举例

下载压缩包,解压在D盘

在系统环境变量Path

添加目录D:\ffmpeg-7.1-full_build\ffmpeg-7.1-full_build\bin

测试是否成功

ffmpeg -version

输入命令开启推流 视频地址为:D:\videos\video2.mp4

新开一个命令行输入以下命令即可推流

ffmpeg -re -i D:\videos\video2.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/test
编辑
2024-10-29
实用工具
00

前提

由于业务需要得在前端页面上播放视频,但是摄像头实时的视频流是rtsp格式的,前端不能直接显示rtsp视频流

rtsp流简介

RTSP(Real Time Streaming Protocol,实时流协议)是一种网络应用层协议,专为在网络上传输实时数据而设计。以下是对RTSP视频流的详细介绍:

基本概念

定义:RTSP是由RealNetworks和Netscape共同提出的应用层协议,旨在IP网络上高效地传输流媒体数据。它允许客户端向服务器发送播放、暂停、快进等控制命令,但本身并不传输流媒体数据,而是依赖下层传输协议如RTP/RTCP来完成数据传输。 作用:RTSP主要用于控制具有实时特性的数据的发送,为流媒体服务器提供了远程控制功能。

工作原理

消息交互流程:RTSP使用TCP协议传输,其消息交互流程包括创建RTSP套接字、等待客户端连接、接收RTSP消息请求、处理请求、发送RTSP消息响应以及会话结束后释放资源等步骤。 传输机制:RTSP本身不传输媒体数据,而是通过RTP(实时传输协议)来传输音视频数据。RTP通常使用UDP协议来传输数据,以减少延迟。 URL格式:RTSP的URL格式一般为“rtsp://host[

]/[abs_path]/content_name”,其中host为有效的域名或IP地址,port为端口号(缺省为554),abs_path为绝对路径,content_name为内容名称。

主要特点

  • 可扩展性:新方法和参数可以很容易地加入RTSP,不同媒体服务器可以根据功能支持不同的请求集。
  • 易解析:RTSP可由标准HTTP或MIME解析器解析。
  • 安全性:RTSP使用网页安全机制。
  • 独立于传输:RTSP可以使用不可靠数据报协议(EDP)、可靠数据报协议(RDP)等,如果需要实现应用级可靠,则可以使用可靠流协议。
  • 多服务器支持:每个流可以放在不同服务器上,用户端自动与不同服务器建立几个并发控制连接,媒体同步在传输层执行。
  • 记录设备控制:协议可以控制记录和回放设备。
  • 流控与会议开始分离:仅要求会议初始化协议提供,或用来创建唯一会议标识号。特殊情况下,可以使用SIP或H.323来邀请服务器入会。
  • 适合专业应用:通过SMPTE时标,RTSP支持帧级精度,允许远程数字编辑。
  • 演示描述中立:协议没强加特殊演示或元文件,可传送所用格式类型;然而,演示描述至少必须包括一个RTSP URL。
  • 代理与防火墙友好:协议可由应用和传输层防火墙处理。防火墙需要理解SETUP方法,为UDP媒体流打开一个缺口。
  • HTTP友好:RTSP明智地采用HTTP观念,使现在结构都可重用。结构包括Internet内容选择平台(PICS)。由于在大多数情况下控制连续媒体需要服务器状态,RTSP不仅仅向HTFP添加方法。

应用场景

RTSP广泛应用于视频监控、视频会议、在线视频播放等需要实时视频流传输的场景。在这些场景中,RTSP作为控制协议,负责管理视频流的播放、暂停、停止等操作,而RTP则负责实际的视频数据传输。

综上所述,RTSP作为一种专为实时数据流传输设计的网络协议,在视频监控、视频会议等领域发挥着重要作用。

编辑
2024-10-28
项目分享
00

生成式 AI 应用创新引擎

开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。

比 LangChain 更易用。

Docker部署

克隆仓库

git clone https://github.com/langgenius/dify.git

启动 Dify

进入 Dify 源代码的 Docker 目录

cd dify/docker

复制环境配置文件

cp .env.example .env

启动 Docker 容器

根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。你可以通过 $ docker compose version 命令检查版本,详细说明请参考 Docker 官方文档:

如果版本是 Docker Compose V2,使用以下命令:

docker compose up -d

如果版本是 Docker Compose V1,使用以下命令:

docker-compose up -d

最后检查是否所有容器都正常运行:

docker compose ps
编辑
2024-10-25
学习记录
00

前提

有些场景下,我们需要在容器内部调用宿主机的命令,比如使用rsync给另外的机器发送图片,但是rsync安装在宿主机上,java直接执行rsync命令是会报错,提示找不到rsync命令

就拿rsync举例

docker镜像挂载存储卷

一般rsync的安装都是在 /usr/bin/rsync 所以我们需要挂载这个地址

-v /usr/bin/rsync:/usr/bin/rsync

只挂载这个地址会提示libpopt.so.0 缺失,还需要挂载配置文件

-v /usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu

完整的命令

docker run -v /usr/bin/rsync:/usr/bin/rsync -v /usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu -d --name test-app --restart always -p 3001:3001 --net sup-network test-app

修改java调用rsync命令

原来是

rsync -vzrtopg --progress --delete --chmod=755 /tmp/tempImg202410255916281385931068271.jpg 192.168.100.103::imagePull/20240929/M01300020240929001/

现在调整为

/usr/bin/rsync -vzrtopg --progress --delete --chmod=755 /tmp/tempImg202410255916281385931068271.jpg 192.168.100.103::imagePull/20240929/M01300020240929001/