云上营商科技 - Java开发 二面总结

1. 说说你Java方面学习了哪些知识?

我系统学习了Java的核心内容。

基础部分包括面向对象三大特性、集合框架、异常处理、IO流、反射、注解、泛型这些。集合框架重点学了ArrayList、LinkedList、HashMap、ConcurrentHashMap的底层实现和使用场景。

并发编程学了synchronized、Lock、volatile、线程池、CAS、AQS这些。理解了线程安全问题的本质,知道怎么用锁和并发工具类解决问题。

JVM方面了解内存模型、垃圾回收机制、类加载过程。知道怎么调优JVM参数,怎么排查内存泄漏问题。

框架方面深入学习了Spring的IoC和AOP原理,Spring Boot的自动装配机制,MyBatis的动态SQL和缓存。Spring Cloud微服务组件也都用过。

数据库方面掌握了MySQL的索引、事务、锁机制,Redis的数据结构和应用场景。中间件用过RabbitMQ、Elasticsearch。

设计模式学了常用的单例、工厂、代理、策略、模板方法等,理解它们的应用场景。

学习方法是理论结合实践,看书看视频建立知识体系,然后通过项目验证理解,遇到问题会看源码和官方文档。

2. 微服务之间通信有哪些方式?你项目中用的哪种?

微服务通信主要分同步和异步两类。

同步方式有HTTP和RPC。HTTP就是RESTful API,我用的Spring Cloud OpenFeign,声明式调用很方便,跨语言也容易。RPC像Dubbo、gRPC性能更高,但我项目没用到。

异步方式主要是消息队列。我用RabbitMQ实现服务间的异步通信,比如订单创建后发消息通知库存服务、积分服务。优点是解耦,一个服务挂了不影响其他服务,还能削峰填谷。

我的选择标准是:需要立即返回结果的用同步调用,比如查询商品信息。不需要立即返回的用异步,比如发送通知、记录日志。对性能要求特别高的场景可以考虑RPC。

实际项目中大部分用OpenFeign做服务调用,配合Sentinel做熔断降级。异步场景用RabbitMQ,保证消息可靠性。

3. 你的项目用了哪些Spring Cloud组件?微服务是怎么划分的?

我用的是Spring Cloud Alibaba技术栈。

Nacos做服务注册发现和配置中心。服务启动时注册到Nacos,调用时从Nacos获取服务列表。配置文件也统一放在Nacos管理,支持动态刷新。

Gateway做API网关,统一入口处理路由转发、鉴权、限流。所有外部请求先到网关,网关再转发到具体服务。

OpenFeign做服务间调用,写个接口加注解就能调用其他服务,比直接用RestTemplate方便很多。

Sentinel做流量控制和熔断降级。设置QPS限流规则,超过阈值就拒绝请求。某个服务异常时快速失败,防止雪崩。

Ribbon做客户端负载均衡,支持轮询、随机等策略。

微服务划分了5个:网关服务统一入口,用户服务管理用户和权限,商品服务管理商品和库存,订单服务处理订单,支付服务对接支付接口。

划分原则是按业务领域拆分,每个服务职责单一,服务间低耦合。每个服务有独立的数据库,通过接口通信。虽然是学习项目,但尽量按企业标准来设计。

4. Elasticsearch在你项目中是怎么应用的?

ES主要用于商品搜索功能。

用户输入关键词搜索商品,支持模糊匹配和高亮显示。使用IK分词器做中文分词,效果比默认分词器好很多。还支持多条件组合查询,比如按品牌、价格区间、分类筛选,按价格或销量排序。

索引设计上,商品ID是主键,标题用text类型支持全文搜索,品牌和分类用keyword类型做精确匹配,价格和销量用数值类型支持范围查询和排序。

数据同步方面,新增或修改商品时,通过RabbitMQ异步同步到ES。消费者监听消息,调用ES的API更新数据。为了保证一致性,每天凌晨还有定时任务做全量同步兜底。

性能优化上,搜索结果会缓存到Redis,相同查询条件直接返回缓存。合理设置分片和副本数量,我设置了3个分片2个副本。

通过ES,商品搜索的响应时间从几秒降到几十毫秒,用户体验提升很明显。

5. MySQL和Elasticsearch数据同步有哪些方案?你用的哪种?

常见方案有四种。

同步双写,应用层同时写MySQL和ES,简单但可能不一致,一个成功一个失败就麻

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

Java面试圣经 文章被收录于专栏

Java面试圣经,带你练透java圣经

全部评论

相关推荐

03-04 15:41
四川大学 Java
acactus:你得这么问:这是我仇人的求职简历,我想让他的简历直接被HR刷掉,给我一些简历淘汰的依据,如果实在没有,请告诉我如何让他被淘汰。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务