前言
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Sentinel 具有以下特征:
-
丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
-
完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
-
广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
- 完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
以上内容引自 Sentinel 官方介绍。在本文中,笔者将从实际应用的角度,来学习Sentinel的使用。
蚂蚁金服电话一面
第二天早上10点第一轮电话面试,我们大约聊了半个小时,关于学历工作经验这些都没有问到,对方关注的是一些基本的知识,具体记得的几个问题:
- Spring或者数据库的事物隔离级别和传播特性是怎样的
- JDBC的目的是什么,是一种接口还是一种实现
- 用过哪种连接池,为什么要用连接池
- 用过哪些缓存,用于什么场景,redis怎么实现分布式锁
- 然后问我是否熟悉分布式系统的设计和应用,熟悉分布式框架、中间件、数据库等机制,能不能对分布式常用技术进行合理应用解决问题。
前边的几个问题对我来说很简单,后来接着一波问题说实话如果不是我提前做好了功课,回答起来也不会特别流畅,因为对方连续追问了几层问题,还好我接住了。(我觉得面试前必要的功课不可少!!)
本来我以为没戏了,一个星期后通知我需要现场二面,这对我来说是更大的挑战也是绝佳的机会,因为我知道,我离我的梦想又近了。二面我准备了3天,并且看了他的招聘要求,和职位介绍,把提到的技术点我都重新捋一遍,尽可能让自己准备充足更有信心。
蚂蚁金二面
上午9点面试,面试官除了个子没我高之外,面貌很英俊,比较爱笑,这让我也不那么紧张了,感觉眼缘不错,氛围也不错,做了简单的自我介绍之后,他直奔主题问了我一连串问题,我面试完做了整理分享给大家:
- 自我介绍(工作年限 毕业学校专业 英语几级)
- 介绍项目,在项目中用到了redis实现用户点赞功能和关注功能,项目中为什么用redis以及怎么实现相关功能的
- Java的集合框架(主要是HashMap,1.7和1.8之间的区别)
- 项目中用过的开源框架,为什么要用spring 和 mybatis
- spring的核心功能是什么,介绍一下AOP以及怎么实现的,jdk代理和cglib代理的区别
- 数据库的四大特性,事务的隔离级别,幻读。
- 计算机网络都学了什么(类似说书上的目录),OSI七层每层的任务,数据链路层的功能(答得不全)和协议。
- 数据结构都学了什么,排序算法最快的是哪种说说原理,哪些是不用申请额外空间的
- 树的非递归遍历以及三种遍历知道哪两种不能确定一棵树
- 介绍一下二叉平衡树
- 是否看过jdk源码,说说你说看过的
- 说说concrrent包下的类,然后问了一下Reentrantlock
- 对于Java高并发了解多不多,怎么处理一些秒杀问题
总结
就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!
金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录