JerAxxxxxxx

日常记录~

提升后端开发效率:手写一款 IntelliJ REST 插件 HttpMate

IntelliJ 插件开发实战与 Kotlin 优势

在日常的后端开发工作中,我们经常面临两个痛点:一是在庞大的代码库中快速定位某个 API 的定义位置,二是为这些 API 编写繁琐的接口文档。为了解决这些问题,我开发了一款名为 HttpMate 的 IntelliJ IDEA 插件。 今天这篇博客,我想分享一下 HttpMate 的功能特性,以及使用 Kotlin 开发 IntelliJ 插件的一些心得体会。 🚀 HttpMate 能做什...

Kong 基础知识笔记

笔记

什么是网关 网关是一种高性能、低延迟的流量负载均衡服务。OpenResty 是一个基于 Nginx 与 LuaJIT 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大部分依赖。OpenResty 使你不再需要使用 C、C++ 编写复杂的扩展模块,使用 Lua 就能够快速构建出高性能网管系统。 Kong 是基于 Nginx 和 OpenResty。 Kong ...

Kong 插件修改request header失效

记录一次 lua 赋值错误导致 Kong 插件失效

插件背景 在使用 Kong 的过程中, 因业务需要, 开发了一个插件, 主要功能为从 redis 中获取 token, 修改请求的 request header. 将 OAuth2 所需的 token 加在 request header 的 Authorization 字段中 错误现象 在测试过程中, 发现有的请求会出现 token 不正确的情况, 通过排查记录的日志, 并没有找到明显...

Kong http-log 插件记录未发送到 http server 的日志

Kong 插件的修改

背景 在 Kong 的插件中, http-log/tcp-log 以及自己开发的 http-log-with-body 都可以记录日志, 使用方法也大同小异 通过配置 http 的 endpoint 或者 tcp server , 用来接收数据 当 http-server 配置错误, 或者 http-server 服务不健康时, 日志就会丢失, 这时就需要我们在 plugin 阶段做一...

Docker Compose 部署 Kong, 8443 端口无法访问

Kong 8443 端口无响应

问题状况 使用 docker 直接部署 kong 的时候, 不会出现此问题, ipv4 和 ipv6 都会被监听 当使用 docker swarm 部署时, 只会监听 ipv6, 且 8000 和 8001 这两个端口可以 telnet 通 而 8443 端口 telnet 不通. BUT 在我们阿里云的生产机器上部署, 此问题无法复现 配置文件 单节点部署 单节点部...

Kong&Konga docker swarm 部署

docker-compose 部署

Kong docker swarm 部署 这次分享下 Kong&Konga 通过 docker swarm 部署的脚本,因为目前没有用上 K8S,目前还是用比较轻量的 docker swarm 进行部署。 #!/bin/bash # kong镜像名称,需带 tag, 若不带 tag 会默认查找 latest 版本 export KONG_IMAGE_NAME="kong:jera...

Kong&Konga docker 部署

附一键安装脚本

Kong docker 部署 Kong 是目前比较主流的 API 网关,最近公司也在生产中落地,打算记录下来,包括安装部署以及后面 lua 插件的开发和 go 插件的开发。 鉴于网上的部署教程层次不齐,甚至有的教程甚至跑不起来,自己备份了一份安装脚本,方便部署测试,即使是小白也能部署成功的脚本。 以下是部署脚本,sleep 主要是等待数据库初始化完毕,否则可能会连接失败 #!/bin/...

sentinel 是如何限流的

对 sentinel 的学习笔记

这一篇,来学习 sentinel 是如何对我们的资源进行限流等操作的。 在上一篇文章中了解到,使用 @SentinelResource 注解后,是通过切面的方式,调用了 SphU.entry() 方法,那么本章就来深挖一下这个方法具体做了些什么。 限流的入口 我们通过进入SphU.entry() 方法可以发现,其先是调用到了CtSph 类中的 entryWithType() 方法,经过...

sentinel 是如何和 dashboard 通信的

对 sentinel 的学习笔记

上一篇,学习了 sentiment-dashboard 都做了什么,其中很重要的一点就是:向 sentinel 客户端同步流控规则。那么,本篇就来学习一下,sentinel 客户端是如何与 dashboard 通信的。 Sentinel 客户端的初始化 这里我们先编写一个 demo 并引入 sentinel 的相关依赖。sentinel 主要使用方式就是通过 SphU.entry("re...

sentinel-dashboard 都做了什么

对 sentinel-dashboard 的学习笔记

近日,公司打算采用阿里的 sentinel 限流组件,对整个平台的各个服务进行限流、降级处理。因为需求需要改造 sentinel-dashboard ,所以趁这个机会好好学习一下 sentinel。 dashboard 与客户端规则的下发与读取 sentinel-dashboard 本身是一个 SpringBoot 工程 在 dashboard 界面中,我们更改、编辑、删除流控规则时,...