- 博客(561)
- 资源 (52)
- 收藏
- 关注
原创 史上最全的 Java 集合容器详解(3万字)
集合概述为什么要使用集合数组有如下限制:数组初始化后大小不可变数组只能按索引顺序存取而集合提高了数据存储的灵活性,Java 集合不仅可以用来存储不同类型不同数量的对象,还可以保存具有映射关系的数据Java 集合概览Java 集合也叫作容器,定义在 java.util 包中,支持泛型。主要是由两大接口派生而来:一个是 Collecton 接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。Java 集合使用统一的 Iterator 遍历,尽量不要使用遗留接口。注:图
2021-10-21 10:34:06 794
原创 「springboot 2.x 系列」validation数据校验详细说明
源码:https://github.com/langyastudio/langya-tech/tree/springboot/validationJSR(Java Specification Requests,Java规范请求)是对 Java 新功能的请求,是 JCP 组织的一部分。Java 社区的参与者们通过 JCP 组织,利用自己的创意来影响 Java 语言的发展。在 JSR 中,jar 的包名一般以 javax 开头,如javax.validation。JSR 只提供功能规范定义,不提供实现。.
2021-09-08 17:57:57 882
原创 「springboot 2.x 系列」如何彻底解决跨域问题
源码:https://github.com/langyastudio/langya-tech/tree/springboot/cors说到跨域访问,必须先解释一个名词:同源策略。所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同、Host相同、端口相同的条件,否则访问将被禁止,该访问也就被称为跨域访问。虽然跨域访问被禁止之后,可以在一定程度上提高了应用的安全性,但也为开发带来了一定的麻烦。比如:我们开发一个前后端分离的易用,页面及 js 部署在一个主机的 nginx 服务中,.
2021-09-07 14:48:29 591
原创 「springboot 2.x 系列」exception全局异常处理
源码:https://github.com/langyastudio/langya-tech/tree/springboot/exception使用 @ControllerAdvice 和 @ExceptionHandler 处理全局异常使用 AbstractErrorController 处理 Controller error 级别的异常@ControllerAdvice 可以理解为 Controller 共同逻辑的统一处理类,这样基于 @ControllerAdvice 再配合 @Exce.
2021-09-07 08:55:24 484
原创 「springboot 2.x 系列」整合mybaits数据库开发框架
源码:https://github.com/langyastudio/langya-tech/tree/springboot/mybatisJDBCHibernateJPAMyBatisDataSourceSessionFactoryEntityManagerFactorySqlSessionFactoryConnectionSessionEntityManagerSqlSessionHibernate / JPA这类 ORM 干的主要工作就是把 Re.
2021-09-03 18:08:25 402
原创 「springboot 2.x 系列」多线程异步调用Async
先看 spring boot 2.x 深度理解定时任务schedule基于上述代码修改源码:https://github.com/langyastudio/langya-tech/tree/springboot/async官方文档: https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#scheduling-annotation-support工作中经常涉及异步任务,通常是使用多线.
2021-08-17 09:07:31 323
原创 「springboot 2.x 系列」深度理解定时任务schedule
先看 spring boot 2.x actuator 监控/健康检查/审计/统计基于上述代码修改源码:https://github.com/langyastudio/langya-tech/tree/springboot/scheduling官方文档: https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#scheduling-annotation-support在很多应用程序中.
2021-08-16 17:49:58 378
原创 「springboot 2.x 系列」actuator 监控/健康检查/审计/统计
先看 spring boot 2.x 日志log4j2会用吗?基于上述代码修改源码:https://github.com/langyastudio/langya-tech/tree/springboot/actuator官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpointsSpring Boot 提供了一个 Actuator,可以帮助你监控和管理 Sp.
2021-08-13 11:47:53 1029
原创 「springboot 2.x 系列」日志log4j2会用吗?
先看 spring boot 2.x properties 配置文件详解基于上述代码修改日志本质上属于 jdk 的范畴日志是进行调试和分析的重要工具。Logback、Log4j2等都可以作为日志提供者。JDK LoggingJava 标准库内置了日志包 java.util.logging 。定义了 7 个日志级别,默认级别是 INFO,从严重到普通:SEVEREWARNINGINFOCONFIGFINEFINERFINEST缺点: 难用!Logging 系统在 JV.
2021-08-12 20:53:28 334
原创 「springboot 2.x 系列」package打包与devtools
先看spring boot 2.x properties 配置文件详解基于上述代码修改devtools 开发者工具在开发阶段,我们经常要修改代码,就需要不断的重启 Spring Boot 应用,这样很麻烦。Spring Boot 提供了一个开发者工具,可以监控 classpath 路径上的文件。只要源码或配置文件发生修改,Spring Boot 应用可以自动重启。在开发阶段,这个功能比较有用。要使用这一开发者功能,只需添加如下依赖到 pom.xml 文件中:<dependency>.
2021-08-11 13:46:42 373
原创 「springboot 2.x 系列」properties 配置文件详解
先看 spring boot 2.x restful web应用基于上述代码修改Spring Boot 允许在一个配置文件中针对不同 Profile 进行配置Spring Boot 在未指定 Profile 时默认为 defaultSpring Boot 提供了 @ConfigurationProperties 注解,可以非常方便地把一段配置加载到一个 Bean 中官方文档:https://docs.spring.io/spring-boot/docs/current/refe.
2021-08-10 20:44:56 843
原创 RAID 几张图让你完全理解独立磁盘冗余阵列
RAID,即独立磁盘冗余阵列,是将多个独立的硬盘整合成一个存储单元的数据存储技术。RAID 类型有多种,分别提供不同级别的性能、存储容量和可靠性。RAID 0RAID 0 组合两个或更多硬盘以提高性能和容量,但不提供容错功能。单个硬盘出现故障将导致阵列中的的所有数据丢失。RAID 0 对于需要高价格/性能平衡的非关键系统非常有用。RAID 1RAID 1 通常由两个硬盘来执行。硬盘中的数据会进行镜像,在硬盘出现故障时提供容错保护功能。读取性能得到提高,而写入性能与单个硬盘相似。可承受单个硬盘出
2021-08-09 15:23:57 2354
原创 「springboot 2.x 系列」restful web 应用
先看 spring boot 2.x 零基础快速入门基于上述代码修改使用 @RestController 可以方便地编写 REST 服务,Spring 默认使用 JSON 作为输入和输出。1、编写 RestController编写 Rest Controller 只需要遵循以下要点:总是标记 @RestController 而不是 @Controller、@Component使用 @RestController 替代 @Controller 后,每个方法自动变成 API 接口方法。输入和.
2021-08-03 11:57:58 210 2
原创 Java8 用法优雅的函数式编程与stream,看这一篇就够了!
Java 不支持单独定义函数,但可以把静态方法视为独立的函数,把实例方法视为自带 this 参数的函数。Java 平台从 Java 8 开始,支持函数式编程。函数式编程(Functional Programming)就是一种抽象程度很高的编程范式,把函数作为基本运算单元,函数可以作为变量,还可以返回函数。Java 8 中的函数(方法)是“值”的一种新的形式,可以将方法作为参数进行传递。而作为参数进行传递的方法主要是 Lambda表达式 和 方法引用。其中:单方法接口被称为 FunctionalIn
2021-07-28 14:34:09 2973 2
原创 「springboot 2.x 系列」零基础快速入门
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”…Most Spring Boot applications need very little Spring configuration.Spring Boot 和 Spring 的关系就是整车和零部件的关系,它们不是取代关系。1、spring boot 简介Spring
2021-07-27 15:18:35 240
原创 Web浏览器没有Flash如何播放RTMP协议直播
各大主流浏览器在很早的时候就已声明 2020 年底不支持 Adobe Flash。所以已经线上运行的项目以及涉及直播的项目,都会涉及一个问题 : “没有 Adobe Flash 在 Web 浏览器端如何播放 RTMP 直播流?”还好有先见之明,我参与涉及直播的项目已经在 20 年初提前解决了该问题1、优选方案需要流媒体服务器支持某种播放协议,例如HTTP-FLV、HLS等协议Web 浏览器HTTP-FLV、HLS移动浏览器HLS、FLV(需要考虑兼容性)移动Native or
2021-01-20 20:36:12 4961
转载 PHP8 新特性
PHP 8.0 是 PHP 语言的一个主版本更新。它包含了很多新功能与优化项, 包括 JIT、命名参数、联合类型、注解、构造器属性提升、match 表达式、nullsafe 运算符、,并改进了类型系统、错误处理、语法一致性。即时编译PHP 8 引入了两个即时编译引擎。 Tracing JIT 在两个中更有潜力,它在综合基准测试中显示了三倍的性能, 并在某些长时间运行的程序中显示了 1.5-2 倍的性能改进。关于 JIT 对 PHP 8 性能的贡献命名参数 RFCPHP 7htmlspecia
2021-01-08 18:13:02 2078
原创 Linux-CentOS PHP 获取内存/CPU/负载/网络带宽数据包/磁盘IO读写等监控指标
基于Linux CentOS系统获取内存、CPU、负载、网络带宽、网络数据包率、磁盘空间、磁盘IO、磁盘读写等指标不说原理,直接上代码1、代码<?php/** * 系统监控数据 */class SystemMonitor{ /** * 服务器运行时间 * * @return string */ public function GetUpTime() { if (false === ($str = file_
2021-01-07 18:06:42 1221
原创 《直播从零开始》SRS 利用集群提高并发量 支持更多的推流与播放
如何支持更多的人推流?如何支持更多的人观看?这本质上就是系统的水平扩展能力。1、源站集群-更多推流在SRS的角色中,Edge主要解决播放或下行的扩展能力,而Origin则是解决上行或推流的扩展能力,比如需要推1万路流。1.1 Vhost方案如下图所示:此时需要终端指定不同的vhost1.2 源站集群方案基于Origin Cluster源站集群扩展源站,如下图所示:两个Origin服务器之间会互相查询流,若Edge请求的流不在本源站上,会将Edge定向到有流的Origin由于源站
2021-01-04 17:09:51 2974 1
原创 Linux-CentOS docker 配置与调试
1. docker 配置1.1 存储位置可以使用 docker system info | grep "Root Dir" 查看当前使用的存储位置。与 Docker 相关的本地资源默认存放在 /var/lib/docker/ 目录下,以 aufs 文件系统为例,其中 container 目录存放容器信息,graph 目录存放镜像信息,aufs 目录下存放具体的镜像层文件1.2 配置文件使用 systemd 的系统(如 Ubuntu 16.04、Centos 等)的配置文件在 /etc/docker
2020-12-21 17:06:35 283
原创 Linux-CentOS docker 容器常用操作详解
1. 启动/停止容器新建并启动一个srs镜像的容器$ docker run -it --restart=always -p 1985:1985 -v /dev:/dev2 -v /mnt/nfs:/mnt/volume1 --name srs-service srs–restart=always 表示开机启用-p 1985:1985 表示主机端口与docker端口的映射-v /mnt/nfs:/mnt/volume1 表示本机/mnt/nfs目录挂载到容器/mnt/volume1目录srs
2020-12-21 17:03:15 305
原创 Fiddler 实现手机抓包详解
1、Fiddler 简介Fiddler 是一款强大的抓包工具,原理是以 web 代理服务器的形式进行工作的:2、Fiddler 配置2.1 允许监听httpsFiddler 如果抓取 https 协议会话需要进一步配置,在 Tools ->Options 菜单下,选择HTTPS标签并配置如下:2.2 允许远程连接手机抓取需要配置远程连接,在 Tools ->Options 菜单下,选择Connections标签并配置如下:监听端口 8888 并允许远程连接防火墙需要开放
2020-12-15 15:58:17 73130 25
原创 Linux-CentOS 最大打开文件数和进程数
Linux 系统对打开文件数和进程数有限制,默认限制为1024,它是一种简单有效的实现资源限制的方式。但当单进程的并发量较大时,1024的限制很容易超标,报告 too many open files 的错误。为了让系统能够支持更大的并发,就需要修改默认的限制数。1、查看最大打开文件数ulimit -n可以通过 ulimit -a查看更多的系统限制值2、修改最大文件数与进程数终端可以通过执行 ulimit -HSn 10240命令的方式临时生效,这里介绍永久生效的方法修改 limits.co
2020-12-04 18:39:39 5082
原创 《直播从零开始》SRS 回调授权与管理
1、HTTP回调HttpCallBack事件:发生该事件时,回调指定的HTTP地址HTTP地址:可以支持多个,以空格分隔,SRS会依次回调这些接口数据传输:SRS将数据POST到HTTP接口修改配置文件配置文件需要开启http_hooks:listen 1935;max_connections 1000;vhost __defaultVhost__ { http_hooks { enabled on; on_con
2020-11-26 17:06:03 2797
原创 《直播从零开始》SRS Reload不中断服务
SRS 配置支持 Reload,即在不中断服务的前提下替换应用配置文件并生效1、配置方式修改配置文件,相关配置项如下:#do not support reload.daemon off;# Whether auto reload by watching the config file by inotify.inotify_auto_reload on;如果服务器支持使用inotify_auto_reload,则配置文件替换更新后直接生效,无需调用命令行进行手动reload2、应用场景
2020-11-26 14:56:23 1073
原创 《直播从零开始》SRS RTMP/HLS低延时模式
RTMP延时特点:延迟较低:比起YY的那种UDP私有协议,RTMP算延迟大的(延迟在1-3秒),比起HTTP流的延时(一般在10秒以上)RTMP算低延时。一般的直播应用,只要不是电话类对话的那种要求,RTMP延迟是可以接受的。在一般的视频会议(参考SRS的视频会议延时)应用中,RTMP延时也能接受,原因是别人在说话的时候我们一般在听,实际上1秒延时没有关系,我们也要思考(话说有些人的CPU处理速度还没有这么快)。有累积延迟:技术一定要知道弱点,RTMP有个弱点就是累积误差,原因是RTMP基于TCP不
2020-11-25 21:10:37 3736
原创 《直播从零开始》SRS 部署分发HLS与FLV服务
1、HLS 服务HLS 的主要优势是:性能高:和HTTP一样穿墙:和HTTP一样原生支持很好:IOS上支持完美,Android 3 以上支持。PC/HTML5 or flash上现在也有各种as插件支持HLSHLS的主要劣势是:实时性差:基本上HLS的延迟在10秒以上文件碎片:若分发HLS,码流低,切片较小时,小文件分发不是很友好。特别是一些对存储比较敏感的情况,譬如源站的存储,嵌入式的SD卡编写配置文件hls.conf# 安装后,存在默认的配置文件/usr/local/srs/c
2020-11-25 18:58:23 1282
原创 《直播从零开始》SRS 安装与部署RTMP服务
SRS主要运行在Linux系统上,譬如Centos和Ubuntu,包括x86、x86-64、ARM和MIPS。其他的OS可以使用 srs-docker开发和运行,比如macOS、Windows等。SRS可以在一台服务器上运行集群,或者在多台服务器上也可以运行集群。SRS是单进程模型,不支持多进程;您可以使用 go-oryx 支持多进程。1、安装测试环境CentOS 8 x64基于安装包安装下载与安装SRS发布版本提供安装包的下载,访问 ossrs.net 下载安装包,如:SRS-CentOS7
2020-11-25 16:10:30 2262
原创 soar-php SQL语句优化与重写的自动化工具
小米公司开源的 SOAR(SQL Optimizer And Rewriter) 是一个对 SQL 进行优化和改写的自动化工具。 由小米人工智能与云平台的数据库团队开发与维护。1、功能特点跨平台支持(支持 Linux, Mac 环境,Windows 环境理论上也支持,不过未全面测试)目前只支持 MySQL 语法族协议的 SQL 优化支持基于启发式算法的语句优化支持复杂查询的多列索引优化(UPDATE, INSERT, DELETE, SELECT)支持 EXPLAIN 信息丰富解读支持 S
2020-11-20 15:43:35 621
转载 《直播从零开始》SRS 带宽测试
视频很卡,播放不了,缓冲区突然很大,推流上不来,都有可能是带宽过低,SRS支持测试客户端到服务器的带宽。SRS配置SRS配置一般是单独加一个vhost支持测速。SRS的带宽测试默认配置位于安装目录下的conf/bandwidth.conf。譬如:listen 1935;vhost __defaultVhost__ {}vhost bandcheck.srs.com { enabled on; chunk_size 65000;
2020-11-17 15:27:08 1375 3
原创 《直播从零开始》常用的流媒体网络协议
流媒体协议比较常用的有RTMP、HTTP-FLV、HLS等。古老的用于监控的RTSP -> RTMP -> HTTP渐进式下载 -> HTTP流 -> HLS和HDS -> DASH -> 私有的WebSocket等。RTMPS/E/T秒级延迟,广泛应用于低延时直播,常用于PC端或客户端(PC or App)。RTMPS/E是加密协议,RTMPT是HTTP穿墙协议。浏览器播放RTMP源,需要安装Flash插件。在早期的PC时代,浏览器默认都会安装Flash插件。但
2020-11-16 17:50:00 454
原创 《直播从零开始》SRS与主流流媒体服务器的对比
目前主流的流媒体服务器主要有 nginx-rtmp、crtmpd、wowza、red5、adobe fms等。https://github.com/winlinvip/srs/tree/3.0release#performance支持的网络协议对比协议是服务器的基础,协议决定了关键应用场景,譬如毫秒级别延时只能用udp,秒级别延迟用RTMP,十秒级别可以用HLS。FeatureSRSNGINXCRTMPDAMSWOWZARTMPStableStableStabl
2020-11-13 18:08:10 3408
原创 Chrome 80 Cookie跨域 Samesite Lax 的错误
本地局域网前后端分离的项目,前端是192.168.123.90,后端是192.168.123.2。今天早上发现用户登录报告登录失败(本质原因是无法设置cookie)。一开始以为后端出问题了,但最近没改用户登录的相关逻辑,后来换火狐、edge 是可以的,并且有些人的 Google 可以正常登录。有问题的Google浏览器的调试信息报告以下错误:设置cookie时提示:This set-cookie didn't specify a "SameSite" attribute and was defaulte
2020-07-30 12:55:49 19471 5
原创 C# 未能创建 SSL/TLS 安全通道/未能为 SSL/TLS 安全通道建立信任关系
1、请求被中止: 未能创建 SSL/TLS 安全通道ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;SecurityProtocolType.Tls11 可以根据实际情况换成别的版本协议2、基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系 //Trust all certificate...
2020-04-24 14:26:35 3455
转载 MediaDevices.getUserMedia undefined 的问题
通过 MediaDevices.getUserMedia() 获取用户多媒体权限时,需要注意其只工作于以下三种环境:1.1 localhost 域开启了 HTTPS 的域使用 file:/// 协议打开的本地文件其他情况下,比如在一个 HTTP 站点上,navigator.mediaDevices 的值为 undefined。如果想要 HTTP 环境下也能使用和调试 MediaDevic...
2020-03-31 15:03:03 6579
原创 SQLite 数据类型和注释comment
SQLite 是一个进程内的库,实际操作时直接访问其存储文件。实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它的数据库就是一个文件,由于 SQLite 本身是 C 写的,而且体积很小,所以经常被集成到各种应用程序中,甚至在 iOS 和 Android 的 App 中都可以集成。1.0 SQLite 存储类SQLite 支持列的亲和类型概念。任何列仍然可以存储任何类型...
2020-01-06 17:36:06 14043
原创 PHP 实现敏感词过滤(附敏感词库)
敏感词、文字过滤是一个网站必不可少的功能,如何设计一个好的、高效的过滤算法是非常有必要的。在实现敏感词过滤的算法中,我们必须要减少运算,而 DFA 在 DFA 算法中几乎没有什么计算,有的只是状态的转换。这里展示的是使用PHP实现简单的敏感词过滤,调用StringFiter类时,传入 $sorStr, 就可以将 $sorStr 中敏感的词汇转换为 ** 。代码如下:$GLOBALS['g_b...
2019-12-10 16:14:57 7382
转载 DevOps 运维开源工具有哪些
一、开发工具版本控制&协作开发1.版本控制系统 GitGit是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。2.代码托管平台 GitLabGitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。3.代码评审工具 GerritGerrit是一个免费、开放源代...
2019-10-24 16:09:37 612
原创 Linux-Centos docker 导入和导出镜像 离线安装镜像
实际使用中主要为了解决无法访问外网的情况下,安装部署 docker 镜像的目的。Docker 提供了 docker save 和 docker load 命令,用以将镜像保存为一个文件,然后传输到另一个位置上,再加载进来。1. 导出镜像使用 docker save 命令可以将镜像保存为归档文件。比如我们希望保存这个 srs 镜像:$ docker image ls srsREPOSIT...
2019-09-25 14:23:05 6061
原创 Linux-Centos docker 同主机/host 容器间网络互联互通
对于复杂的应用,不可避免需要多个服务部署在多个容器中,并且服务间存在网络互联通信的情况。比如服务 A 需要连接另一个 mysql 的容器。1. 新建网络先创建一个新的 Docker 网络docker network create -d bridge --subnet 172.27.0.0/16 cloud-net-d 参数指定 Docker 网络类型,有 bridge overlay。其...
2019-09-25 14:08:25 984
最简单的基于FFmpeg的推流器(以推送RTMP为例)
2015-03-27
VS2010 VS2012 VS2013 VS2015 VS2017 VS2019代码自动注释插件Doxygen
2015-03-13
PCM声音波形显示 多份资料集合 超值!
2014-11-10
基于c++音频波形图的显示 很好用
2014-07-23
AForge.NET帮助文档 2.2.5 最新版
2014-07-19
AForge.NET Framework-2.2.5.zip 源码+示例 支持Framework4.0 最新版
2014-07-19
WeifenLuo.WinFormsUI.Docking.dll 源码+示例 支持framwork4 最新版
2014-07-19
ArcGIS.10.2.License.Manager+Crack
2013-09-17
Visual Studio.NET使用技巧手册 很好很强大
2013-07-02
C# 浏览图片的控件 很好很强大
2013-07-01
VC助手(visual assist x 10.7.1925.0)支
2013-06-17
fences win7栅栏 桌面图标分类管理工具
2013-06-16
ImageMagick 最新版
2013-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人