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

前提

wsl中不配置互通,一个docker服务不能通过localhost地址访问另外的服务

配置

打开或创建位于 %UserProfile% 目录下的 .wslconfig 文件(例如 C:\Users\你的用户名.wslconfig)。

[wsl2] memory=4GB # 分配给 WSL 2 的内存大小 processors=2 # 分配给 WSL 2 的 CPU 核心数 localhostForwarding=true # 是否启用 localhost 转发 [experimental] autoMemoryReclaim=gradual # 开启自动回收内存,可在 gradual, dropcache, disabled 之间选择 networkingMode=mirrored # 开启镜像网络 dnsTunneling=true # 开启 DNS Tunneling firewall=true # 开启 Windows 防火墙 autoProxy=true # 开启自动同步代理 sparseVhd=true # 开启自动释放 WSL2 虚拟硬盘空间

重启服务

管理员身份运行PowerShell:

停止WSL: wsl --shutdown

启动WSL: wsl

编辑
2024-11-12
遇到的问题
00

提示

org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.

这个错误信息表明你上传的文件大小超过了Tomcat服务器允许的最大限制。默认情况下,Tomcat对文件上传的大小有限制,通常是1MB(1048576字节)。

解决方法

application.yml增加文件大小的配置

yml
spring: servlet: multipart: max-file-size: 20MB max-request-size: 20MB

java配置类

java
import org.springframework.boot.web.servlet.MultipartConfigFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.util.unit.DataSize; import javax.servlet.MultipartConfigElement; @Configuration public class FileUploadConfig { @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); // 设置单个文件最大值 factory.setMaxFileSize(DataSize.ofMegabytes(2)); // 2MB // 设置总上传数据总大小 factory.setMaxRequestSize(DataSize.ofMegabytes(2)); // 2MB return factory.createMultipartConfig(); } }
编辑
2024-11-08
实用工具
00

说明

RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。

Spring Cloud Stream 是一个用于构建基于消息的微服务应用框架。它基于 SpringBoot 来创建具有生产级别的单机 Spring 应用,并且使用 Spring Integration 与 Broker 进行连接。

Spring Cloud Stream 提供了消息中间件配置的统一抽象,推出了 publish-subscribe、consumer groups、partition 这些统一的概念。

Spring Cloud Stream 内部有两个概念:Binder 和 Binding。

  • Binder: 跟外部消息中间件集成的组件,用来创建 Binding,各消息中间件都有自己的 Binder 实现。

比如 Kafka 的实现 KafkaMessageChannelBinder,RabbitMQ 的实现 RabbitMessageChannelBinder 以及 RocketMQ 的实现 RocketMQMessageChannelBinder。

  • Binding: 包括 Input Binding 和 Output Binding。

Binding 在消息中间件与应用程序提供的 Provider 和 Consumer 之间提供了一个桥梁,实现了开发者只需使用应用程序的 Provider 或 Consumer 生产或消费数据即可,屏蔽了开发者与底层消息中间件的接触。 文档

下载并启动

下载地址

启动 Name Server

sh bin/mqnamesrv

启动 Broker

sh bin/mqbroker -n localhost:9876
编辑
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