自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AI乔治

站在巨人的肩膀上写代码

  • 博客(20)
  • 收藏
  • 关注

原创 一名百万薪资的java架构师应该具备什么技能?

所谓架构师,思考的是全局的东西,是如何组织你的系统,以达到业务要求,性能要求,具备可扩展性(scalability),可拓展性(extendability),前后兼容性等。可能涉及到的东西包括了从硬件到软件的方方面面,实在是一言难尽。既然java架构师,首先你要是一个高级java攻狮城,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池…:;java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案jav..

2020-09-24 15:23:20 2999 2

原创 新鲜出炉!Github标星 8K+,最新Java后端面试全家桶

JVM面试题合集1:内存模型以及分区,需要详细到每个区放什么。2:堆里面的分区:Eden,survival (from+ to),老年代,各自的特点3:对象创建方法,对象的内存分配,对象的访问定位。4:GC 的两种判定方法5:SafePoint 是什么6:GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?7:GC 收集器有哪些?CMS 收集器与 G1 收集器的特点。8:Minor GC 与 Full GC 分别在什么时候发生

2020-09-23 22:09:33 327 2

原创 一次 Java 进程 OOM 的排查分析(glibc 篇)

遇到了一个 glibc 导致的内存回收问题,查找原因和实验的的过程是比较有意思的,主要会涉及到下面这些:Linux 中典型的大量 64M 内存区域问题 glibc 的内存分配器 ptmalloc2 的底层原理 如何写一个自定义的 malloc hook 动态链接库 so glibc 的内存分配原理(Arena、Chunk 结构、bins 等) malloc_trim 对内存真正回收的影响 gdb 的 heap 调试工具使用 jemalloc 库的介绍与应用背景前段时间有同学反馈一个 j

2020-09-23 13:30:41 1295 3

原创 2020年最全架构师成长路线——(消息队列、缓存、微服务、调度、OLT(A)P、CI/CD)

2020年新版,对部分组件的描述进行了更新。19年文章参见 这里 。如果你在做选型方面的工作,或者想了解一些现在正在流行的技术,那么这篇文章正好适合你。本篇内容涵盖14个方面,涉及上百个框架和工具。会有你喜欢的,大概也会有你所讨厌的家伙。这是我平常工作中打交道最多的工具,大小公司都适用。如果你有更好的,欢迎留言补充。一、消息队列二、缓存三、分库分表四、数据同步五、通讯六、微服务七、分布式工具八、监控系统九、调度十、入口工具十一、OLT(A)P十二、...

2020-09-23 12:46:08 942 1

原创 重大事故!IO问题引发线上20台机器同时崩溃

几年前的一个下午,公司里码农们正在安静地敲着代码,突然很多人的手机同时“哔哔”地响了起来。本来以为发工资了,都挺高兴!打开一看,原来是告警短信故障回顾告警提示“线程数过多,超出阈值”,“CPU空闲率太低”。打开监控系统一看,订单服务所有20个服务节点都不行了,服务没响应。每个springboot节点线程数全都达到了最大值。但是JVM堆内存和GC没有明显异常。CPU 空闲率基本都是0%,但是CPU使用率并不高,反而IO等待却非常高。下面是执行top命令查看CPU状况的截图:...

2020-09-22 20:55:14 366 1

原创 YGC问题排查,又让我涨姿势了!

在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题。我们团队负责的广告系统承接了比较大的C端流量,平峰期间的请求量基本达到了上千QPS,过去也遇到了很多次GC相关的线上问题。这篇文章,我再分享一个更棘手的Young GC耗时过长的线上案例,同时会整理下YGC相关的知识点,希望让你有所收获。内容分成以下2个部分:从一次YGC耗时..

2020-09-20 14:45:37 1037

原创 阿里的这三行代码绝了,Java载入史册

前几天,在全国抗击新冠肺炎疫情表彰大会上,阿里的三行健康码代码被载入史册。健康码在疫情防控期间,是中国数字化抗疫见证。这三行代码分别是:支付宝团队研发的健康码系统第一行代码;阿里云研发的全国健康码引擎第一行代码;阿里巴巴达摩院研发的新冠肺炎CT影像AI辅助诊断产品第一行代码。这段代码用到了@RestController注解,那么这个注解和@Component的注解有什么关系呢?首先就得清楚@Component注解的底层工作原理,才能明白@RestController注...

