提交 85ce13ad 编写于 作者: 小傅哥's avatar 小傅哥

回答内容更新

上级 2d04ad68
......@@ -31,4 +31,79 @@
运维:此类项目多以部署服务、系统压测、性能监控、插件开发为主,比如一些低代码平台也是从此类技术中衍生出来的,如果你能在面试中说上一些,也是非常不错的。
没有空空荡荡的包装,只有深入的学习和实践,才能在面试中不被问住!从以上这些方面下手吧!
\ No newline at end of file
没有空空荡荡的包装,只有深入的学习和实践,才能在面试中不被问住!从以上这些方面下手吧!
---
问一个工作中遇到的问题,需要导出数据生成excel,整个流程就是读数据-->生成excel(单sheet页)-->每200个生成7z压缩包-->上传文件服务器-->更新任务,生成excel时使用了多线程,目前从日志情况看来1s生成一个,还有什么方法可以优化生成速度,目前想到了excel模板读入内存中,别的还请给点优化建议
一般此类集中式的任务,建议通过分布式的方式进行处理。可以把多线程拆分为多服务操作。比如:
1. 使用分布式任务的方式进行处理,把需要生成的 excel 划分为不同的任务清单,之后这个清单信息交给分布式集群中不同的任务实例进行处理。
2. 也可以通过MQ的方式替换多线程生成,也算是一种把生成excel的任务拆解到不同的机器上去执行。
3. 其实无论如何都是在想办法去集中化,没必要非得压榨一台机器的性能,除非你那只有一台机器。
---
提问:傅哥 我想了解下互联网公司在项目上线前是如何进行一个全面的性能测试的。比如内存占用,cpu占用,还有网络的负载情况等等
一般较大型的互联网公司都有比较完善的运维服务,包括上线发布、系统监控、数据库监控、机器监控、网络监控等等,这些监控系统中可以提供:日志打印、链路追踪、TP99、TP999、QPS、TPS、可用率、调用时长、数据库耗时、redis耗时、逻辑耗时、内存占比、CPU、LOAD、IO、数据库慢查询、数据库连接数、数据库事务等等。基本上目前在阿里以及专门做监控组件的公司,都提供了以上各种监控工具,可以使用下。
例如:使用字节码插桩方式的非入侵的全链路监控,就能打印各项信息。
==========================================================
onTransformation:class org.itstack.demo.test.ApiTest
测试结果:hi2 悟空
测试结果:hi1 哪咤
测试结果:hi3 悟空
链路追踪(MQ):608a1cbf-ef1f-4195-bdc7-c3729a114f8d org.itstack.demo.test.ApiTest.http_lt3 耗时:111ms
测试结果:hi2 哪咤
init: 192MB max: 2708MB used: 43MB committed: 184MB use rate: 23%
init: 2MB max: 0MB used: 13MB committed: 14MB use rate: 95%
name: PS Scavenge count:0 took:0 pool name:[PS Eden Space, PS Survivor Space]
name: PS MarkSweep count:0 took:0 pool name:[PS Eden Space, PS Survivor Space, PS Old Gen]
-------------------------------------------------------------------------------------------------
链路追踪(MQ):608a1cbf-ef1f-4195-bdc7-c3729a114f8d org.itstack.demo.test.ApiTest.http_lt2 耗时:338ms
init: 192MB max: 2708MB used: 43MB committed: 184MB use rate: 23%
init: 2MB max: 0MB used: 13MB committed: 14MB use rate: 95%
name: PS Scavenge count:0 took:0 pool name:[PS Eden Space, PS Survivor Space]
name: PS MarkSweep count:0 took:0 pool name:[PS Eden Space, PS Survivor Space, PS Old Gen]
-------------------------------------------------------------------------------------------------
---
你好,傅哥,我是从读者晋级成粉丝的,最早就看过傅哥第一版的关于设计模式的文章,写的很有意思,奈何一致没找到组织,哈哈,傅哥,想跟您聊一下几个问题,最近太困扰我了
1.面临选择,回家和继续在一线城市中奋斗, 其实生活都是自己选择的,可是非得两难的处境中挣扎,对于我自身,属于Java后端的从业者,目前是工作时间不到两年,除了提升自己技术之外,也更需要锻炼自己的抵抗外界的不确定性,想问一下傅哥就目前而言,如何技术实力提升的同时,需要习惯或者思维方式,可以更好的锻炼自己,想要进大厂
2.对于技术学习,一般从什么开始,我可能就直接从官网,或者搜个视频就直接开始了,但是感觉自己学的技术点很松散,想问一下傅哥,您如果学习一个新的技术点,比如dubbo的,怎么系统开始,多面手的展开
3.傅哥的文章我基本都在读,公众号中的文章质量都很高,基本是一周2-3 篇, 很干货,您平时都是怎么做时间管理的?对于自己一天您一般时怎么规划的?
4.傅哥,最近看的一本书是什么?
1. 不知道你目前是否在大厂还是一般的小企业中,在技术学习上是否可以有充足的土壤环境?
2. 其实除了一线城市,其他很多城市并没有这样的技术氛围,如果冒然离开,可能自己会后悔。
3. 就我自己而言,工作两年的时候,正是从一个传统的外包行业跳槽到互联网。因为平时喜欢折腾各类技术,也经常总结整理资料,所以从传统行业到互联网并没有太大的压力。
4. 在公司中工作不太可能一直长久下去,到了一定年纪可以开始考虑以后的出路,比如35-40岁,自己还能做点什么、身体还健康吗、坚持跑步吗、持续学习吗,这些都是你在不确定性因素中获利的必要条件。
5. 关于技术学习,我的方式是:头几年时候自己积累的少,新技术完全没用过,就找视频、找案例,越简单、越快速入门越好。但随着时间的推移和自身技术的积累,目前对于新技术的学习,我更喜欢先做做案例,之后看看源码。就比如 RPC 框架 Dubbo 而言,我的方式是照着它的源码,自己实现了一个简单的 RPC 服务,别说,实现完之后,真的是很通透。但这样的手写的方式对新人压力不小,你需要学过一定的设计模式、Spring源码、扩展类的技术如Netty、字节码框架等等,来支撑你学习新技术点中的各项内容。
6. 目前我的时间安排,主要是早睡早起、起来跑步、周末肝文、假期肝文,日常时间积累碎片内容,大块时间时候进行整理。两年时间中,基本没有过一个较长的假期用于玩,都是在写文章,哪怕是在医院陪床的时候。对了,还有一个非常重要的点,就是离公司非常近,可以走路回家。
7. 关于看书,以前学习的过程主要以看书为主,每个月都会拿出一部分钱用来买书,买服务器、买资料、总之只要是有价值于我的内容,我不会把钱浪费在出去玩、出去喝上。而目前学习的方式主要是看源码、文档、做案例,所以看书的内容就会少一些。有时候出版社送的书,会阅读下,以及逛图书馆的时候会翻阅翻阅。
希望你可以继续坚持学习下来,每一个知识项只要你能一直坚持做,2-3年一定可以成为这个领域的专家,职位和收入也会随之而来!
---
问个跟之前相关的问题,我也是来自传统行业,目前项目是springboot+dubbo。但是就看的招聘看,springcloud已经成为必须得技能,目前从我看到的两门慕课网课程来看,基本的springcloud技术栈功能都很浅很少。。想问问小傅哥有什么好的学习建议或者系列专栏博客之类的。视频课程也行。或者有什么从零上手的springcloud开源项目。同理,在面试之前,传统行业,我们如何学习工作之外的技术栈。
1. 其实较大型的互联网中 SpringCloud 使用的没有 Dubbo 或者公司自研的 RPC 框架多。
2. SpringBoot + Mybatis + Dubbo + MQ + 分布式任务 + 分库分表 + 配置中心 + 网关 + 数据同步 ES 的组合比较多。
3. 学习 SpringCloud 推荐:https://github.com/forezp/SpringCloudLearning
4. 传统行业职位的技术栈,这个我建议你先梳理出一个 xmind 表,列出你目前已经会的技术、想学的技术,之后我按照互联网中用到的技术栈,来给你总结,告诉你可以先从哪个开始。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册