openResty
介绍
OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。
OpenResty 的目标是让你的 Web 服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。”
引用站外地址
Op ...
自建VPN订阅工作流
前提准备不想搭建可以使用博主搭建的,下滑就能找到
github账号
cloudflare账号
引用站外地址
用到的Onezyh开源的项目
https://github.com/Onezyh/Worker-Vless-2-USB
引用站外地址
YouTuBe视频教程
https://www.youtube.com/watch?v=hTohhSFMvBs
开始搭建部署部署workers
部署
选择Workers和pages页面,然后点击创建应用程序。
开始创建worker,创建完后部署。
编辑代码
部署完成后点击编辑代码。
打开Onezyh开源的项目。
将_worker.js的代码内容复制粘贴到worker中然后从新部署。
部署自动获取订阅信息站点
...
JIT
JIT 编译器的引入JIT 编译器,也称为即时编译器,它是 JVM 的重要组成部分。与我们经常用的生成 Java 字节码的javac编译器不同,JIT 编译器是实现 Java 程序执行效率提升的核心利器。
经常有面试官会提出这样的一个问题:Java 程序是解释执行还是编译执行
源码程序.java文件,通过javac命令编译成.class字节码,最后通过java命令在虚拟机中利用解释器来执行代码。其中虚拟机的解释器作用,就是将字节码的操作指令和真正的平台体系之间的指令建立映射,比如把 Java 的load指令转换成native code的load指令,以此来完成程序的执行。
其实,准确的说,Java 既有解释执行,也有编译执行,其工作流程大致可以用如下图来描述。
其中,JIT 编译器会将热点代码编译成本地平台相关的机器码,并进行各种层次的优化,从而实现程序执行效率的提升。
JIT 编译器的出现,可以说补强了虚拟机边运行边解释的低性能问题。
也许有的同学会提出这样的疑问,既然引入了 JIT 编译器可以显著提升程序执行效率,那 HotSpot 为什么不直接采用 JIT 编译器来执行呢?
简 ...
Redis 主从复制
主从模式Redis 单机部署一般存在如下几个问题:
机器故障,导致 Redis 不可用,数据丢失
容量瓶颈:容量不能水平扩展
QPS 瓶颈:一台机器的处理能力、网络宽带总是有限的,如果能够划分一些流量到其他机器,可以有效解决 QPS 问题
Redis 提供的主从复制功能,实现了一份数据存在多个相同的副本,它是实现 Redis 高可用的基础,作用有如下几个:
数据冗余:主从复制实现了数据的热备份,是 Redis 持久化之外的一种数据冗余方式
故障恢复:当主节点出现故障时,可以将从节点晋升为主节点继续提供服务,实现快速的故障恢复
读写分离:主从复制可以实现读写分离,主节点写,从节点读,读写分离提高了服务器的负载能力
高可用的基石:主从复制是哨兵和集群能够实施的基础,因此说主从复制是 Redis 高可用的基础
配置主从复制默认情况下,Redis 所有节点都是主节点,节点与节点之间互不干涉,而参与主从复制的节点则是划分了主节点(master)和从节点(slave),它具有如下几个特点:
主节点下有一个或者多个从节点
每一个从节点只能有一个主节点
数据的复制是单向的,只能由主节点复制到 ...
JMH - Java 代码性能测试
JMH - Java 代码性能测试的终极利器、必须掌握JMH 介绍那么如何对 Java 程序进行一次精准的性能测试呢?难道需要掌握很多 JVM 优化细节吗?难道要研究如何避免,并进行正确编码才能进行严格的性能测试吗?显然不是,如果是这样的话,未免过于困难了,好在有一款一款官方的微基准测试工具 - JMH.
JMH 的全名是 Java Microbenchmark Harness,它是由 Java 虚拟机团队开发的一款用于 Java 微基准测试工具。用自己开发的工具测试自己开发的另一款工具,以子之矛,攻子之盾果真手到擒来,如臂使指。使用 JMH 可以让你方便快速的进行一次严格的代码基准测试,并且有多种测试模式,多种测试维度可供选择;而且使用简单、增加注解便可启动测试。
JMH 使用12345678910<dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId> <version>1.36</ ...
虚拟线程
虚拟线程线程术语定义操作系统线程(OS Thread):由操作系统管理,是操作系统调度的基本单位。
平台线程(Platform Thread):Java.Lang.Thread 类的每个实例,都是一个平台线程,是 Java 对操作系统线程的包装,与操作系统是 1:1 映射。
虚拟线程(Virtual Thread):一种轻量级,由 JVM 管理的线程。对应的实例 java.lang.VirtualThread 这个类。
载体线程(Carrier Thread):指真正负责执行虚拟线程中任务的平台线程。一个虚拟线程装载到一个平台线程之后,那么这个平台线程就被称为虚拟线程的载体线程。
虚拟线程定义JDK 中 java.lang.Thread 的每个实例都是一个平台线程。平台线程在底层操作系统线程上运行 Java 代码,并在代码的整个生命周期内独占操作系统线程,平台线程实例本质是由系统内核的线程调度程序进行调度,并且平台线程的数量受限于操作系统线程的数量。
而虚拟线程(Virtual Thread)它不与特定的操作系统线程相绑定。它在平台线程上运行 Java 代码,但在代码的整个生命周期内 ...
新生赛
题 A 最大化网格图中正方形空洞的面积
题目描述题 解给你一个网格图,由 n + 2 条 横线段 和 m + 2 条 竖线段 组成,一开始所有区域均为 1 x 1 的单元格。所有线段的编号从 1 开始。给你两个整数 n 和 m 。同时给你两个整数数组 hBars 和 vBars 。hBars 包含区间 [2, n + 1] 内 互不相同 的横线段编号。vBars 包含 [2, m + 1] 内 互不相同的 竖线段编号。如果满足以下条件之一,你可以 移除 两个数组中的部分线段:如果移除的是横线段,它必须是 hBars 中的值。如果移除的是竖线段,它必须是 vBars 中的值。输入描述:两个正整数 1 ≤ n ≤ 10^9 ,1 ≤ m ≤ 10^9 。接下来两个数组1 <= hBars.length <= 1002 <= hBars[i] <= n + 11 <= vBars.length <= 1002 <= vBars[i] <= m + 1输出描述:请你输出移除一些线段后(可 ...
WebSocket
WebSocket 的由来
在 WebSocket 出现之前,我们想实现实时通信、变更推送、服务端消息推送功能,我们一般的方案是使用 Ajax 短轮询、长轮询两种方式:
比如我们想实现一个服务端数据变更时,立即通知客户端功能,没有 WebSocket 之前我们可能会采用以下两种方案:短轮询或长轮询
上面两种方案都有比较明显的缺点:
HTTP 协议包含的较长的请求头,有效数据只占很少一部分,浪费带宽
短轮询频繁轮询对服务器压力较大,即使使用长轮询方案,客户端较多时仍会对客户端造成不小压力
WebSocket 是什么
WebSocket 是一种网络传输协议,可在单个 TCP 连接上进行全双工通信,位于 OSI 模型的应用层。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。客户端和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。
WebSocket 优缺点优点
实时性: WebSocket 提供了双向通信,服务器可以主动向客户端推送数据,实现实时性非常高,适用于实时聊天、在线协作等应用。
减 ...
前缀树,布隆过滤器
前缀树前缀树的3个基本性质:
根节点不包含字符,除根节点外每一个节点都只包含一个字符。
从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。
每个节点的所有子节点包含的字符都不相同。
前缀树实现敏感词过滤123456789101112131415{ "傻": { "逼": { "isEnd": "Y" }, "子": { "isEnd": "Y" }, "大": { "个": { "isEnd": "Y" } } }}
树 ...
抖音有声小说
前因该死的抖音小说推广,每每看到高潮结束,然后就是各种广告和软件下载。
程序员能受这气?直接开搞。
后果
找书源
爬取小说内容
文字转语音
首先找一个书源
笔趣阁(很全但是有”DDoS protection by Cloudflare”)
铅笔小说 没有很多权限,很适合我这种半吊子选手
开爬
首先看url是否正确读取
12345678910import urllib.request as ururl = "https://www.23qb.net/book/232488/90659053.html"req = ur.Request(url)req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36")response = ur.urlopen(req)html = response.rea ...