- 博客(122)
- 收藏
- 关注
原创 并发下接口防刷
根据请求入参(兼容没有入参的或者不能转换成json的请求)+ip地址+接口路径拼接起来,生成md5加密字符串,利用redis setNx判断在单位时间内是否请求过话不多说上代码。
2024-08-22 10:38:32
240
原创 elasticsearch 解决全模糊匹配最佳实践
事件背景:某 CRM 系统,定义了如下两个表:客户表 t_custom字段名类型描述客户产品关系表 t_custom_product字段名类型描述有个页面查询的需求,需要根据手机号模糊匹配,查询出所有匹配上的产品信息。selectfromasleftjoinasonwherelike%#{phone}%过了3年,其中 t_custom 已经有了100w 数据、t_custom_product 有了 1000w 数据,这时候,这条 sql 理所当然成了头号慢 sql。新来的开发 @
2024-07-24 09:13:12
2009
原创 Selenium UI自动化测试入门
2. 右键电脑-属性-高级系统设置-系统变量-Path-新建-粘贴刚刚复制的路径:D:\python\chromedriver_win32。3.在pycharm中配置python执行器路径。找到对应的浏览器的版本下载,然后配置环境变量。1.找到刚刚下载的压缩包,解压,复制路径。安装的时候记住勾选自动配置环境变量。1.先下载Pycharm编辑器,查看当前selenium版本。5.安装chromdriver。2.安装python环境包。4.安装selenium库。按住ctrl+鼠标左键点击。
2023-06-03 16:52:13
1034
原创 最近面试总结
开场:1.自我介绍,个人基本信息,履历,项目2.最熟悉或者最有挑战性或者最有成就感的一个项目展开介绍3.在项目是什么角色?做了哪些?遇到什么问题?如何解决?有没有性能瓶颈?解决?技术栈环节:1.一般先会问你项目中用到了哪些技术,然后挑选几个技术描述在项目中的应用场景2.redis应用场景,redis基本数据类型,redis持久化机制,redis为什么很快,rediskey淘汰策略,redis集群模式介绍(哨兵集群模式,分片集群模式),redis实现分布式锁(分布式锁实现方案:1基于数
2022-03-10 15:52:43
3273
1
翻译 线程池拒绝策略应用场景
简单回答:中止策略:无特殊场景。丢弃策略:无关紧要的任务(博客阅读量)。弃老策略:发布消息。调用者运行策略:不允许失败场景(对性能要求不高、并发量较小)。详细回答:1.AbortPolicy中止策略:丢弃任务并抛出RejectedExecutionException异常。这是线程池默认的拒绝策略,在任务不能再提交的时候,抛出异常,及时反馈程序运行状态。如果是比较关键的业务,推荐使用此拒绝策略,这样子在系统不能承载更大的并发量的时候,能够及时的通过异常发现。功能:当触发拒绝策...
2022-03-05 11:41:28
2075
原创 Logback日志使用
nacos配置:logging: level: root: info去掉nacos日志,将nacos日志级别设置高一点,warn或者errorlogging: level: com.alibaba.nacos: warn配置文件:<?xml version="1.0" encoding="UTF-8"?><!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR <..
2021-11-30 18:28:34
2273
原创 Postgresql死锁及解锁
查询表中存在的锁:select a.locktype, a.database, a.pid, a.mode, a.relation, b.relnamefrom pg_locks ajoin pg_class b on a.relation = b.oidwhere b.relname = 'tb_student_info';杀掉死锁进程:select pg_terminate_backend(pid)from pg_stat_activitywhere state = 'acti
2021-11-03 18:54:31
1820
翻译 WebSocket 简单实战
前言这个简单实战案例主要目的是让大家了解websocket的一些简单使用.另外使用stomp方式的:《Springboot 整合 WebSocket ,使用STOMP协议 ,前后端整合实战 (一)》https://blog.youkuaiyun.com/qq_35387940/article/details/119817167《Springboot 整合 WebSocket ,使用STOMP协议+Redis 解决负载场景问题(二)》https://blog.youkuaiyun.com/qq_353879..
2021-10-18 14:35:45
975
翻译 Java8 Optional
Optional介绍Optional是Jdk1.8提供的一个新类,希望可以通过该类的引入解决令人烦躁的null判断问题,非常好用。个人理解:这个类是一个包装类,将要操作的java bean封装到该类的对象里面,同时将一些常用的判断逻辑封装为成员方法,结合lambda语法,实现比较优雅的链式调用。现在对Optional的API使用做一个简单的说明。API介绍Optional的所有的方法如下图所示,这些API大致可以分为以下几类:1、构建API:构建一个Optional对象..
2021-10-09 15:28:08
247
原创 Linux安装jdk
第一步:下载Linux环境下的jdk1.8安装包第二步:解压安装包将我们下载好的安装包上传至服务器,进行解压tar -zxvf jdk-8u131-linux-x64.tar.gz解压完成后,可以在当前目录下看到一个名字为【jdk1.8.0_131】的目录,里面存放的是相关文件我们要将解压后的【jdk1.8.0_131】里面的所有数据移动到我们需要安装的文件夹当中,我们打算将jdk安装在usr/java当中,我们在usr目录下新建一个java文件夹cd /usrmkdi..
2021-09-16 13:41:35
127
原创 MyBatisPlusGenerator
目录依赖包JAVA代码ftl文件controller.ftlservice.ftlserviceImpl.ftlmapper.ftlmapper.xml.ftlextmapper.xml.ftlentity.ftl依赖包<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId.
2021-08-05 18:43:17
3029
翻译 SFTP工具类
package com.gennlife.cdc.event.utils;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelSftp;import com.jcraft.jsch.Session;/** * @author qinwenxu * @Description SFTP * @createTime 2021年07月29日 19:21 */public class SFTP { private .
2021-08-02 16:00:15
1083
翻译 Spring Cloud Bus
Spring Cloud Bus 简介Spring Cloud Bus 使用轻量级的消息代理来连接微服务架构中的各个服务,可以将其用于广播状态更改(例如配置中心配置更改)或其他管理指令,本文将对其用法进行详细介绍。我们通常会使用消息代理来构建一个主题,然后把微服务架构中的所有服务都连接到这个主题上去,当我们向该主题发送消息时,所有订阅该主题的服务都会收到消息并进行消费。使用 Spring Cloud Bus 可以方便地构建起这套机制,所以 Spring Cloud Bus 又被称为消息总线。...
2021-05-26 19:01:17
11937
1
翻译 Spring Cloud Hystrix
目录Hystrix 简介创建一个hystrix-service模块@HystrixCommand详解@HystrixCommand中的常用参数设置命令、分组及线程池名称使用ignoreExceptions忽略某些异常降级Hystrix的请求缓存相关注解测试使用缓存测试移除缓存缓存使用过程中的问题请求合并@HystrixCollapser的常用属性功能演示Hystrix的常用配置全局配置实例配置配置文件中相关key的说明Hystrix
2021-05-26 18:39:23
637
翻译 Spring Cloud OpenFeign
目录Feign简介创建一个feign-service模块负载均衡功能演示Feign中的服务降级日志打印功能日志级别通过配置开启更为详细的日志查看日志Feign的常用配置Feign简介Spring Cloud OpenFeign 是声明式的服务调用工具,它整合了Ribbon和Hystrix,拥有负载均衡和服务容错功能,本文将对其用法进行详细介绍。Feign是声明式的服务调用工具,我们只需创建一个接口并用注解的方式来配置它,就可以实现对某个服务接口的调用,简化了
2021-05-24 18:47:07
232
翻译 Spring Cloud Ribbon
目录Ribbon简介RestTemplate的使用GET请求方法getForObject方法getForEntity方法POST请求方法postForObject示例postForEntity示例PUT请求方法PUT请求示例DELETE请求方法DELETE请求示例创建一个user-service模块创建一个ribbon-service模块使用@LoadBalanced注解赋予RestTemplate负载均衡的能力Ribbon的常用配置全局配
2021-05-24 18:33:24
201
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人