java 面试题总结

1锁粗化和锁消除,锁膨胀和锁升级的区别。

https://www.cnblogs.com/xuxinstyle/p/13387778.html

.无锁 < 偏向锁 < 轻量级锁 < 重量级锁 ,说的时候不要忘记说无锁状态

2.Map 的实现,线程安全的实现

1、ConcurrentHashMap在JDK 1.7中使用的数组 加 链表的结构,其中数组分为两类,大树组Segment 和 小数组 HashEntry,而加锁是通过给Segment添加ReentrantLock重入锁来保证线程安全的。

2、ConcurrentHashMap在JDK1.8中使用的是数组 加 链表 加 红黑树的方式实现,它是通过 CAS 或者 synchronized  来保证线程安全的,并且缩小了锁的粒度,查询性能也更高。

3. springcloud 熔断降级,什么是熔断降级,你们是怎样处理的。

服务熔断一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施。

服务降级是在服务器压力陡增的情况下,利用有限资源,根据当前业务情况,关闭某些服务接口或者页面,以此释放服务器资源以保证核心任务的正常运行。

这个问题日常工作中一般有个监控软件,监控服务状态比如cpu,内存,服务的健康性,服务异常会发报警, 然后开发人员处理,但是具体这个属于熔断还是降级,这个貌似啥也不属于。

4.eureka的健康检查

注册中心的心跳机制有两种形式:客户端主动上报和客户端被动响应。

Eureka属于是主动上报类型的,Client通过renew机制频繁的向Server发送消息,通知Server它还活着,不要将其从服务列表中剔除,但是我们renew仅仅是监控Client是否存活,并不会去检测Client依赖的服务是否存活

renew最基础的就是调一下Server的/apps/{appName}/{instanceId}?status=&lastDirtyTimestamp=接口,正常情况下Client启动后的status为UP,所以只要Client自身服务不出问题,永远都是UP,默认的指示器是CompositeHealthIndicator,默认的管理器为EurekaHealthCheckHandler;

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

eureka.clientt.healthcheck.enabled = true

eureka.instance.lease-renewal-interval-in-seconds=15 默认是30s

自定义监控指标参考 Eureka心跳检测-CSDN博客

# Dockerfile 示例
FROM openjdk:17-jdk-slim
# 假设你的Spring Boot应用编译打包后的jar名为app.jar
COPY target/app.jar /app.jar
# 设置环境变量以启用Spring Boot Actuator的健康检查端点
ENV SPRING_BOOT_ADMIN_CLIENT_HEALTH-CHECK-URL=http://localhost:8080/actuator/health
# 定义健康检查命令,每30秒执行一次,连续两次失败判定为不健康
HEALTHCHECK --interval=30s --timeout=5s --start-period=1m --retries=2 CMD curl -f http://localhost:8080/actuator/health || exit 1
# 指定容器启动时运行的应用
ENTRYPOINT ['java', '-jar', '/app.jar']

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/720811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第五套CCF信息学奥赛c++练习题 CSP-J认证初级组 中小学信奥赛入门组初赛考前模拟冲刺题(阅读程序题)

