Day157,java商城面试题

image.png

3、如何使用


  • 引入场景

  • 访问 http://localhost:8080/actuator/**

  • 暴露所有监控信息为HTTP

management:

endpoints:

enabled-by-default: true # 默认开启所有监控端点

web:

exposure:

include: ‘*’ # 以web方式暴露所有端点

  • 测试

http://localhost:8080/actuator/beans

http://localhost:8080/actuator/configprops

http://localhost:8080/actuator/metrics

http://localhost:8080/actuator/metrics/jvm.gc.pause

http://localhost:8080/actuator/endpointName/detailPath

。。。。。。

4、可视化


https://github.com/codecentric/spring-boot-admin

.

二、Actuator Endpoint

=============================================================================

1、最常使用的端点


| ID | 描述 |

| — | — |

| auditevents | 暴露当前应用程序的审核事件信息。需要一个AuditEventRepository组件。 |

| beans | 显示应用程序中所有Spring Bean的完整列表。 |

| caches | 暴露可用的缓存。 |

| conditions | 显示自动配置的所有条件信息,包括匹配或不匹配的原因。 |

| configprops | 显示所有@ConfigurationProperties。 |

| env | 暴露Spring的属性ConfigurableEnvironment |

| flyway | 显示已应用的所有Flyway数据库迁移。 需要一个或多个Flyway组件。 |

| health | 显示应用程序运行状况信息。 |

| httptrace | 显示HTTP跟踪信息(默认情况下,最近100个HTTP请求-响应)。需要一个HttpTraceRepository组件。 |

| info | 显示应用程序信息。 |

| integrationgraph | 显示Spring integrationgraph 。需要依赖spring-integration-core。 |

| loggers | 显示和修改应用程序中日志的配置。 |

| liquibase | 显示已应用的所有Liquibase数据库迁移。需要一个或多个Liquibase组件。 |

| metrics | 显示当前应用程序的“指标”信息。 |

| mappings | 显示所有@RequestMapping路径列表。 |

| scheduledtasks | 显示应用程序中的计划任务。 |

| sessions | 允许从Spring Session支持的会话存储中检索和删除用户会话。需要使用Spring Session的基于Servlet的Web应用程序。 |

| shutdown | 使应用程序正常关闭。默认禁用。 |

| startup | 显示由ApplicationStartup收集的启动步骤数据。需要使用SpringApplication进行配置BufferingApplicationStartup。 |

| threaddump | 执行线程转储。 |

如果您的应用程序是Web应用程序(Spring MVC,Spring WebFlux或Jersey),则可以使用以下附加端点:

| ID | 描述 |

| — | — |

| heapdump | 返回hprof堆转储文件。 |

| jolokia | 通过HTTP暴露JMX bean(需要引入Jolokia,不适用于WebFlux)。需要引入依赖jolokia-core。 |

| logfile | 返回日志文件的内容(如果已设置logging.file.namelogging.file.path属性)。支持使用HTTPRange标头来检索部分日志文件的内容。 |

| prometheus | 以Prometheus服务器可以抓取的格式公开指标。需要依赖micrometer-registry-prometheus。 |

最常用的Endpoint

  • Health:监控状况

  • Metrics:运行时指标

  • Loggers:日志记录

2、Health Endpoint


健康检查端点,我们一般用于在云平台,平台会定时的检查应用的健康状况,我们就需要Health Endpoint可以为平台返回当前应用的一系列组件健康状况的集合。

endpoint:

health:

show-details: always # 设置单个endpoint health显示详细信息

重要的几点:

  • health endpoint返回的结果,应该是一系列健康检查后的一个汇总报告(有一个不健康,就返回不健康)

  • 很多的健康检查默认已经自动配置好了,比如:数据库、redis等

  • 可以很容易的添加自定义的健康检查机制

在这里插入图片描述

3、Metrics Endpoint


提供详细的、层级的、空间指标信息,这些信息可以被pull(主动推送)或者push(被动获取)方式得到;

  • 通过Metrics对接多种监控系统

  • 简化核心Metrics开发

  • 添加自定义Metrics或者扩展已有Metrics

image.png

4、管理Endpoints


