限流工具使用 开发过程中经常会遇到一些限流的场景,比如为保证服务器自身安全,对接口进行限流;在我们请求一个三方接口时,对方有1分钟内调用次数不能超过多少次的限制。等等。这里先搜罗一些实现方案,具体原理后面慢慢学习补充我们常说的限流,其实更多的都是指时间窗口内的平均速率。
HashMap扩容源码分析 扩容resize方法HashMap底层哈希桶的数据结构是数组,所以也会涉及到扩容的问题。当HashMap的容量达到threshold域值时,就会触发扩容。扩容前后,哈希桶的长度一定会是2的次方。那么到底是怎么扩容的呢?又有哪些精妙的设计呢?一起来看看源码吧final Node<K,V>[] resize() { //oldTab 为当前表的哈希桶 Node<K,V>[] oldTab = table; //当前哈希桶的容量 len
minio自建对象存储(单机版) 1.简介MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。2.官方文档英文文档中文文档github地址3. docker 部署搞一个单机版玩一玩。在云服务上部署,通过nginx反向代理。使用了http 。怕麻烦就没配置https启动脚本 nohup docker run \
k8s集群搭建 安装环境硬件环境虚拟机:VMware® Workstation 16 Pro操作系统:Centos-7.6虚机要求:2核cpu,2g内存,不然初始化master会警告部署规划192.168.31.10 master192.168.31.127 worker1192.168.11.182 worker2软件环境Kubernetes 版本: 1.19.2docker 版本:19.03.0使用kubeadm 进行安装网络插件:选择网络插件:https://kubernetes.i
kafka基础介绍 kafka基础介绍kafka官方文档:http://kafka.apache.org/documentation.html#introductiongithub: https://github.com/apache/kafka中文文档: https://kafka.apachecn.org/documentation.htmlKafka常用命令:https://blog.csdn.net/qq_27399407/article/details/118966702kafka 安装部署:http
kafka常用命令 一、脚本概览bin目录下的脚本作用脚本 作用 connect-distributed.sh 用于启动多节点的Distributed模式的Kafka Connect组件 connect-standalone.sh 用于启动单节点的Standalone模式的Kafka Connect组件 kafka-acls.sh 用于设置Kafka权限,比如设置哪些用户可以访问Kafka的哪些TOPIC的权限 kafka-broker-api-versions.sh 主要
CentOS Kafka 单机集群安装(伪集群) 1、下载解压kafkacd /usr/local/softwget https://mirror.bit.edu.cn/apache/kafka/2.5.0/kafka_2.13-2.5.0.tgztar -xzvf kafka_2.13-2.5.0.tgzcd kafka_2.13-2.5.02、修改配置文件复制3个配置文件cd configcp server.properties server1.properties cp server.properties server
从int和Integer了解自动装箱、自动拆箱制 int 是java的8个原始数据类型(boolean、byte 、short、char、int、float、double、long)之一。Java 语言虽然号称一切都是对象,但原始数据类型是例外。Integer 是 int 对应的包装类,它有一个 int 类型的字段存储数据,并且提供了基本操作,比如数学运算、int 和字符串之间转换等。在 Java 5 中,引入了自动装箱和自动拆箱功能(boxing/unboxing),Java 可以根据上下文,自动进行转换,极大地简化了相关编程。关于 Integer
Kafka相关原理浅析 Topic&Partitiontopic 是存储消息的逻辑概念partition 分区,是消息的屋里存储概念每个topic可以有多个分区相同topic中的不同分区的消息是不同的同一个分区下的消息是顺序的一个topic的不同分区分布在集群中不同的broker中。假设三个broker的集群,下图topic的三个分区就会分布在三个不同的broker上kafka中的的消息...
SpringBoot,SpringCloud版本选择说明 我们都知道,SpringBoot+SpringCloud项目中经常会因版本出现一些奇怪的问题,那么在搭建新的项目是该如何选择SpringBoot和SpringCloud的版本呢?在Spring的官网中其实有说明的;https://spring.io/projects/spring-cloud这里介绍了相关大版本的对应关系,如图所示:那么具体的小版本呢?可以通过这个地址获取小版本的对应关...
java中的四种引用类型 四中引用类型的介绍强引用所谓强引用(“Strong” Reference),就是我们常见的普通对象引用。只要有强引用指向一个对象,就表明这个对象还活着,垃圾收集器不会回收这类对象。对于一个普通对象,只要没有其他引用引用关系,超过了引用的作用域或则显式的将引用赋值为null,就可以被垃圾收集器收集了强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: Obje...
GitFlow分支流程 1.1 简介Gitflow.工作流定义了一个围绕项目发布的格分支模型。虽然比功能分支工作流复杂几分,但提供 了用于一个健壮的用于管理大型项目的框架。Gitflow工作流没有用超出功能分支工作流概念和命令,而是为不同的分支分配一个很明确的角 色,并定义分支之间如何和什么时候进行交。除了使用功能分支,在做准备、维护和记录发布也使用各 自的分支。当然你可以用上功能分支工作所有的好处: Pull ...
final、finally、finalize的区别 final、finally、finalize有什么区别?典型的回答final可以用来修饰类、变量、方法,分别有不同的含义。final修饰类时,该类不可被继承。final修饰变量时该变量不可被修改。final修饰方法时,该方法不可被重写。finally是java中保证关键代码一定被执行的一种机制。我们可以使用try-finally、try-catch-finally来关闭io流、JDBC链接...
Exception和Error的区别 java提供了相对完善的异常处理机制,大大降低了编写和维护可靠程序的门槛。今天来聊一下Exception和Error有什么区别?。典型的回答Exception和Error都继承了Throwable类,在java中只有Throwable类型的示例才可以被抛出或者捕获。Exception是程序正常运行中的意外情况,可以被捕获,做相应的处理。Exception 又分为可检查(checked)异常...
谈谈你对java平台的理解 从你接触 Java 开发到现在,你对 Java 最直观的印象是什么呢?是它宣传的 “Complier once, run anywhere”,还是目前看已经有些过于形式主义的语法呢?你对于 Java 平台到底了解到什么程度?请你先停下来总结思考一下。今天的问题是:谈谈你对java的理解,java是“解释执行”这句话对吗?先科普下什么是“解释执行”? 什么是“编译执行”?解释执行解释执行...