Java
Redis 实战应用方案
一、经典面试篇 1.1、Redis 线程架构 1.1.1、Redis是单线程还是多线程? 不同版本,不同架构,不同情况。 Redis 3.x ,单线程; Redis 4.x,引入多线程备份、异步删除等功能,但仍使用单线程处理客户端请求; Redis 6.x+,引入多IO线程处理网络请求,后台异步线程处理RDB、AOF、异步删除、集群同步等,但读写操作命今仍使用单线程。 1.1.2、Redis
java实现标签排序置顶
设计思路 置顶:将该数据放到全局数据收尾,其余数据顺序不变【将需要置顶数据的sort设置为全局Min(sort)-1】 置尾:将数据放到全局末尾,其余不变【将需要置尾的数据sort设置为全局Max(sort)+1】 交换:两位位置交换,其余不变【将需要交换数据的sort互换即可】 拖动:局部顺序变化【将4插到1后面,降顺序变动的数据4、2、3的sort取出然后对sort进行从小到大排序,依次赋值4
maven java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty -> [Help 1]
背景 maven构建访问阿里云maven报的错误,且项目中依赖的jar在阿里云maven中都有,就是下载不下来 aliyun maven Could not transfer artifact 原因 openjdk的证书过期了 解决方法 把openjdk11的cacerts复制到D:softwarejava-se-8u41-rijrelibsecurity 替换cacerts 总结
ThreadPoolExecutor源码解析
public class ThreadPoolExecutor extends AbstractExecutorService ctl int32位 高3位状态位,低29位工作线程数量 默认拒绝策略是报错 ThreadPoolExecutor构造方法 Worker构造方法 父类AbstractExecutorService定义了submit入参Callable方法 包装成Runnable
JMeter如何进行性能测试
jmeter工具除了可以进行接口功能测试外,还可以进行性能测试。当项目趋于稳定,根据性能需求就可以着手准备性能测试了,今天就说一说jmeter如何进行性能测试,jmeter进行性能测试的前提是接口的功能逻辑是通的,没有阻塞bug。 第一步:设置线程数量 第二步:添加事务控制器根据业务场景设置事务,将需要进行并发测试的接口拖拽到事务控制器节点下,输出性能测试报告后可以查看该事务的性能测试结果&nbs
Java 代码执行本地命令
by emanjusaka from https://www.emanjusaka.top/2024/03/java-exec-local-command 彼岸花开可奈何 本文欢迎分享与聚合,全文转载请留下原文地址。 我们可以在命令行中执行各种命令,比如,创建文件、查看文件夹下文件、调用第三方工具等等。 如果想在 java 代码中执行命令应该怎么操作呢?我们有两种方式可以实现: 通过Run
《优化接口设计的思路》系列:第九篇—用好缓存,让你的接口速度飞起来
一、前言 大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 作为一名从业已达六年的老码农,我的工作主要是开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码
面试官:SpringBoot如何优雅停机?
优雅停机(Graceful Shutdown) 是指在服务器需要关闭或重启时,能够先处理完当前正在进行的请求,然后再停止服务的操作。 优雅停机的实现步骤主要分为以下几步: 停止接收新的请求:首先,系统会停止接受新的请求,这样就不会有新的任务被添加到任务队列中。 处理当前请求:系统会继续处理当前已经在处理中的请求,确保这些请求能够正常完成。这通常涉及到等待正在执行的任务完成,如处理HTTP请求、
非Spring项目实现RabbitMq消息生产和消费
问题: 如果脱离了Spring要怎么实现一个RabbitMq生产者和消费者的客户端? 方案 资源 依赖 服务端配置 日志配置 代码 工具类 服务器配置文件工具类 线程池 RabbitConnectionPool RabbitMq Connection(连接)的池化实现 RabbitChannelPool RabbitMq Channel(通道)的池化实现 Commo
Java 中的方法引用运算符 ::
Java 中的方法引用运算符 :: 方法引用运算符:: 在 Java 中,:: 是方法引用运算符,用于引用方法。它可以让你在代码中直接引用现有方法或构造函数,而不需要显式地编写 Lambda 表达式。 方法引用有几种形式: 静态方法引用:ClassName::staticMethodName 实例方法引用:instance::instanceMethodName 类的任意对象方法引用:Class
Go02-运算符+流程控制
Go02-运算符+流程控制 1.运算符基本介绍 Go中的运算符分为:算术运算符、赋值运算符、比较运算符/关系运算符、逻辑运算符、位运算符和其他运算符。 Go中没有三元运算符?。 2.算术运算符 3.关系运算符 4.逻辑运算符 5.赋值运算符 6.位运算符和其他运算符 7.获取用户输入 获取用户的输入方式一,fmt.Scanln()。 获取用户输入的方式二,fmt.Scanf(
限流 SDK 的设计与实现
需求分析 请设计一套 SDK,用于实现接口限流,针对某个 IP 对于特定接口方法的单位时间访问次数进行控制。 限流算法:滑动窗口 可配置项 时间窗口 限流次数 实现思路 算法知识补充 通过滑动窗口实现限流 思想源于计数器(单位时间内数量超过阈值时拒绝请求),但是引入了滑动窗口,相较于固定窗口,更新过程更为平滑,不会出现临界问题(即在更新时刻前后快速涌入流量,不能防止短期流量剧增,却又导致
MyBatisPlus怎么多表关联查询?
在MyBatis Plus中进行多表关联查询通常需要自定义SQL语句,因为MyBatis Plus的默认方法主要是针对单表操作。你可以在Mapper接口中定义自定义查询方法,并使用@Select注解编写SQL语句。 以下是一个简单的例子,假设我们有两个表user和order,我们想要查询用户及其订单信息: 定义User和Order实体类。 创建UserOrderMapper接口。
Jenkins+Gradle持续集成之Jenkins的安装配置自动化打包
来源:https://www.jianshu.com/p/b6d6cd597014 一、工具准备 官方网站:http://jenkins-ci.org/,我的系统是win10的,所以我选择的是红色圈起的Windos版的; 另外一种是war包的,下载地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war Paste
重试队列-让服务更健壮
一.背景 在我们的项目中经常会遇到跟第三方通信的场景,由于三方不受我们的约束,我们不能像在我们项目中用rpc或者已feign的形式进行网络通信,最常见的方式是采用http请求。根据我们不同的业务场景,我们可能是会在我们的业务中同步发送http请求,也有可能做成异步,但无论是同步还是异步,我们都希望我们发送出去的请求是成功的。 但事实上,我们经常会遇到网络或者其他原因导致的失败,失败后只会记录一下
云原生周刊:Istio 加入 Phippy 家族 | 2024.3.18
开源项目推荐 ko "ko" 是一个用于构建和部署 Go 应用程序的简单、快速的容器镜像构建工具。它适用于那些镜像中只包含单个 Go 应用程序且没有或很少依赖于操作系统基础镜像的情况(例如没有 cgo,没有操作系统软件包依赖)。"ko" 在本地机器上通过执行 "go build" 的方式构建镜像,因此不需要安装 Docker。这使得它非常适合轻量级的 CI/CD 场景。"ko" 支持简单的 YAM
Java基础知识篇04——数组
哈喽,大家好!我是白夜,今天给大家聊聊数组。 一、概念 计算机在内存区域分配的一段连续的区域(空间),用来存储同种类型的多个数据 简单的理解,数组就是一堆盒子,同一时间,可以保存多个相同数据类型的数据 数组名 :数组的名字 数组元素:就是存放在数组里面的数据 数组索引:就是数组里面连续存储空间的编号,从0开始 length :数组的属性长度,数组名.length拿到数组的长度 作用:
Kotlin 协程基础使用学习
原文: Kotlin 协程基础使用学习-Stars-One的杂货小窝 本篇阅读可能需要以下知识,否则可能阅读会有些困难 客户端开发基础(Android开发或JavaFx开发) Java多线程基础 kotlin基础 本文尽量以使用为主,以代码为辅讲解,不提及过深协程底层代码逻辑,仅做一个基础入门来快速上手学习(断断续续写了好几个周,若是有错误之处也请在评论区提出 😂) 协程优点 首先,先说下
Serializable是什么,为什么要实现Serializable接口?
什么是Serializable接口 什么是序列化? 为什么要序列化对象 什么情况下需要序列化? 为什么要定义serialversionUID变量 序列化的使用 关于serialVersionUID 定义实体类的时候会先定义一个BaseDomain类用来实现Serializable接口 什么是Serializable接口 一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象
16个最佳开源免费的学校教育系统
16个最佳开源免费的学校教育系统 来源:https://www.toutiao.com/article/7299499135391154725/?&source=m_redirect&wid=1710730120850 教育(Education)狭义上指专门组织的学校教育; 教育是以知识为工具教会他人思考的过程,思考如何利用自身所拥有的创造更高的社会财富,实现自我价值的体现。
好奇: windows10+都可以运行多个linux子系统了,为什么不支持运行多个windows子系统呢?
简介 一般容器都是特指基于linux的容器,其实windows也是有自己的容器系统镜像的,就是 nanoserver镜像 么,但是没有关于桌面windows 的容器镜像,倒是有一些server的镜像. 不过docker毕竟是docker,微软可以做WSL2,还可以开很多个实例, win10+有一个应用"沙箱"(sandbox) 看起来是一个隔离的,但是没有保存机制.而且开多个实例比较费. 为什么就
工作中最常见的6种OOM问题
前言 最近我写的几篇线上问题相关的文章:《糟糕,CPU100%了》《如何防止被恶意刷接口》《我调用第三方接口遇到的13大坑》发表之后,在全网广受好评。 今天接着线上问题这个话题,跟大家一起聊聊线上服务出现OOM问题的6种场景,希望对你会有所帮助。 1 堆内存OOM 堆内存OOM是最常见的OOM了。 出现堆内存OOM问题的异常信息如下: 此OOM是由于JVM中heap的最大值,已经不能满足需求了
Linux安装jdk和mysql
Linux安装jdk和mysql JDK安装 操作步骤: 使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux空jdk-8u171-inux-x64.tar.gz(这里注意自己的路径即可) 解压安装包,命令为tar-zxvf jdk-8u171-linux-x64.tar.gz-C/usr/local 配置环境变量,使用vim命令修改/etc/profile文件,在文件末
实现 React-redux(一) connect 和 mapStateToProps
1.结合 context 和 store import React, { Component } from 'react';import PropTypes from 'prop-types' function createStore (reducer) { let state =