通过滑动窗口实现接口调用的多种限制策略

前言 有个邮箱发送的限制发送次数需求,为了防止用户恶意请求发送邮件的接口,对用户的发送邮件次数进行限制,每个邮箱60s内只能接收一次邮件,每个小时只能接收五次邮件,24小时只能接收十次邮件,一共有三个条件的限制。 实现方案 单机方案 单机简单实现可以用Caffeine,在Caffeine里面Key为

微信小程序预约视频号直播

一、概述 微信小程序提供了可以唤起预约视频号直播弹窗的接口 reserveChannelsLive,该接口接收一个参数 noticeId,通过 getChannelsLiveNoticeInfo 接口获取。因此,过程如下: 查看视频号 id finderUserName --> 调用 getChan

基于webapi的websocket聊天室(番外二)

我比较好奇的是webapi服务器怎么处理http请求和websocket请求。有了上一篇番外的研究,这里就可以试着自己写个非常简易的webapi服务器来接收这两种请求。 效果 http请求 消息打印 响应解析 websocket请求 消息打印 使用聊天室测试 其实两种请求差不多,就只是一些头部字段有

线程安全使用 HashMap 的四种技巧

这篇文章,我们聊聊线程安全使用 HashMap 的四种技巧。 1方法内部:每个线程使用单独的 HashMap 如下图,tomcat 接收到到请求后,依次调用控制器 Controller、服务层 Service 、数据库访问层的相关方法。 每次访问服务层方法 serviceMethod 时,都会在方法

C#事件

C#事件 概述 定义 类或对象可以通过事件向其他类或对象通知发生的相关事情。 发送(或引发)事件的类称为“发布者”,接收(或处理)事件的类称为“订阅者”。 事件是一种特殊的多播委托,是委托实例变量, 事件只能在类的内部定义,只能从声明它的类中进行调用。 外部只能订阅和取消订阅事件。 事件的组成部分

C++ 多态与虚拟:Class 语法语义

1.object与class:在object-oriented programming编程领域,对象(object)有更严格的定义。对象是由数据结构和用于处理该结构的过程(称为methods)组成的实体(instance)。这些方法由对象接收的消息激活。一个对象的内部数据结构与其他对象完全隔离(此属

filter() 函数的学习

1. filter() 函数 用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该接收两个参数, 第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地

[转帖]带宽与流量基本概念

一 带宽与流量基本概念 带宽:统计单位是比特/秒(bps),通常运营商提供的承诺(up to)一般为512Kbps,1Mbps,2Mbps等。 流量:客户上网发送和接收的数据量总和,常用统计单位为字节(Byte)。 二 换算关系 1Byte=8bits(1字节为8比特)因此: 1Byte/sec=8

[转帖]linux 系统 UDP 丢包问题分析思路

https://cizixs.com/2018/01/13/linux-udp-packet-drop-debug/ 最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。 在开始之前,我们先用一张图解释 linux 系统接收网络报文的过程。 首

[转帖]eBPF介绍

https://blog.51cto.com/u_15155099/2767325 1.BPF起源BPF源头起源于一篇1992年的论文,这篇论文主要提出一种新的网络数据包的过滤的框架,如下图所示。提出bpf的原因其实也很简单,早期我们从网卡中接收到很多的数据包,我们要想从中过滤出我们想要的数据包,我

[转帖]Linux性能优化(九)——Kernel Bypass

Linux性能优化(九)——Kernel Bypass https://blog.51cto.com/u_9291927/2594168 一、Linux内核协议栈性能瓶颈 在x86体系结构中,接收数据包的传统方式是CPU中断方式,即网卡驱动接收到数据包后通过中断通知CPU处理,然后由CPU拷贝数据并

[转帖]IO、NIO、BIO 傻傻分不清吗,让我对象告诉你~~

https://my.oschina.net/jiagoushi/blog/5783304 1、Stream 与 Channel stream 不会自动缓冲数据,channel 会利用系统提供的发送缓冲区、接收缓冲区(更为底层) stream 仅支持阻塞 API,channel 同时支持阻塞、非阻塞

[转帖]kubernetes Tcp流量可视化

https://www.cnblogs.com/charlieroro/p/16771739.html 使用k8spacket和grafana的node graph插件可以查看kubernetes pod的TCP相关信息,如connection、bytes、和duration。下面是接收和响应的字节

[转帖]Https、SSL/TLS相关知识及wireShark抓包分析

https://cloud.tencent.com/developer/article/1954070?areaSource=104001.56&traceId=7WZNP412yK3vh7ebw4th0 一、网络通信的三大风险 在HTTP协议中,所有报文的发送、接收都是以明文的形式进行的。也就是说

[转帖]kubernetes Tcp流量可视化

https://www.cnblogs.com/charlieroro/p/16771739.html 使用k8spacket和grafana的node graph插件可以查看kubernetes pod的TCP相关信息,如connection、bytes、和duration。下面是接收和响应的字节

[转帖]Tcpdump抓包命令

tcpdump和ethereal可以用来获取和分析网络通讯活动,他们都是使用libpcap库来捕获网络封包的。 ​在混杂模式下他们可以监控网络适配器的所有通讯活动并捕获网卡所接收的所有帧。 ​要想设置网络接口为混杂模式并执行这些命令来捕获所有的网络封包,需要具有超级用户的权限。 你可以使用这些工具来

【转帖】带宽与流量的基本概念(更新)

一 带宽与流量基本概念 带宽:统计单位是比特/秒(bps),通常运营商提供的承诺(up to)一般为512Kbps,1Mbps,2Mbps等。 流量:客户上网发送和接收的数据量总和,常用统计单位为字节(Byte)。 二 换算关系 1Byte=8bits(1字节为8比特)因此: 1Byte/sec=8

[转帖] Strace的介绍与使用

https://www.cnblogs.com/skandbug/p/16264609.html Strace简介 strace命令是一个集诊断、调试、统计于一体的工具,常用来跟踪进程执行时的系统调用和所接收的信号,我们可以用它来监控用户空间进程和内核的交互。如对应用程序的系统调用、信号传递与进程状

[转帖]jmeter 使用beanshell 编写脚本

目录 一、介绍 1.1 介绍 1.2 下载&启动 二、jmeter中创建beanshell脚本 三、jmeter与beanshell 数据交互 3.1 例子1 beanshell 将变量传给jmeter 3.2 例子二 jmeter 接收beanshell 生成的变量 四、jmeter中Beansh