蚂蚁金服P6面试

本文详细探讨了微服务架构中的关键点,包括服务监控指标、性能测试、微服务技术选型、注册中心(Zookeeper与Eureka的对比)、容错机制和故障诊断。同时,涵盖了Spring Boot和Spring Cloud的特点,以及面试中常见的Java技术问题,如HashMap、HashTable、线程安全和并发控制。文章强调了在微服务环境中,理解CAP定理、服务注册与发现、服务高可用性以及故障处理的重要性。
摘要由CSDN通过智能技术生成

1、自我介绍、自己做的项目和技术领域

2、项目中的监控:那个监控指标常见的有哪些?

性能测试需要使用不同的工具,结合系统日志,监控服务器、应用等方面的多项指标。以下阐述监控指标、监控工具、瓶颈分析。

服务端监控指标

性能测试通常需要监控的指标包括:

服务器 Linux(包括CPU、Memory、Load、I/O)。

数据库:Mysql(缓存命中、索引、单条SQL性能、数据库线程数、数据池连接数)。

中间件:1.tomcat 2、nginx   3、memcache(包括线程数、连接数、日志)。

网络: 吞吐量、吞吐率。

应用: jvm内存、日志、Full GC频率。

客户端监控指标

LoadRunner:用户执行情况、场景状态、事务响应时间、TPS、吞吐量等。

测试机资源:CPU、Memory、网络、磁盘空间。

常用监控工具

Jstat

监控java 进程GC情况,判断GC是否正常。

JConsole

监控java内存、javaCPU使用率、线程执行情况等,需要在JVM参数中进行配置。

JMap

监控java程序是否有内存泄漏,需要配合eclipse插件或者MemoryAnalyzer来使用。

JProfiler

全面监控每个节点的CPU使用率、内存使用率、响应时间累计值、线程执行情况等,需要在JVM参数中进行配置。

Nmon

全面监控linux系统资源使用情况,包括CPU、内存、I/O等,可独立于应用监控。

Probe

全面监控tomcat的线程、内存、JVM CPU 使用率、OS 和 JVM内存使用率、交换区使用率、每30秒内接收到的请求数目等等

Memadim

1.   服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新

2.  服务器性能监控:GET、DELETE、INCR、DECR、CAS等常用操作命中率实时监控

3.  支持数据遍历,方便对存储内容进行监视

4.  支持条件查询,筛选出满足条件的KEY或VALUE

性能分析

分析信息来源

5.  监控工具所采集的信息。包括TPS、响应时间、用户并发数、JVM内存、Full GC频率、tomcat连接数,数据sql执行时间、memcache的命中率、nginx的连接数等。

6.  应用服务器的日志。包括错误日志、超时日志等。

7.  项目配合人员所提供的信息。包括DBA提供的数据库监控信息、开发人员提供的代码逻辑信息。

分析标准

1.通过性能指标的表现形式,分析性能是否稳定。比如:

2.响应时间是否符合性能预期,表现是否稳定。

3.应用日志中,超时的概率,是否在可接受的范围之内。

8.  TPS维持在多大的范围内,是否有波形出现,标准差有多少,是否符合预期。

9.  服务器CPU、内存、load是否在合理的范围内,等等。

分析工具

对于部分性能指标,可借助自动分析工具,统计出数据的总体趋势:

1、LoadRunner analysis 分析

LoadRunneranalysis是loadrunner的一个部件,用于将运行过程中所采集到的数据生成报表,主要用于采集TPS、响应时间、吞吐量、服务器资源使用情况等变化趋势。

2、Memory Analyzer分析

Memory Analyzer工具可以解析Jmap dump出来的内存信息,查找是否有内存泄漏。

3、nmon_analyser分析

nmon工具可以采集服务器的资源信息。列出CPU、MEM、网络、I/O等资源指标的使用情况。

4、MONyog分析

 

通过此工具我们能够跟踪到执行比较慢的sql语句,并且可以分析出sql语句执行时扫描的行数,使用的索引情况。

3、微服务涉及到的技术以及需要注意的问题有哪些?

微服务条目    技术    备注
服务开发    Springboot、Spring、SpringMVC     
服务配置与管理    Netflix公司的Archaius、阿里的Diamond等     
服务注册与发现    Eureka、Consul、Zookeeper等     
服务调用    REST、RPC、gRPC     
服务熔断器    Hystrix、Envoy等     
负载均衡    Ribbon、Nginx等     
服务接口调用(客户端调用服务发简单工具)    Feign等     
消息队列    kafka、RabbitMQ、ActiveMQ等     
服务配置中心管理    SpringCloudConfig、Chef等     
服务路由(API网关)    Zuul等     
服务监控    Zabbix、Nagios、Metrics、Spectator等     
全链路追踪    Zipkin、Brave、Dapper等     
服务部署    Docker、OpenStack、Kubernetes等     
数据流操作开发包    SpringCloud Stream(封装与Redis,Rabbit、Kafka等发送接收消息)     
事件消息总线    
SpringCloud Bus

使用微服务时的注意事项

在微服务架构带了很多好处的同时,你需要认识到的很重要的一点,你正在进入分布式计算的世界。分布式计算总是一个复杂的课题,微服务也不例外。在开始使用微服务时,有几件事你需要注意到。

复杂性增加

在微服

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值