1、开启与禁用Endpoints

  • 默认所有的Endpoint除过shutdown都是开启的。

  • 需要开启或者禁用某个Endpoint。配置模式为 management.endpoint.< endpointName >.enabled = true

management:

endpoint:

beans:

enabled: true

  • 或者禁用所有的Endpoint然后手动开启指定的Endpoint

management:

endpoints:

enabled-by-default: false

endpoint:

beans:

enabled: true

health:

enabled: true

2、暴露Endpoints

支持的暴露方式

  • HTTP:默认只暴露healthinfo Endpoint

  • JMX:默认暴露所有Endpoint

  • 除过health和info,剩下的Endpoint都应该进行保护访问。如果引入SpringSecurity,则会默认配置安全访问规则

| ID | JMX | Web |

| — | — | — |

| auditevents | Yes | No |

| beans | Yes | No |

| caches | Yes | No |

| conditions | Yes | No |

| configprops | Yes | No |

| env | Yes | No |

| flyway | Yes | No |

| health | Yes | Yes |

| heapdump | N/A | No |

| httptrace | Yes | No |

| info | Yes | Yes |

| integrationgraph | Yes | No |

| jolokia | N/A | No |

| logfile | N/A | No |

| loggers | Yes | No |

| liquibase | Yes | No |

| metrics | Yes | No |

| mappings | Yes | No |

| prometheus | N/A | No |

| scheduledtasks | Yes | No |

| sessions | Yes | No |

| shutdown | Yes | No |

| startup | Yes | No |

| threaddump | Yes | No |

.

三、定制 Endpoint

=======================================================================

1、定制 Health 信息


@Component

public class MyHealthIndicator implements HealthIndicator {

@Override

public Health health() {

int errorCode = check(); // perform some specific health check

if (errorCode != 0) {

return Health.down().withDetail(“Error Code”, errorCode).build();

}

return Health.up().build();

}

}

构建Health

Health build = Health.down()

.withDetail(“msg”, “error service”)

.withDetail(“code”, “500”)

.withException(new RuntimeException())

.build();

management:

health:

enabled: true

show-details: always #总是显示详细信息。可显示每个模块的状态信息

@Component

public class MyComHealthIndicator extends AbstractHealthIndicator {

//真实的检查方法

@Override

protected void doHealthCheck(Health.Builder builder) throws Exception {

//mongodb 获取连接进行测试

Map<String,Object> map = new HashMap<>();

if (1 == 1){

// builder.up();//健康

builder.status(Status.UP);

map.put(“count”,1);

map.put(“ms”,100);

}else {

// builder.down();//不健康

builder.status(Status.DOWN);

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例

MyBatis答案解析
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

5)]

[外链图片转存中…(img-nZ5Rb4oJ-1712170569015)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一种面向对象的编程语言,而华为OD(Open Day)是华为举办的为期1-2天的校园招聘活动。在华为OD面试中,通常会有Java方面的问题。 面试者可能会被要求介绍Java的特点和优势,可以提到以下几点:首先,Java是跨平台的,可以在不同的操作系统上运行。其次,Java有丰富的类库和API,开发者可以借助这些工具提高开发效率。再次,Java具有良好的内存管理和垃圾回收机制,可以提高程序的性能和稳定性。此外,Java还有强大的多线程支持和安全性能,可以满足大规模企业级应用的需求。 除了Java的特点,面试者可能还会被要求回答一些具体的 Java 面试题。例如,可能会涉及基本的语法知识,如Java中的数据类型、循环结构、条件语句等等。还可能会涉及到Java的面向对象特性,如封装、继承、多态等。此外,还有可能会问到Java的异常处理、Java的I/O操作、Java集合框架等高级知识点。 在回答这些问题时,面试者应该清晰、简洁地表达自己的思路和观点,尽量避免模棱两可的回答。另外,面试者还可以结合自己的实际项目经验和编码能力,提供具体的案例或示例来支持自己的回答。在面试过程中,沟通能力和解决问题的能力也是重要的评判标准,所以面试者应该积极与面试官互动,展示自己的学习能力和团队合作能力。 总之,在Java华为OD面试中,面试者需要准备好Java基础知识,并能够根据问题灵活作答,展示自己的技术能力和潜力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值