![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术文档
文章平均质量分 84
各种开源技术文档,个人总结
知秋丶
知秋的博客
展开
-
Springboot 3.x - Reactive programming (2)
Spring WebFlux原创 2024-07-16 21:23:52 · 617 阅读 · 0 评论 -
Java Reactive Streams Backpressure mechanisms
Java Reactive Streams Backpressure mechanisms原创 2024-07-13 13:52:53 · 945 阅读 · 0 评论 -
Springboot 3.x - Reactive programming
Reactive programming原创 2024-07-07 17:29:34 · 1048 阅读 · 2 评论 -
极致性能优化之道之消除伪共享
伪共享是由于缓存行的概念引起的。现代计算机架构中,缓存被分割成一些大小固定的缓存行,通常为64字节。多个线程可能在不同的核上同时访问同一缓存行的不同部分,这导致了缓存行的频繁无效化和刷新,从而降低了性能。原创 2023-11-21 14:16:51 · 579 阅读 · 0 评论 -
Kafka从安装使用到集成Springboot详细教程
kafka使用指南原创 2023-11-15 13:49:20 · 809 阅读 · 0 评论 -
Java使用Zstandard压缩算法对字节数组进行压缩和解压缩
最近在做项目的时候,因为项目部署在国外,又是公网的环境,流量费用很贵,所以需要使用Netty对传输的数据进行压缩和解压缩,准备用Facebook的Zstandard试试性能,听说压缩性能好,还可以根据需求调整压缩比。然而在网上搜索了一阵子发现,java通过zstd对字节数组做压缩和解压缩的例子很少,仅有的几个给出的API还都是错误的,更别说跑通了,就算使用Gpt3.5和4.0给的的示例也是错误的,所以干脆写篇文章记录一下。原创 2023-11-02 14:06:48 · 961 阅读 · 0 评论 -
Netty使用SslHandler实现加密通信
不积跬步,无以至千里。原创 2023-10-17 18:30:27 · 937 阅读 · 0 评论 -
设计模式系列(2)- 迭代器模式、适配器模式
迭代器模式简介所谓迭代器模式,就是面向Iterator接口编程,无论底层的数据结构和迭代算法如何变化,调用者都不用修改代码;高内聚,低耦合,才是程序设计之道。一般很少需要自己写这个iterator模式,都是在集合编程中使用,尤其是如果要对集合元素遍历过程中做插入删除操作,那就用iterator,如果要对某个类中的集合进行遍历,由那个集合类返回一个iterator回来,统一面向iterator迭代器接口来编程遍历,提高系统整体的可维护性,可扩展性。如果自己写iterator模式,一般是研发底层的框架原创 2021-12-23 13:12:53 · 2309 阅读 · 1 评论 -
设计模式系列(1)- 状态模式 、观察者模式
状态模式简介状态模式,就是维护多种不同的状态,每种状态下可以去执行一些特殊的逻辑。然后由一个Context类负责根据请求参数调用,来维护这些状态之间的切换,形成一个状态机的概念。状态模式里,非常重要的一点就是将状态之间流转的逻辑,封装在Context类里面。本来可能需要调用方自己维护复杂的状态流转逻辑,流转到不同的状态之后,执行状态对应的代码逻辑。使用场景这个状态模式,在电商系统中有天然的运用场景,系统中很多数据都有大量的状态变更的逻辑,像订单,出库单等等,我们可以将状态变更的逻辑用状态模式来实现原创 2021-12-23 10:37:14 · 1261 阅读 · 0 评论 -
xxl-job系列(3)- 几种任务调度形式
1 BEAN模式(类形式)Bean模式任务,支持基于类的开发方式,每个任务对应一个Java类。优点:不限制项目环境,兼容性好。即使是无框架项目,如main方法直接启动的项目也可以提供支持,可以参考示例项目 “xxl-job-executor-sample-frameless”;缺点:每个任务需要占用一个Java类,造成类的浪费;不支持自动扫描任务并注入到执行器容器,需要手动注入。步骤一:执行器项目中,开发Job类:1、开发一个继承自"com.xxl.job.core.handler.原创 2021-12-22 19:21:16 · 4529 阅读 · 0 评论 -
xxl-job系列(2)- 任务详解
开发第一个任务“Hello World”“GLUE模式(Java)”的执行代码托管到调度中心在线维护,相比“Bean模式任务”需要在执行器项目开发部署上线,更加简便轻量。前提:请确认“调度中心”和“执行器”项目已经成功部署并启动;步骤一:新建任务:登录调度中心,进入任务管理,点击“新建任务”按钮,新建示例任务。然后,点击保存。步骤二:“GLUE模式(Java)” 任务开发:点击任务操作栏 “GLUE IDE” 按钮,进入 “GLUE编辑器开发界面” ,见下图。“GLUE模式(Java)”原创 2021-12-22 18:39:19 · 3480 阅读 · 0 评论 -
xxl-job系列(1)- 快速入门
快速入门1 初始化“调度数据库”“调度数据库初始化SQL脚本” 位置为:/xxl-job/doc/db/tables_xxl_job.sql调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例;如果mysql做主从,调度中心集群节点务必强制走主库;2 编译源码解压源码,按照maven格式将源码导入IDE, 使用maven进行编译即可,源码结构如下:xxl-job-admin:调度中心xxl-job-core:公共依赖xxl-job-executor-samples:执行器原创 2021-12-22 18:38:21 · 422 阅读 · 0 评论 -
高性能微服务网关APISIX - 常用插件(3)
limit-req简介限制请求速度的插件,使用的是漏桶算法。属性名称类型必选项默认值有效值描述rateinteger必须rate > 0指定的请求速率(以秒为单位),请求速率超过 rate 但没有超过 (rate + burst)的请求会被加上延时。burstinteger必须burst >= 0t请求速率超过 (rate + burst)的请求会被直接拒绝。keystring必须[“remote_addr”, “ser原创 2021-12-17 20:11:54 · 2366 阅读 · 0 评论 -
高性能微服务网关APISIX - 常用插件(2)
proxy-rewrite简介proxy-rewrite 是上游代理信息重写插件,支持对 scheme、uri、host 等信息的重写。属性NameTypeRequirementDefaultValidDescriptionschemestring可选“http”[“http”, “https”]不推荐使用。应该在 Upstream 的 scheme 字段设置上游的 scheme。uristring可选转发到上游的新 uri 地址。meth原创 2021-12-17 19:15:45 · 1924 阅读 · 1 评论 -
高性能微服务网关APISIX - 常用插件(1)
APISIX 常用插件(1)APISIX 插件机制Plugin 表示将在 HTTP 请求/响应生命周期期间执行的插件配置。Plugin 配置可直接绑定在 Route 上,也可以被绑定在 Service 或 Consumer上。而对于同一 个插件的配置,只能有一份是有效的,配置选择优先级总是 Consumer > Route > Service。在 conf/config.yaml 中,可以声明本地 APISIX 节点都支持哪些插件。这是个白名单机制,不在该白名单的插件配置,都将会被自动忽原创 2021-12-17 13:32:29 · 4909 阅读 · 0 评论 -
高性能微服务网关APISIX - API文档
Admin APIDescriptionAdmin API 是为 Apache APISIX 服务的一组 API,我们可以将参数传递给 Admin API 以控制 APISIX 节点。更好地了解其工作原理,请参阅 architecture-design 中的文档。启动 Apache APISIX 时,默认情况下 Admin API 将监听 9080 端口(HTTPS 的 9443 端口)。您可以通过修改 conf/config.yaml 文件来改变默认监听的端口。在下面出现的 X-API-KEY 指原创 2021-12-15 18:37:25 · 8252 阅读 · 2 评论