- 博客(143)
- 收藏
- 关注
原创 轻量级日志管理系统promtail(或logback)+loki+grafana部署流程
获取通用配置wget https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml。获取官方通用配置wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml。192.168.244.128:3000 默认账号密码admin/admin。
2025-03-03 18:00:45
508
原创 手动分页sql_calc_found_rows用法代替多查询一次total_rows
【代码】手动分页sql_calc_found_rows用法代替多查询一次total_rows。
2025-02-10 17:37:41
82
原创 springboot项目java11简单读取classpath下文件内容
create_table_template.sql需要放在resource文件夹下。
2025-02-10 11:52:51
67
原创 加密相关工具类、方法、混合加密案例
一个混合加密的方案,生成RSA私钥和公钥,AES密钥。然后将AES密钥用RSA公钥加密。最后在服务器特定位置存储被加密后的AES密钥和RSA私钥。在应用程序里面,读取被加密后的AES密钥和RSA私钥,并用RSA私钥将被加密后的AES密钥解密成初始AES密钥。那么在应用中就能用AES密钥进行加解密了。将文件存储位置配置在配置文件中。
2024-12-18 13:14:10
157
原创 非spring组件依赖spring bean的方式
将MyDeserializer依赖的bean定义为 static,并写一个static方法手动set这个bean,set的时机在一个配置类的@PostConstruct中。有可能在static类型的依赖还没有被注入到MyDeserializer里,MyDeserializer就会被调用,这时候有可能会产生空指针,怎么办呢?也可以不用配置类,直接在KeyManagementService的初始化块(也就是@PostConstruct方法)中加上。依赖还没有被注入,也就是说。在初始化的时候就会用到。
2024-12-18 12:57:28
247
原创 Redisson semaphore使用实践
当这个semaphore剩余许可为0的时候,返回true。当expire设置的时间过期时,才返回false。
2024-11-22 15:58:57
147
原创 使用自定义注解+jackson序列化优雅实现数据脱敏
需求效果:对手机号码和身份证号码进行数据脱敏,前4位数用*代替......自定义jackson序列化器,需要集成JsonSerializer,重写serialize方法实现脱敏逻辑在需要被脱敏的字段上使用@JsonSerialize注解,并使用自定义的序列化器具体代码和测试结果上一个版本的序列化器的序列化方式很固定,比如说有点用4个x代替,有的全部都是x比如密码修改Desensitization注解的属性修改前:int len();
2024-10-14 00:01:47
608
1
原创 24秋面试笔记
1.1.2 集合1.1.3 Java8新特性1.2 熟悉常用的数据结构(链表、栈、队列、二叉树等),熟练使用排序、动态规划、DPS等算法。1.2.1 数据结构1.2.2算法1.3 理解设计模式如工厂、代理、策略、模板、建造者等,并善用设计原则构建可复用的代码。1.3.1 代理模式参考:一文搞懂代理模式静态代理:中介租房案例动态代理:参考Java设计模式之创建型:工厂模式详解(简单工厂+工厂方法+抽象工厂)简单工厂模式工厂方法模式抽象工厂模式参考JAVA设计模式之策略模式详解参考模板
2024-10-11 17:21:17
852
原创 springboot整合MybatisPlus+MySQL
在sd-service中引入依赖,product-service和order-service自动会继承。先改变一下项目结构,给product-service和order-service加一个父模块。docker部署MySQL:参考。修改controller。
2024-09-29 17:45:37
1247
原创 springboot整合sentinel和对feign熔断降级
对服务进行降级(实际项目中比如:"当前请求繁忙,请稍后访问"或者推荐别的页面)。这个feign接口为例,当这个接口对应的http请求被限流阻断时,启用一个新的。,只有当我们第一次访问过后,相应的服务和请求才会在左边(和簇点链路)中出现。,发现20个请求里有10个请求访问失败,浏览器报500错误。使用jmeter进行压测,QPS为20,访问接口为。sentinel控制台显示有10个请求被拒绝。限流为QPS=10,超过10则迅速失败。(1)当未配置熔断降级功能时。此外,idea控制台报异常。
2024-09-26 04:23:57
705
原创 springboot整合openfeign
引入IProductClient所在模块,不用引openfeign,因为引入这个依赖,那么openfeign已经在classpath下了。微服务端口号为8081,并将order-service注册到nacos上,这个步骤省略;,用来让别的服务可以调用ProductController的对应方法。依赖(但是我这里,没有排除ribbon依赖也可以)对应的controller方法为。发现feign远程调用成功了。否则会报错,bean找不到。时可能会出现以下错误。
2024-09-25 03:37:23
1146
原创 spring-boot、spring-cloud、spring-cloud-alibaba的常用依赖的依赖声明及pom文件
父工程pom文件,主要定义了依赖的版本号。子工程按需引入,不再需要版本号。
2024-09-25 02:47:27
539
原创 docker安装各个组件的命令
下载镜像https://cloud.tencent.com/developer/article/2434428。(2)修改conf目录下的application.properties,替换为自己的数据源。(3)建立nacos_config,数据库运行sql脚本。nacos依赖于mysql,因此需要先有mysql环境。(4)删除之前的容器,运行新的容器,并挂载数据卷。(5)查看容器运行日志,是否成功。默认账户密码都是sentinel。默认账号密码都是nacos。(1) 获取配置文件。
2024-09-24 16:06:11
361
原创 springsecurity+jwt实现前后端分离认证授权
Spring Security 中文文档Spring Security是一个Java框架,用于保护应用程序的安全性。它提供了一套全面的安全解决方案,包括身份验证、授权、防止攻击等功能。Spring Security基于过滤器链的概念,可以轻松地集成到任何基于Spring的应用程序中。它支持多种身份验证选项和授权策略,开发人员可以根据需要选择适合的方式。此外,Spring Security还提供了一些附加功能,如集成第三方身份验证提供商和单点登录,以及会话管理和密码编码等。
2024-09-20 03:01:33
968
原创 Caffenie配合Redis做两级缓存,Redis发布订阅实现缓存一致更新
在项目中。一级缓存用Caffeine,二级缓存用Redis,查询数据时首先查本地的Caffeine缓存,没有命中再通过网络去访问Redis缓存,还是没有命中再查数据库。具体流程如下。
2024-09-10 03:09:53
756
原创 Synchronized、Reetrantlock
任意对象都可以作为同步锁。同步方法的锁:静态方法(类名.class)、非静态方法(this)同步代码块:自己指定,很多时候也是指定为this或类名.class。
2024-09-05 17:12:23
977
原创 CompleteableFuture异步编程框架
有3个被调用的service(MemberService,OrderService,ProductService),每个service中有个search方法,分别耗时5,4,3秒钟。有一个查询需求,需要分别调用这3个service的search方法,获取对应会员、订单、产品列表。消费上一次调用的结果,返回另一个结果。示例:等待memberService和orderService都结束后,再执行后面的异步操作。不管上一次调用的结果是什么,没有参数,没有返回值。等待所有并行任务执行后,再执行后面的操作。
2024-09-05 01:22:41
1006
原创 幂等的通用实现方案
幂等指多次操作产生的影响只会跟一次执行的结果相同,通俗的说:某个行为重复的执行,最终获取的结果是相同的,不会因为重复执行对系统造成变化。数据库操作的幂等性,4种种方案都可以,第3种方案算是一种通用的方案,可以在项目框架搭建初期就提供此方案,然后在组内推广,让所有人都知晓,可避免很多幂等性问题。方案4大家也要熟悉这个处理过程。
2024-09-03 04:53:58
907
原创 MQ专题:顺序消息落地方案
投递消息的顺序和消费消息的顺序一致。比如生产者按顺序投递了1/2/3/4/5 这 5 条消息,那么消费的时候也必须按照1到5的顺序消费这些消息。
2024-09-03 02:54:08
993
原创 MQ专题:消费幂等性
消费者从mq中拉取消息后,mq需要将消息从mq中删除,这个删除有2种方式方式1:MQ自动删除消费者从mq中拉取消息后,mq立即就把消息删掉了,此时消费者还未消费。这种可能会有问题,比如消费者拿到消息后,消费失败了,但是此时消息已经被mq删除了,结果会导致消息未被成功消费。方式2:消费者通知MQ删除(也叫手动ack)消费者从mq拉取消息后,做业务处理,业务处理完成之后,通知mq删除消息,这种就叫做消费者手动ack。
2024-09-02 16:19:33
920
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人