- 博客(52)
- 资源 (1)
- 收藏
- 关注
原创 SpringBoot集成Redisson实现限流(二)
Springboot集成Redisson默认的限流器为令牌桶型限流器,底层是通过lua脚本去实现的。通过lua脚本我们可以去实现一个滑动窗口限流器,利用ZSET格式数据就可以轻松实现。
2024-02-01 16:39:17 730
原创 SpringBoot集成Redisson实现限流(一)
本文主要介绍了SpringBoot集成Redisson实现限流,主要涉及到的类为Redisson中的,其实现的是令牌桶限流。
2024-01-31 16:50:40 366
转载 (一)LiteFlow简介
LiteFlow 是一个轻量,快速的组件式流程引擎框架 / 规则引擎,组件编排,组件复用,帮助解耦业务代码,让每一个业务片段都是一个优雅的组件,并支持热加载规则配置,实现即时修改。使用LiteFlow,你需要去把复杂的业务逻辑按代码片段拆分成一个个小组件,并定义一个规则流程配置。这样,所有的组件,就能按照你的规则配置去进行复杂的流转。LiteFlow是一个非常强大的现代化的规则引擎框架,融合了编排特性和规则引擎的所有特性。
2024-01-24 15:36:45 269
原创 JsonParseException: Unexpected character (‘a‘ (code 97)): Expected space separating root-level value
JsonParseException: Unexpected character ('a' (code 97)): Expected space separating root-level valueo.r.client.handler.CommandDecoder : Unable to decode data. channel相关问题处理
2023-09-22 16:44:56 1732
原创 springboot集成redisson
可以手动通过注入config方式进行RedissonClient客户端的配置,如果通过redisson.yml方式进行配置,则不需要额外的config配置文件进行参数加载,RedissonClient会通过RedissonAutoConfiguration自动加载配置相关信息。在resources目录下,即application.yml同级目录创建redisson.yml,内容可参考。其他关于redis的依赖,在redisson的依赖文件中已经专门引入了。
2023-09-22 15:30:36 274
原创 spring boot3.x集成swagger出现Type javax.servlet.http.HttpServletRequest not present
spring boot3.x版本依赖于jakarta依赖包,但是swagger依赖底层应用的javax依赖包,所以只要已启动就会报错。swagger2依赖。
2023-09-05 16:00:30 5079 1
转载 全链路跟踪——skywalking自定义插件开发(五)
支持定义构造方法和实例方法的拦截点。:支持定义静态方法的拦截点。当然还可以直接扩展,这个类是上面两个类的父类。这种方式较为麻烦,一般不推荐使用。这里以拦截实例方法为例,继承类。:实例方法拦截器:静态方法拦截器:构造方法拦截器要拦截对应的方法,必须要实现对应的接口。这里以实现接口,拦截实例方法为例。在自定义插件模块的resources目录下定义配置文件,该文件用于帮助探针启动时加载插件时,寻找插件拦截点。
2023-08-11 14:45:05 885
转载 全链路跟踪——skywalking插件工作原理剖析(四)
Override// 省略部分代码@Override// 这里声明了方法切入点,返回的是一个数组,说明可以有多个切入点// 这里是被RequestMapping注解的方法作为一个切入点@Override@Override// 这里是此切入点的拦截器@Override},@Override// 这里是被GetMapping、PostMapping等注解的方法作为一个切入点@Override// 这里是此切入点的拦截器@Override@Override。
2023-08-11 14:29:19 587
原创 全链路跟踪——Skywalking安装集成(三)
在-jar命令前添加:-javaagent:D:\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=app。启动后,后端服务默认暴露的通信端口是11800,这个端口在agent中会用到。转载: https://www.cnblogs.com/wind-wound/articles/17275408.html。的配置,首先要搭建一个es服务(当然也可以选择其他存储引擎,比如PostgreSQL/MySQL)。
2023-08-10 14:40:10 246
原创 全链路跟踪——Skywalking简介(二)
Skywalking是一款国产开源框架,为分布式系统的应用程序性能监控工具,特别为微服务、云原生和基于容器(Kubernetes)架构而设计,基于OpenTracing规范、开源的AMP系统。Skywalking提供分布式跟踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。支持Java, .Net Core, PHP, NodeJS, Golang, LUA语言探针。
2023-08-10 08:52:50 234
转载 全链路跟踪——Zipkin、Pinpoint、SkyWalking、CAT、jaeger(一)
Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。skywalking是一款国产开源框架,为分布式系统的应用程序性能监控工具,特别为微服务、云原生和基于容器(Kubernetes)架构而设计,基于OpenTracing规范、开源的AMP系统。
2023-08-09 13:38:38 468
原创 PostgreSQL事务概述与隔离层级
Atomicity(原子性): 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。Consistency(一致性): 在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
2023-07-12 09:20:22 250
原创 Java集合框架的性能调优
正确选择合适的集合类型、使用迭代器、注意集合大小的初始化、使用合适的数据结构都是提供集合操作性能的方法。Java8中可以使用流操作,使用Lambda表达式定义要处理的集合中的元素,大大提高集合操作的效率;Java集合框架是Java编程中常用的核心组件之一,正确使用和高效操作集合对于程序的性能和效率具有重要的影响。ArrayList底层结构是数组,所以在新增和删除元素的时候会存在,数据扩容和迁移的情况,效率低于相对于通过头尾指针进行关联的LinkedList;使用集合时,选择合适的集合类型是关键;
2023-07-07 15:55:33 101
原创 python集成grpc
注意:grpcio-tools如果版本大于1.43.0,则生成的方法会在运行中动态生成,这样就无法使用pychram的语法提示了,所以可以将版本回滚到1.43.0及其之前的版本。
2023-05-22 10:53:19 98
原创 设计模式之代理模式
代理模式是指为其他对象提供一种代理,以控制对这个对象的访问。代理模式包含三种角色:抽象主题角色、真实主题角色、代理主题角色。一般代理被理解为代码增强,实际是在原代码逻辑前后上添加一些代码逻辑,而使被调用者无感。目的:保护目标对象、增强目标对象代理模式属于结构性模式,分为静态代理和动态代理。
2023-04-28 10:53:42 48
原创 设计模式之建造者模式
建造者模式是将一个复杂对象的构建过程和它的表示分离,使得同样的构建过程可以创建不同的表示,属于创建者模式。建造者模式有四个角色:产品、建造者抽象、建造者、调用者。适用场景:1.相同方法,不同的执行顺序,产生不同的结果2.多个部件或零件,装配到一个对象中,产生的结果不相同3.产品类非常复杂或者调用顺序不同产生不同作用4.初始化复杂、参数多。
2023-04-26 08:28:09 55
原创 设计模式之原型模式
原型模式是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象;属于创建型模式。原型模式的核心在于拷贝原型对象;根据克隆方式分为:浅克隆和深克隆。
2023-04-25 16:17:38 45
原创 k8s网络通信
1. 同一个pod中的容器通信# 首先创建secret秘钥,方便pod拉取阿里云镜像仓库镜像kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAILdocker-registry:指定秘钥的键名称,例如
2022-02-25 14:06:13 139
原创 k8s核心概念之Replication Controller(RC)、Replica Set(RS)和Deployment
一、Controller基础参数及命令1. Replication ControllerReplicationController定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期值,所以RC的定义包含以下几个部分:Pod期待的副本数(replicas)用于筛选目标Pod的Label Selector当Pod的副本数量小于预期数量时,用于创建新Pod的Pod模板(template)kind:表示要新建对象的类型spec.selector:表示需要管理的Pod的lab
2022-02-17 11:32:26 1325
原创 k8s新增删除node节点
k8s新增删除node节点1. 新增node节点首先需要在节点所在服务器安装docker及k8s基础组件。安装完毕后,在master节点查看token值。## 查看token值[root@master01 home]# kubeadm token listTOKEN TTL EXPIRES USAGES DESCRIPTION
2022-02-15 16:33:12 1500
转载 使用kubeadm安装k8s集群
使用kubeadm安装k8s集群1.服务器要求建议最小硬件配置:2核/2G/20G 网络需求:最好能访问外网,需要拉取一些必要的镜像;若没有网络条件,需要提前导入必要的镜像2.kubeadm常用工具功能:• kubeadm init:初始化一个Master节点• kubeadm join:将工作节点加入集群• kubeadm upgrade:升级K8s版本• kubeadm token:管理 kubeadm join 使用的令牌• kubeadm reset:清空 kubeadm ini
2022-02-15 10:37:35 390
原创 Redis应用-BloomFilter(布隆过滤器)
Redis应用(BloomFilter)redis集成bloomFilter,可以提供命中率,减少缓存击穿的发生。bloomFilter通过位图及多hash定位,可在一定的范围内避免hahs冲突,因为布隆过滤器的基础是位图,所以占用空间低,查询效率高。但因为布隆过滤器的数据特点,所以无法移除失效数据;还有就是布隆过滤器具有一定的误判率。pom.xml<!-- springboot集成redis --> <dependency> <
2021-09-07 21:20:51 355
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人