- 博客(182)
- 收藏
- 关注
原创 Jenkins语法
Jenkins流水线是实现CI/CD的核心工具,支持声明式和脚本式两种语法风格。声明式流水线采用结构化DSL,包含Pipeline、Stage、Step等核心概念,通过Jenkinsfile实现代码化配置,具有agent、parameters、environment等关键功能模块。脚本式流水线基于Groovy脚本,灵活性高但维护成本较大。声明式流水线是主流推荐方式,提供清晰的阶段划分、条件判断和后置操作,适用于大多数自动化构建部署场景。两种风格均可实现从代码拉取到部署的全流程管理,支持容器化执行和参数化构建
2025-11-25 14:31:57
25
原创 什么是A/B测试?
A/B测试是一种通过数据对比优化决策的方法,将用户随机分组测试不同版本(如按钮颜色、文案),以统计指标(点击率、转化率等)判断最优方案。其核心要素包括明确目标、单一变量、随机分组和统计显著性。完整流程涵盖问题定义、假设设计、实验执行到结果分析,需避免多变量测试、样本不足等误区。广泛应用于互联网产品、营销运营等领域,有别于灰度发布的数据验证目标。A/B测试以客观数据替代主观判断,实现科学决策优化。
2025-10-10 15:17:17
712
1
原创 Multimap是什么?
摘要: Multimap是一种支持一个键映射多个值的数据结构,适用于“一对多”场景(如用户-多邮箱)。与传统Map不同,它允许键重复且不覆盖旧值。主流语言实现方式各异:Java需第三方库(如Guava),Python通过defaultdict模拟,C++提供标准库支持。根据需求可选择有序、去重等不同实现(如Guava的ArrayListMultimap或TreeMultimap)。典型应用包括标签系统、订单管理等。使用时需注意线程安全、实现类选择及初始化问题。
2025-09-28 10:42:37
858
原创 超实用的模板语法
模板语法是一种分离结构与数据的标记语言,通过特定标记实现动态内容生成。其核心价值在于复用性、可维护性和灵活性,广泛应用于网页开发、自动化脚本等场景。主要包含三大要素:标记符号(如{{}})、数据引用(通过路径定位数据)和辅助逻辑(条件判断、循环遍历等)。不同引擎(Vue、Handlebars等)语法细节不同,但核心逻辑统一。模板语法通过静态结构与动态数据的结合,实现"一次编写,多次使用"的高效内容生成模式。
2025-09-26 14:29:31
813
原创 @Primary注解
Spring框架中的@Primary注解用于解决依赖注入时的多Bean冲突问题。当存在多个同类型Bean时,被标记为@Primary的Bean会作为默认首选注入。其优先级低于@Qualifier注解,后者可精确指定注入的Bean。该注解通常用于定义默认实现,且同一类型只能有一个@Primary标记,否则会引发冲突。
2025-09-25 17:39:47
231
原创 VPC和ECS
若需调整 ECS 的通信规则,只需修改 VPC 的“安全组”或“路由表”,无需重启 ECS;若需将 ECS 从“测试子网”迁移到“生产子网”,只需在 VPC 内调整 ECS 的子网归属,无需重建 ECS;若需扩容网络,只需为 VPC 新增子网,再在新子网创建 ECS 即可,不影响现有 ECS 的网络。VPC 是基础:它为 ECS 提供了“可隔离、可管控、可扩展”的网络环境,决定了 ECS 能与谁通信、如何通信、是否安全;ECS 是核心。
2025-09-08 10:11:27
1030
原创 RDS和DRDS
对比维度RDS(Relational Database Service,关系型数据库服务)DRDS(Distributed Relational Database Service,分布式关系型数据库服务)核心定位云厂商托管的“单实例/主从架构”关系型数据库(如MySQL、PostgreSQL)基于RDS构建的“分布式中间件+多RDS实例”集群,实现数据分片存储与分布式访问本质简化“单库”的运维(自动备份、高可用、升级),不改变数据库“单机存储”的本质。
2025-09-05 16:51:06
649
原创 对比k8s垂直伸缩和水平伸缩
垂直伸缩(Vertical Pod Autoscaling,VPA)和水平伸缩(Horizontal Pod Autoscaling,HPA)都是 Kubernetes 中用于应对应用负载变化的重要机制,它们在以下多个方面存在差异:
2025-09-05 15:47:06
429
原创 k8s垂直 Pod 自动伸缩(VPA)
以一个简单的Java Web应用为例,假设该应用部署在Kubernetes集群中,初始时为其分配了一定的CPU和内存资源。随着业务的发展,应用的负载会发生变化,下面展示如何使用VPA来动态调整资源分配。
2025-09-05 15:44:34
718
原创 k8s水平 Pod 自动伸缩(HPA)
以一个基于 Node.js 的 Web 应用为例,假设该应用部署在 Kubernetes 集群中,我们使用 CPU 使用率作为自动伸缩的指标,实现当 CPU 使用率超过 70% 时自动扩容,低于 30% 时自动缩容。
2025-09-05 15:35:49
340
原创 什么是云原生?为什么说apisix很好的适配了云原生?而其他网关没有呢?
摘要: APISIX是专为云原生设计的API网关,其核心优势在于与云原生理念的深度适配。传统网关(如Nginx)需手动配置后端服务IP,而APISIX原生支持K8s服务发现,实时感知动态变化;其轻量无状态架构支持秒级弹性扩缩容;插件化体系支持热插拔功能扩展;并通过Ingress Controller实现与K8s生态无缝集成。APISIX从设计之初即以"动态、弹性、可扩展"为目标,相较传统网关的"后期改造"模式,真正实现了云原生环境的"零摩擦"适配。
2025-09-05 10:44:56
493
原创 常见的网关
API网关是分布式架构的核心组件,主流开源方案包括Nginx/OpenResty(高性能基础)、APISIX(云原生动态)、Kong(成熟稳定)、Spring Cloud Gateway(Java专属)和Traefik(自动发现)。商业产品如Kong Enterprise和Apigee提供企业级支持。选型需考虑技术栈(Java/非Java)、场景复杂度(简单转发/精细治理)、运维成本(自动化/托管)和企业规模(中小/大型)。云原生场景推荐APISIX/Traefik,Java微服务首选Spring Clou
2025-09-05 10:20:59
1019
原创 Apisix插件之authz-keycloak
APISIX的authz-keycloak插件深度集成Keycloak身份管理系统,提供网关层的统一认证授权功能。该插件通过验证Keycloak颁发的JWT令牌,并基于角色/权限进行细粒度访问控制,支持RBAC等场景。核心配置包括Keycloak的realm、client_id和discovery端点,可实现用户认证、权限校验等功能。插件将安全逻辑集中在网关层,支持动态权限管理,同时需注意Keycloak配置一致性、令牌传递方式和HTTPS安全等实施要点,是企业级微服务架构中身份管理的理想解决方案。
2025-09-05 10:01:28
953
原创 Apisix插件之response-rewrite
APISIX的response-rewrite插件用于在网关层修改上游服务返回的响应内容,支持修改状态码、响应头和响应体。该插件无需修改上游代码即可适配不同客户端需求,实现接口兼容、错误美化、敏感信息过滤等功能。核心配置包括状态码调整、响应体重写和响应头操作,支持条件触发和Base64编码。典型应用场景包括接口兼容改造、跨域支持、错误信息优化等。使用时需注意性能影响,避免对大响应体过度处理。该插件提升了系统灵活性,降低了上游服务改造成本。
2025-09-05 09:53:26
909
原创 Apisix插件之proxy-mirror
APISIX的proxy-mirror插件实现请求镜像功能,以异步方式将生产流量复制到指定服务,不影响原始请求。核心功能包括无侵入测试、问题排查、性能评估和流量分析。通过配置镜像服务地址、采样比例等参数,可将部分或全部请求镜像到测试环境。典型应用场景包括新版本验证、故障调试和性能压测。需注意控制镜像比例以避免性能影响,并确保镜像服务不产生副作用。该插件为系统测试和分析提供了安全高效的解决方案。
2025-09-05 09:50:41
612
原创 Apisix插件之proxy-cache
APISIX的proxy-cache插件通过在网关层缓存上游响应,显著提升API性能。支持内存和磁盘两种存储方式,可配置缓存键、过期时间、状态码等规则。适用于静态资源、高频查询等场景,能减轻上游压力、加速响应并增强系统稳定性。插件提供缓存命中标识和手动清理功能,但需注意缓存一致性和动态内容处理。该插件是高流量API服务的重要优化工具。
2025-09-05 09:47:55
786
原创 Apisix插件之grpc-transcode
APISIX的grpc-transcode插件实现了HTTP/JSON与gRPC协议的双向转换,允许客户端通过HTTP/JSON调用gRPC服务。该插件通过解析.proto文件定义,自动完成协议转换,支持Unary、流式调用等gRPC特性。核心配置包括proto文件引用、服务名、方法名和gRPC地址。典型应用场景包括多端适配、服务迁移和简化开发流程,但需注意proto文件更新管理和性能损耗问题。插件有效降低了gRPC服务的使用门槛,同时保持了协议的高效性。
2025-09-05 09:42:31
590
原创 Apisix插件之zipkin
APISIX的zipkin插件是实现分布式追踪的关键组件,通过生成唯一Trace ID和Span ID,将请求链路信息发送到Zipkin服务器进行可视化分析。该插件支持B3/W3C协议,提供灵活的采样机制(0-100%可调),并能通过HTTP或Kafka上报数据。核心功能包括全链路耗时分析、错误定位和服务依赖梳理,适用于微服务架构下的性能监控。配置时需注意采样率对性能的影响,并确保协议与下游服务兼容。相比skywalking插件,zipkin更轻量,适合中小规模场景。
2025-09-05 09:38:41
721
原创 Apisix插件之udp-logger
APISIX的udp-logger插件通过UDP协议实现异步日志传输,具有轻量高效、低延迟的特点。它支持自定义日志格式,采用批量发送与缓存机制,适用于高并发场景。核心配置包括目标服务器地址、端口、批量大小等参数。该插件适用于对实时性要求高但允许少量数据丢失的场景,如访问统计、实时监控等。需注意UDP协议不保证数据可靠性,建议在稳定网络环境中使用,并合理设置数据包大小以避免分片问题。
2025-09-05 09:36:13
1078
原创 Apisix插件之tcp-logger
摘要:APISIX的tcp-logger插件通过TCP协议异步发送日志到指定服务器,支持批量传输、自定义格式和TLS加密,适用于高并发日志收集和敏感数据传输。核心功能包括异步发送、批量处理(默认100条/60秒)、重试机制(默认3次)和灵活格式配置。典型场景包括对接自定义日志系统、跨网络传输和加密传输敏感信息。使用时需注意接收端兼容性、网络稳定性及性能调优,通过调整batch_max_size和buffer_duration可优化吞吐量。该插件为日志集中管理提供了高效可靠的解决方案。
2025-09-05 09:33:48
607
原创 Apisix插件之sls-logger
摘要:APISIX的sls-logger插件可将网关日志异步发送到阿里云日志服务(SLS),支持批量传输、自定义日志格式和失败重试机制。核心配置包括SLS接入端点、项目名称、访问密钥等参数,通过Admin API或Dashboard进行设置。该插件适用于阿里云环境下的日志集中管理、实时检索分析和业务监控,需注意权限配置、地域端点和性能优化等事项,实现日志的高效收集与处理。(150字)
2025-09-04 17:53:51
910
原创 Apisix插件之request-id
APISIX 的 request-id 插件用于为每个请求生成唯一标识符(ID),并将其添加到请求头或响应头中,便于在分布式系统中追踪请求的完整链路,是日志分析、问题排查和请求追踪的重要工具。
2025-09-04 17:46:21
1098
原创 Apisix插件之prometheus
APISIX的prometheus插件可将网关指标标准化暴露,供Prometheus采集和Grafana可视化。它支持多维度指标拆分(路由/服务/状态码等),采集请求量、延迟、错误率等关键数据,性能损耗低。配置简单,只需启用插件并设置Prometheus采集任务即可。该插件适合生产环境监控,但需注意权限控制和版本兼容性。通过此插件,可实现APISIX网关的全面监控和告警。
2025-09-04 17:35:11
975
原创 Apisix插件之kafka-logger
APISIX的kafka-logger插件可将网关日志异步发送到Kafka,支持自定义日志格式、批量发送和失败重试。核心参数包括Kafka集群地址(brokers)、主题(topic)、批量大小(batch_max_size)等。该插件通过缓存日志并批量发送到指定topic,配合重试机制确保可靠性,适用于分布式日志收集、实时监控和业务分析等场景。注意需合理配置生产者类型(producer_type)和确认机制(required_acks)以平衡性能与可靠性。
2025-09-04 17:29:38
951
原创 Apisix插件之http-logger
APISIX的http-logger插件可将请求/响应日志发送至指定HTTP服务器,支持集中式日志管理。核心功能包括自定义日志收集(请求方法、URI、状态码等)、远程HTTP传输、批量发送控制(batch_max_size)和缓存时间设置(buffer_duration)。通过Lua表达式定制日志格式,适用于故障排查、性能分析及用户行为追踪。需注意接收服务器的可用性和网络稳定性,配置参数包括endpoint、超时时间及重试机制等。该插件通过缓存聚合日志后批量发送,优化网络传输效率。
2025-09-04 17:21:15
768
原创 Apisix插件之serverless-pre-function
APISIX的serverless-pre-function插件允许在请求处理早期阶段(如rewrite或access阶段)执行自定义Lua函数,实现请求预处理、业务逻辑扩展等功能。该插件支持修改请求头、参数校验、动态路由调整等场景,通过Admin API配置执行阶段和Lua函数。典型应用包括JWT解析、权限校验和分级路由。使用时需注意性能影响、依赖管理和错误处理,避免阻塞操作。该插件提供灵活的前置处理能力,无需修改源码即可扩展网关功能。
2025-09-04 17:17:20
474
原创 Apisix插件之serverless-post-function
APISIX的serverless-post-function插件允许在请求处理后执行自定义Lua函数,主要用于响应修改和业务逻辑扩展。支持响应头和响应体处理阶段,可进行数据脱敏、添加自定义头等操作。通过Admin API配置,需注意代码性能、错误处理及插件兼容性。适用于敏感数据处理、监控上报等场景,增强API网关的灵活性和功能性。
2025-09-04 17:14:59
628
原创 Apisix插件之traffic-split
APISIX的traffic-split插件支持流量拆分功能,通过权重配置实现灰度发布、A/B测试等场景。核心配置包含rules规则列表和weighted_upstreams权重分配,支持多组上游服务按比例分发请求。典型应用包括:80%流量导向稳定版(v1),20%到新版(v2)的灰度发布,或50%流量均分的A/B测试。该插件支持动态调整权重,可与其他认证插件结合实现精细流量控制,是微服务架构中实现平滑发布和实验验证的关键工具。
2025-09-04 17:09:20
947
原创 Apisix插件之limit-req
APISIX的limit-req插件通过令牌桶算法实现请求频率限制,保护后端服务免受突发流量冲击。核心配置包括rate(每秒最大请求数)、burst(突发缓冲数)、key(限流维度)等参数。插件支持两种模式:平滑限流(延迟处理突发请求)和严格限流(直接拒绝)。典型应用场景包括按IP限流和服务级限流,通过合理配置可有效平衡流量控制与服务可用性。该插件是API网关流量管理的核心组件之一。
2025-09-04 17:06:25
842
原创 Apisix插件之limit-count
APISIX的limit-count插件提供流量控制功能,通过限制时间窗口内的请求次数保护后端服务。核心配置包括:count(最大请求数)、time_window(时间窗口秒数)、key(限流维度如IP或服务ID)等。支持单机限流(local)和分布式限流(redis)两种策略,可自定义拒绝状态码和提示信息。典型应用场景包括按IP限流(如每分钟100次)和多节点集群共享限流计数。该插件是API流量控制的核心方案,可与其它限流插件配合构建多层防护体系。
2025-09-04 17:03:50
635
原创 Apisix插件之limit-conn
APISIX的limit-conn插件用于限制并发连接数,保护后端服务免受过载影响。主要配置包括:conn(最大并发连接数)、burst(突发缓冲连接数)、key(限流维度标识)等。该插件通过统计指定维度的并发连接数,对超出限制的连接进行延迟处理或直接拒绝(返回自定义状态码和提示)。典型应用场景包括按客户端IP或消费者名称限流,可与其他限流插件配合形成多层防护。合理配置能有效保障服务稳定性,同时带来微小性能开销。
2025-09-04 16:55:40
688
原创 Apisix插件之uri-blocker
uri-blocker 是 APISIX 的安全插件,用于拦截特定 URI 请求。核心功能包括:通过正则表达式配置block_rules规则拦截敏感路径(如/admin/*),匹配时返回403;支持多规则组合,精确控制访问权限;适用于保护管理后台、防范攻击等场景。需注意规则准确性,避免误拦正常请求,可与其他安全插件配合使用。该插件在请求到达网关时进行URI匹配,未命中则放行,有效提升API安全性。
2025-09-04 16:51:39
845
原创 Apisix插件之request-validation
APISIX的request-validation插件用于在网关层验证请求格式和内容,支持对HTTP方法、请求头、请求体和查询参数进行规则校验。该插件通过JSON配置定义验证规则,可拦截非法请求并返回400错误,有效降低后端负载。典型应用包括保障接口契约、防止恶意请求和减少无效流量。需注意复杂校验可能影响性能,建议结合其他安全插件使用,实现全方位的请求管控。
2025-09-04 16:46:18
636
原创 Apisix插件之referer-restriction
APISIX的referer-restriction插件通过控制HTTP请求的Referer字段来限制请求来源,提供API安全防护。主要功能包括:1)通过whitelist/blacklist配置允许/禁止访问的域名,支持通配符;2)bypass_missing选项控制无Referer请求的处理方式;3)自定义拒绝访问提示信息。典型应用场景包括防止资源盗链和拦截恶意请求,但需注意Referer可被伪造,建议配合其他认证插件使用。该插件在网关层提供了基于域名来源的访问控制能力。
2025-09-04 16:36:19
864
原创 Apisix插件优先级
APISIX插件执行顺序由优先级(priority)决定,数值越小越先执行。常见插件优先级:身份认证类(500-700)>流量控制类(800-900)>请求/响应处理类(1000-1200)>监控日志类(1500+)。自定义插件可通过设置priority字段调整执行顺序,同优先级插件按配置先后顺序执行。这种机制确保网关功能有序协同工作。
2025-09-04 16:28:52
329
原创 Apisix插件之ip-restriction
APISIX的ip-restriction插件提供基于IP地址的访问控制功能,支持通过白名单(allowlist)和黑名单(denylist)机制过滤请求。该插件优先检查黑名单,再验证白名单,拒绝访问时返回自定义提示信息。配置时需注意获取真实客户端IP,确保CDN或代理场景下的准确性。典型应用包括内部API保护、防恶意攻击和地域访问限制,能与JWT等认证插件配合构建多层安全防护。插件性能影响小,适合高并发场景,通过简单配置即可实现IP级别的精细化访问控制。
2025-09-04 16:22:22
443
原创 Apisix插件之fault-injection
APISIX的fault-injection插件用于模拟故障场景,支持延迟注入(设置响应延迟时间)和错误注入(返回指定HTTP状态码),并可配置故障比例。通过Admin API或Dashboard进行配置,适用于混沌工程、容错测试和故障排查等场景,帮助验证系统稳定性。示例展示了如何配置30%请求延迟800毫秒和20%请求返回500错误。
2025-09-04 16:17:14
866
原创 Apisix插件之cors
APISIX的cors插件用于解决跨域资源共享问题,通过配置HTTP响应头允许不同域名的前端调用后端API。核心配置包括允许的域名、方法、请求头等,支持简单请求和预检请求两种场景。示例展示了宽松的开发环境配置,但生产环境建议限制域名、方法和头信息以提高安全性。该插件是前后端分离架构中实现安全跨域调用的必备工具。
2025-09-04 14:56:38
356
原创 Apisix插件之consumer-restriction
APISIX的consumer-restriction插件用于实现基于消费者的访问控制,支持限制消费者访问特定路由或服务。该插件可与认证插件配合使用,通过allow和deny参数配置权限,适用于多租户系统、企业内部权限管理和合作伙伴API访问控制等场景,确保资源隔离和安全性。
2025-09-04 14:52:28
742
原创 Apisix插件之api-breaker
摘要:APISIX的api-breaker插件是一个熔断机制组件,用于在后端服务异常时自动暂停请求转发,防止故障扩散。其核心配置包括熔断触发条件(如连续3次500错误)、恢复条件(如连续3次200成功)、熔断响应(如503状态码)等。该插件可实现故障隔离和自动恢复,典型应用场景包括数据库连接池耗尽等情况,能有效提升系统稳定性并减少运维成本。(149字)
2025-09-04 14:41:13
288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