2020-09-19 01:25:41 1771 1

原创 【高并发】面试官:性能优化有哪些衡量指标?需要注意什么?

写在前面最近,很多小伙伴都在说,我没做过性能优化的工作,在公司只是做些CRUD的工作,接触不到性能优化相关的工作。现在出去找工作面试的时候,面试官总是问些很刁钻的问题来为难我,很多我都不会啊!那怎么办呢?那我就专门写一些与高并发系统相关的面试容易问到的问题吧。今天,我们就来说说在高并发场景下做性能优化有哪些衡量标准,以及做优化时需要注意哪些问题。面试场景面试官:平时工作中有没有做过一些性能优化相关的工作呢?首先,我们来分析下面试官的这个问题。其实,以我本人招聘面试的经验来说,如果面试官问出了

2020-09-18 21:14:34 359

原创 高吞吐、低延迟 Java 应用的 GC 优化实践

本篇原文作者是 LinkedIn 的 Swapnil Ghike,这篇文章讲述了 LinkedIn 的 Feed 产品的 GC 优化过程,虽然文章写作于 April 8, 2014,但其中的很多内容和知识点非常有学习和参考意义。背景高性能应用构成了现代网络的支柱。LinkedIn 内部有许多高吞吐量服务来满足每秒成千上万的用户请求。为了获得最佳的用户体验,以低延迟响应这些请求是非常重要的。例如,我们的用户经常使用的产品是 Feed —— 它是一个不断更新的专业活动和内容的列表。Feed 在 .

2020-09-18 14:33:41 608

原创 一次“内存泄露”引发的血案

对性能不佳的Ark Server进行了改造和重写。重编发布一段时间后,结果发现新发布的Svr的机器内存一直在上涨。如下图示:观察后,第一反应是完了,一定存在内存泄露。花了3、4天时间,使用各种办法进行定位,一无所获。后来无意中在SPP日志中发现了端倪,日志中一直打印tcp socket[%d] user check pkg not ok, but no more memory,看代码逻辑,是收包缓冲区太小,导致调用方不断使用new操作来扩充缓冲区,我仔细检查了下调用方的代码逻辑...

2020-09-17 22:44:08 363

原创 一次年轻代GC长暂停问题的解决与思考

问题描述公司某规则引擎系统,在每次发版启动会手动预热,预热完成当流量切进来之后会偶发的出现一次长达1-2秒的年轻代GC(流量并不大,并且LB下的每一台服务都会出现该情况)在这次长暂停之后,每一次的年轻代GC暂停时间又都恢复在20-100ms以内2s虽然看起来不长,但是对比规则引擎每次10ms左右的响应时间来说,还是不可以接受的;并且由于该规则引擎响应超时,还会导致出单超时失败问题分析在分析该系统GC日志后发现,2s暂停发生在Young GC阶段,而且每次发生长暂停的Young GC都会伴

2020-09-17 22:40:07 221

原创 一次压缩引发堆外内存过高的教训

一、项目介绍lz_rec_push_kafka_consume该项目通过kafka与算法进行交互,通过push推荐平台(lz_rec_push_platform)预生成消息体。二、问题背景发现项目的k8s容器会出现重启现象,重启时间刚好是push扩量,每小时push数据量扩大5倍左右。发生问题时,容器配置:CPU:4个,内存:堆内3G,堆外1G。三、问题排查流程:望-闻-问-切望:查看监控系统,观察重启发生时,容器实例的资源情况注:容器重启机制:k8s监控发现“实例”内存使用超

2020-09-16 20:29:21 992

原创 P7 已烂大街,你却还在每天外包CRUD?

大家都知道我是技术出身,在这个领域做了很多年,在 Java 领域不算大神也算专家了,同时也面试过很多人,对选人用人也有自己的心得。如果你现在已经是一个 Java 工程师,但是经验积累的还不够,那这个阶段就是你成长极快的时候。前提是,你认同我之前经常说那句话:从你入行那一刻起,你就要不停地学习。对于 Java 工程师来说,想在业务能力上更进一步、让自己更值钱,最大的捷径就是用正确的方法来学习,好的方法能让你事半功倍,下面就是我在学习中总结的两个“捷径”:第一,用企业的技术要求来训练自己。..