第五套中小学信息学奥赛CSP-J考前冲刺题 二、阅读程序题 (程序输入不超过数组或字符串定义的范围&#xff0c;判断题正确填√错误填X;除特殊说明外&#xff0c;判断题 1.5分&#xff0c;选择题3分&#xff0c;共计40分) 第一题 递归函数 1 #include<iostream> 2 usin…

git常用命令集合

1.差异对比 显示出branch1和branch2中差异的部分 git diff branch1 branch2 --stat显示出所有有差异的文件的详细差异 git diff branch1 branch2查看branch1分支有&#xff0c;而branch2中没有的log git log branch1 ^branch22.分支 列出所有本地分支 git branch列出所有远…

学生管理系统(python实现)

新增学生显示学生查找学生删除学生存档到文件 约定好数据的存储格式&#xff1a; 约定把数据保存在和py文件同级目录中&#xff0c;文件名为record.txt 文件内容按照行文本的方式来表示 首先这是一个文本文件&#xff0c;里面包含了很多行&#xff0c;每一行代表一个学生 …

主要用于工控主板、工业控制器、程序烧录下载器、仿真器、新能源充电桩等众多涉及RS232通讯的产品——D3232

一、应用领域 D3232芯片主要用于工控主板、工业控制器、程序烧录下载器、仿真器、新能源充电桩等众多涉及RS232通讯的产品。 二、基本特性 D3232芯片由两个线路驱动器、两个线路接收器和双电荷泵电路组成&#xff0c;具有HBM>15kV、CDM>2kV的ESD保护能力&#xff0c;并且…

NLP_文本张量表示方法_2(代码示例)

目标 了解什么是文本张量表示及其作用.文本张量表示的几种方法及其实现. 1 文本张量表示 将一段文本使用张量进行表示&#xff0c;其中一般将词汇为表示成向量&#xff0c;称作词向量&#xff0c;再由各个词向量按顺序组成矩阵形成文本表示. ["人生", "该&q…

【力扣 - 盛最多水的容器】

题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容…

LeetCode 0232.用栈实现队列:基础数据结构的学习

【LetMeFly】232.用栈实现队列&#xff1a;基础数据结构的学习 力扣题目链接&#xff1a;https://leetcode.cn/problems/implement-queue-using-stacks/ 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff0…

【源码】imx6ull实现触摸屏单点实验-移植tslib和qt

一、本实验实验的器材&#xff1a; 1.正点原子imx6ull的阿尔法开发板v2.2 2.屏幕ALIENTEK 4.3 RGBLCD 二、实验已经移植好的文件&#xff1a; 仓库代码&#xff1a;https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git 1.文件说明 arm-qt.tar.bz2&#xff1a;移植好的…

笔记本电脑里回收站删除的文件怎么找回来?这几招帮你恢复

在日常使用笔记本电脑的过程中&#xff0c;我们可能会因为不小心或者误操作&#xff0c;将一些重要的文件删除到回收站&#xff0c;甚至可能直接从回收站中清空。面对这种情况&#xff0c;很多人会感到惊慌失措&#xff0c;不知道如何是好。但其实&#xff0c;即使文件从回收站…

通过SDKMAN安装各种版本JDK

文章目录 1. 安装SDKMAN管理器2. 通过SDK管理器安装JDK3. 参考链接 1. 安装SDKMAN管理器 安装SDKMAN的脚本为: # 1.1 安装: 如果没有权限可以考虑sudo用户执行; curl -s "https://get.sdkman.io" | bash# 1.2 安装完成后查看版本号 sdk version# 1.3 查看帮助信息 …

4 款用文本生成视频(text-to-video)的 AIGC 工具推荐

多模态大模型MiniGPT4和LLaVA开源&#xff08;GPT4图文对话平替&#xff09;&#xff1b;MOSS等模型放出权重 - 哔哩哔哩 Runway Gen2 Video-LLaVA: 论文地址:https://arxiv.org/pdf/2311.10122.pdfGitHub 地址:https://github.com/PKU-YuanGroup/Video-LLaVAHuggingface demo…

TQ15EG开发板教程:创建运行petalinux2019.1

工程网盘链接&#xff1a;https://pan.baidu.com/s/1vFRpzmbifXt7GypU9aKjeg 提取码&#xff1a;0ylh 首先需要使用与petalinux相同版本的vivado创建工程&#xff0c;与之前不同的是在创建硬件设计时需要勾选上添加bit文件&#xff0c;所以要在生成bit文件之后再创建硬件设计…

如何搭建Nacos集群

1.搭建Nacos集群 众所周知&#xff0c;在实际的工作中&#xff0c;Nacos的生成环境下一定要部署为集群状态 其中包含3个nacos节点&#xff0c;然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。 我们计划的集群结构&#xff1a; 我就直接在本机上开三个Nacos来搭…

【swift】struct与class 的区别

数据类型&#xff1a;struct是值类型&#xff0c;class是引用类型。 值类型变量直接包含数据&#xff0c;赋值时也是值拷贝&#xff0c;或者叫深拷贝&#xff0c;所以多个变量的操作不会相互影响。 引用类型变量存储的是对数据的引用地址&#xff0c;后者称为对象&#xff0c;…

Spring(22) Spring中的9种设计模式

目录 一、简单工厂模式&#xff08;Simple Factory&#xff09;二、工厂方法模式&#xff08;Factory Method&#xff09;三、单例模式&#xff08;Singleton&#xff09;四、适配器模式&#xff08;Adapter&#xff09;五、代理模式&#xff08;Proxy&#xff09;七、观察者模…

【StarryCoding P101】排水管道 题解(单调栈+贪心算法)

[P101] 排水管道 问题描述 给定一个长度为 n n n 的数组 a a a &#xff0c;请问至少修改多少个元素&#xff0c;可以使得数组成为一个严格上升的序列。 数组中需要时刻保持 a i > 0 a_i > 0 ai​>0。 输入描述 第一行一个整数 T T T 表示测试用例个数。 ( …

C++练手题系列一

第 1 题 【 问答题 】 • 有多少种二叉树 输入n(1<n<13)&#xff0c;求n个结点的二叉树有多少种形态 时间限制&#xff1a;1000 内存限制&#xff1a;65536 输入 整数n 输出答案 样例输入 3 样例输出 5 第 2 题 【 问答题 】 • 城堡问题 1 2 3 4 5 6 7 ################…

【Golang星辰图】探索网络和HTTP的奇妙世界:使用Go语言打造高性能应用

提升Web开发效率&#xff1a;学会使用Go语言的网络和HTTP库 前言 随着互联网的快速发展&#xff0c;网络和HTTP成为了现代应用开发中必不可少的部分。Go语言作为一门快速、可靠和高效的编程语言&#xff0c;提供了丰富的网络编程和HTTP处理库&#xff0c;使得构建高性能的网络…

凌特杯,第二届,数字音频传输。simulink matlab

终于比赛进入了尾声&#xff0c;最为指导老师也是非常的激动。接下来进入了论文写作阶段和视频拍摄阶段。 第二届凌特杯规定的硬件是ADI的Pluto&#xff0c;成本在2k以内&#xff0c;能支持MATLAB&#xff0c;它能够流畅的实时播放接收到的音乐数据&#xff0c;并把数据保存成…

家居EDI:La-Z-Boy EDI 项目案例

家居行业市场规模庞大&#xff0c;总规模稳定增长。随着信息技术的发展以及全球化进程的加快&#xff0c;许多家居行业的老牌企业在全球范围内广泛扩展其供应链体系&#xff0c;产业链较长&#xff0c;从原材料生产供应、生产制造到销售运输&#xff0c;如何高效、准确地处理这…