一.之前讲述了抽象类,里面既可以定义抽象方法,也可以定义非抽象方法。现在我们要讲的是一种特殊情况。下面是举的例子,内容就是两个抽象方法,可以说由于类中有了抽象方法,所以类就成了抽象类?上面这个类,我们可以用另外一种方式定义,也就是说当一个抽象类中的方法全都抽象的时候,(这是为了引出接口的由来)(当四条边都相等时,就不叫长方形,而是叫正方形。)这仅仅是为了引出接口,它在表现上确实是这样,但实际上它俩
文章目录
原创 2023-06-30 00:44:34
201阅读
Redis基础数据结构使用 文章目录Redis基础数据结构使用Redis keys 命令string(字符串)字符串常用命令getsetsetbitflushdbbitoptlist (列表)列表基本命令LREM key count valueLTRIM key start stopLINDEX与LLENLINSERTRPOPLPUSH source destinationBLPOP key1 [
# 对外接口限流注解Java 在构建高并发的分布式系统时,接口的访问量往往会急剧增加,从而导致系统过载,甚至崩溃。为了有效地管理这些请求,限流技术应运而生。本文将通过介绍 Java 中的限流注解,详细探讨如何使用这些注解对外接口进行限流,以保障系统的稳定性。 ## 什么是限流 限流是指对某个操作在一定时间窗口内的调用次数进行限制,通常以每秒的请求数(QPS)或者每小时的请求总数来表示。常见的
原创 9月前
45阅读
今天面试遇到一个关于接口限流的问题:设计一个方案,保证每秒只有 10 个请求可以访问接口。不得不说,此问题可以很好的考察面试高级工程师岗位的候选人的过往经验。不过很遗憾,我原来并没有做过这方面的工作。在自己的知识储备中,首先想到的是:假如保证每秒只有 1 个请求访问接口,如何实现。在这个前提下,首先想到的是直接加锁,加锁后,每次只有一个请求可以访问接口,但是每个请求的处理时间不确定,可能小于 1s
转载 2023-10-20 09:15:54
68阅读
spring-data-redis  项目,配合 spring 特性并集成 Jedis 的一些命令和方法。配置redis继承到spring管理项目,使用注解实现redis缓存功能。 步骤:1.maven的pom.xml文件导入架包   2.配置文件添加配置   3.spring管理bean的生成,xml文件配置   4. RedisCacheConfig redis自
转载 2024-10-22 20:05:39
36阅读
# Spring Boot Redis 限流 自定义注解 在分布式系统中,限流是一种常见的应用场景,它可以保护系统免受过多的请求压力。在这篇文章中,我们将介绍如何使用Spring Boot和Redis实现一个简单的限流功能,并通过自定义注解来简化代码的编写。 ## 限流算法 在开始介绍具体实现之前,我们先来了解一下常见的限流算法。限流算法的目标是限制对系统的访问速率,以防止系统负载过高而导致
原创 2023-10-02 09:35:06
78阅读
最近搭建的博客网站,详情被人刷了,特意以此来提醒该加限流处理了引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependenc
原创 2023-10-08 16:34:13
163阅读
很早以前,我曾写过两篇介绍如何在SpringBoot中使用Guava和Redis实现接口限流的文章。具体包括:使用Guava实现单机令牌桶限流使用Redis实现分布式限流现在,一个问题摆在我们面前:如何将这两种限流机制整合到同一个组件中,以便用户随时切换呢?显然,我们需要定义一个通用的限流组件,将其引入到业务中,并支持通过配置文件自由切换不同的限流机制。举例而言,当使用limit.type=red
转载 2024-02-24 10:02:17
151阅读
@Documented – 注解是否将包含在JavaDoc中 @Retention – 什么时候使用该注解 @Target – 注解用于什么地方 @Inherited – 是否允许子类继承该注解 @Repeatable - 是否可重复注解,jdk1.8引入@Retention 定义注解的生命周期RetentionPolicy.SOURCE : 仅存在于源代码中,编译阶段会被丢弃,不会包含于c
1. Java自定义注解与SpringJava注解作为程序元素(类、成员变量、成员方法等)的一种元数据信息,对程序本身的执行不会产生影响。通过自定义注解,可以给程序元素添加特殊的声明。 Spring作为构建企业级应用的平台,提供了丰富的功能。将Java自定义注解与Spring结合,在特定场景下实现注解的解析、处理,可以降低应用的耦合度,提高程序的可扩展性。 2. 应用场景下面总结几种应用场景,仅
# Java接口文件流注解Java编程中,文件操作是非常常见且重要的一部分。而在处理文件操作时,有时候我们需要使用注解来对文件进行标记或者处理。本文将介绍Java中如何使用接口、文件流和注解相结合的方式,来实现文件操作的功能。 ## 接口Java中,接口是一种重要的代码组织方式,它定义了一组方法的规范,而不包含实际的实现。接口可以被类实现,从而使类符合接口定义的规范。在文件操作中,我
原创 2024-07-06 05:49:33
46阅读
Redis的实现简易限流的两种方案(基于自定义注解+SpringBoot拦截器)一、基于Redis的 String 结构这里为什么会想到实现这个功能,首先是前段时间看到有人恶意访问博客的评论接口,大量刷取评论,一秒钟请求了上千次写数据库的操作,由于博客网站也是比较简陋,果然项目只有跑起来的时候才是最舒服的,后续基本也没有维护(博客也基本没有再写了),当时就只是把这几千条数据删除了。这几天看代码的时
注解的好处:1.能够读懂别人写的代码,特别是框架相关的代码。2.本来可能需要很多配置文件,需要很多逻辑才能实现的内容,就可以使用一个或者多个注解来替代,这样就使得编程更加简洁,代码更加清晰。3.(重点)刮目相看。(但是怎么样才能让别人刮目相看呢?会用注解不是目的,最重要的是要使用自定义注解来解决问题。)举个栗子:如果面试的时候,你跟老板说你会使用注解,老板觉得你这个人还行;但是如果老板发现你会自定
首先创建一个springboot项目然后添加aop的依赖和lombok依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
文章目录0.前言1.创建注解类1.1.@Target(ElementType.XXX)1.2.@Retention(RetentionPolicy)1.3.@interface注解类1.4.自定义参数1.5.代码2.创建切面类2.1.@annotation(xxx)2.2.代码3.在对应的方法上加上注解4.测试结果5.进阶内容:代码计时器5.1.注解类Timing5.2.切面类TimingAsp
转载 2023-09-08 14:32:22
389阅读
1点赞
  元注解的作用就是负责注解其他注解Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:     1.@Target,     2.@Retention,     3.@Documented,     4.@Inherited   这些类型和它们所支持的类在java.lang.annotat
注解简介注解(Annontation),Java5引入的新特性,位于java.lang.annotation包中。提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。是一种说明、配置、描述性的信息,与具体业务无关,也不会影响正常的业务逻辑。但我们可以用反射机制来进行校验、赋值等操作。常见的注解:@Override,@author,
转载 2023-09-05 21:52:52
102阅读
为什么要限流系统在设计的时候,我们会有一个系统的预估容量,长时间超过系统能承受的TPS/QPS阈值,系统有可能会被压垮,最终导致整个服务不可用。为了避免这种情况,我们就需要对接口请求进行限流。所以,我们可以通过对并发访问请求进行限速或者一个时间窗口内的的请求数量进行限速来保护系统或避免不必要的资源浪费,一旦达到限制速率则可以拒绝服务、排队或等待。限流背景系统有一个获取手机短信验证码的接口,因为是开
原创 2022-09-07 15:21:15
658阅读
自定义注解会需要元注解,此处先介绍元注解。元注解java中有四种元注解:@Retention、@Inherited、@Documented、@Target@Retention注解的保留位置(枚举RetentionPolicy),RetentionPolicy可选值:SOURCE:注解仅存在于源码中,在class字节码文件中不包含CLASS:默认的保留策略,注解在class字节码文件中存在,但运行时
  • 1
  • 2
  • 3
  • 4
  • 5