2020-09-16 00:24:40 585

原创 Spring事务是如何应用到你的业务场景中的?

初衷日常开发中经常用到@Transaction注解,那你知道它是怎么应用到你的业务代码中的吗?本篇文章将从以下两个方面阐述Spring事务实现原理:解析并加载事务配置:本质上是解析xml文件将标签加载成 BeanDefinition 对象; 生成事务代理对象并运行:本质上是Spring AOP在事务这块的应用,将业务Bean替换成事务代理对象(JdkDynamicAopProxy:JDK代理,CglibAopProxy:CGLIB代理);本文使用的源码版本是Spring 4.3.18.REL..

2020-09-14 22:45:44 839

原创 详解华为鸿蒙系统中的 JS 开发框架

前天鸿蒙终于发布了,开发者们也终于“沸腾”了。源码托管在国内知名开源平台码云上,https://gitee.com/openharmony我也第一时间下载了源码,研究了一个晚上,顺带写了一个 hello world 程序,还顺手给鸿蒙文档提了 2 个 PR。当然我最感兴趣的就是鸿蒙的 JS 框架 ace_lite_jsfwk,从名字中可以看出来这是一个非常轻量级的框架,官方介绍说是“轻量级 JS 核心开发框架”。当我看完源码后发现它确实轻。其核心代码只有 5 个 js 文件,大概也就 300

2020-09-12 16:30:09 9170 2

原创 全网首篇华为鸿蒙OS详解

1.前序部分1.1 官网:https://www.harmonyos.com网上搜索第一个不是官方是三方的1.2.IDE下载位置:源码编译的下载:https://device.harmonyos.com/cn/ide开发应用的下载:https://developer.harmonyos.com/cn/develop/deveco-studio#download1.3.源码位置:https://device.harmonyos.com/cn/docs/start/get-code...

2020-09-12 00:14:36 5310 2

原创 JAVA三年面试总结,金九银十,你准备好了吗?

三次握手的原因?三次握手TCP协议建立连接的过程。原因或目的是为了证明客户端和服务端都有发送和接收的能力。原理:第一次:客户端发送SYN包给服务端第二次:服务端接收后在SYN包中的序列号+1 (即SYN+ACK包) 发送给客户端第三次:客户端收到服务端的SYN包后,在SYN包中的序列号+1后 (ACK包) 发送给服务端为啥四次挥手?四次挥手是TCP释放连接的过程。原因:客户端和服务端会各自发送1次和回复1次,共4次tcp/udp分别的应用场景?tcp准确度高,适用于文件传输

2020-09-11 21:38:22 235

原创 熬夜都要看完的Spring干货汇总

Spring Boot专题基础入门内容SpringBoot快速入门 Why Spring Boot 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程 Spring Boot开发Web应用 Spring Boot构建RESTful API与单元测试 Spring Boot中Web应用的统一异常处理 Spring Boot中使用Swagger2构建强大的RESTful API文档 Spring Boot中使用JavaMailSe

2020-09-10 15:52:05 172

原创 10年Java后端老兵,三面阿里后面试总结

前言:转眼间,又快到了年底,今年是最不怕平凡的一年,年初随着疫情袭来,在家办公了好几个月。也就是今年,也是自己在上海的第10个工作年头,自己也慢慢的步入了30岁的中年危机。所以在上个月底,自己也是果断的选择了离职,就此踏上了大家所熟悉的金九银十就业面试高峰的大队伍中。在此面试期间,投递了蚂蚁金服、百度、滴滴、美团、阿里、京东等一线大厂,还有其他独角兽,从中也去面试了几家,面试的内容大概的也差不多,大多数问的都是些线程并发、spring、分布式等内容。但让我印象最深刻的,还是去阿里的面试,因为我对..

2020-09-08 23:17:09 654

原创 阿里微服务布道师:详解微服务架构设计

微服务软件架构是一个包含各种组织的系统组织,这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。Conway’s law: Organizations which design systems[...] are constrained to produce designs which are copies of the communication structures of these organization

2020-09-07 23:51:15 823

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除