作者:小傅哥
博客:https://bugstack.cn
积淀、分享、成长,让本人和别人都能有所播种!????
一、前言
讲到技术盲区,先说说我本人。几年前我也是从传统行业跨到互联网,同时还是从 C#开发转到 Java 开发,与其说转不如说是回归 Java。从上大学到毕业实习,我都是做 Java 的,但入职第一家公司,因为技术积攒以及须要用 C#与中继器、IO 板卡、摄像头等进行交互,以及开发的软件是部署到客户端的,所以整套服务都是 C# 与少部分的 C 语言进行编写。
但可能因为本身仍有一股酷爱 Java 的趣味,把公司里我接触到的 C# 软件,都用 Java 去实现了一遍。比方 Java 与 RS232 串口进行通信操作,读取摄像头扫描信息等等。最终承载着这份趣味跳槽了,刚进去的时候面试也是晕的,毕竟很多技术栈的内容是我没用过的,好在钻研过 Netty,算是过后一个技术亮点勉强通过,实现了我想写 Java 代码的宿愿。
技术组里的 gai 溜子
可能每个人或多或少都有一些未接触的技术,尽管这些技术栈可能是整套架构中包含的,但可能因为常常忙于业务需要开发、技术组内短少分享传承、再者是本人懒于摸索到底,而导致本人的技术盲区越来越多,长此以往就成了技术组里的 gai 溜子。
你的技术瓶颈也是一点点积攒的
有一句常听到的话是;你晓得的越多,你不晓得的越多
。这是积极向上学习的人总结进去的。与之相同的还有一句; 你晓得的越少,你不晓得的越少
。
认知半径决定了眼界眼光,可扫描区域的大小决定倒退轨迹。技术瓶颈往往都是因为自我学习能力被封闭,与日俱增的流逝积淀导致。就比方,大学生毕业前有 30 万行的代码编写量,找工作还会很难吗?30 万行一天均匀 200 行而已!
二、技术栈采集问卷
1. 组织了一波采集流动
这是一波问卷收集,在两个 500 人的技术群中,邀请大家填写本人罕用的技术栈。通过这样的形式相互理解目前在应用的技术栈都有哪些,你用的技术栈,必定有我没用过的。很多时候有些技术的不通晓,就是因为各自圈子内的架构根本是固定的,所以限度了认知范畴,而大家相互补充就能够通晓还有哪些技术栈是本人没用接触过的。
目前技术栈采集仍会继续进行中,欢送随时补充并查看;
- 采集问卷:https://docs.qq.com/form/page/DY0JsRHVNUmVyQXBZ?_w_tencentdocx_form=1
- 汇总列表:https://docs.qq.com/sheet/DY1ZTYlFQYUh6THNC
2. 汇总进去的技术栈列表
提交者(主动) | 提交工夫(主动) | 你用过的技术栈(必填) | |
---|---|---|---|
小傅哥 bugstack.cn | 2020/7/29 11:11:56 | Drools | |
柠檬楠 | 2020/7/29 11:14:00 | spring 全家桶、kafka、mysql、oracle、netty、redis、docker、kubernetes、python3、zookeeper、mycat、sharding-jdbc、 | |
Shing | 2020/7/29 11:14:08 | Dubbo | |
不忘初心 | 2020/7/29 11:15:04 | java | |
???????? | 2020/7/29 11:15:20 | springboot、springcloud | |
BIUBIUBIU | 2020/7/29 11:15:26 | elasticsearch | |
油条 | 2020/7/29 11:16:01 | SpringBoot+Vue+MySql | |
Spirit_wolf | 2020/7/29 11:16:17 | Java | |
调包侠 | 2020/7/29 11:16:17 | docker kafka rabbitmq rocketmq redis cloud-alibaba dubbo nginx | |
沉默 | 2020/7/29 11:16:22 | springboot mybatis redis mysql | |
飞鱼 | 2020/7/29 11:16:32 | java | |
GROW | 2020/7/29 11:16:45 | Spark、Phoenix | |
Michael | 2020/7/29 11:18:16 | Java | |
子木 | 2020/7/29 11:18:18 | java,oracle,mysql,es | |
寒小武 | 2020/7/29 11:18:35 | 请输出 | |
建润 | 2020/7/29 11:19:00 | ssm | |
2020/7/29 11:19:03 | spring,redis,hadoop,docker,elasticsearch | ||
鎏鬫蘃鸉 | 2020/7/29 11:19:10 | java | |
wangChen | 2020/7/29 11:19:19 | java、python、docker、 | |
Jeao&Leon | 2020/7/29 11:19:35 | dojo | |
库里 | 2020/7/29 11:19:46 | clickhouse | |
Chord | 2020/7/29 11:19:52 | mybatis-plus | |
꧁ཊ查ཏ꧂ | 2020/7/29 11:19:53 | SpringBoot+Vue | |
Jeao&Leon | 2020/7/29 11:19:57 | foxbase | |
向日葵不流淚 | 2020/7/29 11:20:00 | HBase | |
canonnk | 2020/7/29 11:20:02 | .net sqlserver node vue react | |
Chord | 2020/7/29 11:20:05 | springboot | |
王庆文 | 2020/7/29 11:20:14 | Sentinel JVM-sandbox | |
噼里啪啦稀碎 | 2020/7/29 11:20:17 | Cat,apollo | |
JKM | 2020/7/29 11:20:19 | 收集技术 | |
Jeao&Leon | 2020/7/29 11:20:31 | ffmpeg | |
罐头 | 2020/7/29 11:20:33 | spring、mybatis、dubbo、nacos、rabbitmq、es | |
无名氏????7173 | 2020/7/29 11:20:40 | flink,clickhouse | |
日落傍晚下 | 2020/7/29 11:20:41 | java | |
起风了 | 2020/7/29 11:20:43 | Spock | |
Gavin | 2020/7/29 11:20:46 | haddop,spark, | |
军 | 2020/7/29 11:20:49 | SpringBoot | |
Shing | 2020/7/29 11:21:08 | activemq,redis,Spring-security,PGsql, | |
Believe ???? | 2020/7/29 11:21:32 | spring-boot-cloud-security dubbo netty mybatis-plus hadoop mysql redis disruptor | |
子木 | 2020/7/29 11:21:33 | java,oracle,redis,mysql,es,mybatis,vue,elementui | |
康雁飞 | 2020/7/29 11:21:40 | spring boot; redis | |
kirago | 2020/7/29 11:22:58 | ansible、django、flask、kubernetes、springboot、springcloud、docker、prometheus | |
张彬 | 2020/7/29 11:23:00 | vert.x、vert.x、vert.x (重要的货色说三遍)、netty | |
shmilylyp | 2020/7/29 11:23:11 | java | |
HQRNQF | 2020/7/29 11:23:17 | GraalVm | |
灯泡厂老爷 | 2020/7/29 11:23:46 | spring boot,mysql,reids,rabbitmq,elasticsearch | |
张彬 | 2020/7/29 11:25:10 | vert.x、netty、RxJava、响应式编程、Disruptor | |
调包侠 | 2020/7/29 11:25:26 | t-io netty springboot supervisor solr elasticsearch | |
2020/7/29 11:25:31 | spark | ||
Perry | 2020/7/29 11:26:24 | activemq-Artemis,couchbase | |
杰 | 2020/7/29 11:26:39 | springboot、mybatis-plus、nacos、sentinel、gateway、redis | |
Neck | 2020/7/29 11:26:52 | spring,mybatis | |
小丑人 | 2020/7/29 11:27:12 | springcloud | |
刘志航 | 2020/7/29 11:28:19 | Spring、SpringBoot、SpringCloud、Dubbo、zk、Redis、Nacos、apollo、xxJob、Mysql、ES、RocketMQ、Eureka | |
zedomi | 2020/7/29 11:28:30 | java,redis,mysql,jfinal,sparkjava | |
时光 | 2020/7/29 11:28:45 | Springboot,SpringMVC,Dubbo,SpringCloud,Redis,Vue | |
唐宋元明清 | 2020/7/29 11:28:57 | consul | |
唐宋元明清 | 2020/7/29 11:29:39 | kong | |
小米 | 2020/7/29 11:29:51 | 机器学习 | |
陆地之心 | 2020/7/29 11:29:53 | springcloud、vue、ddd、工作流引擎、elasticsearch | |
超人不会飞 | 2020/7/29 11:30:27 | dubbo、spring cloud、netty、spring | |
Disappear` | 2020/7/29 11:31:10 | dubbo nacos xxljob mybatisplus | |
今宵多保重 | 2020/7/29 11:31:11 | Springboot、Mybatis、Mysql、RabbitMQ、Netty、Redis、VUE | |
L | 2020/7/29 11:32:00 | vue+elementui+node | |
木瓜???? | 2020/7/29 11:32:12 | spring、springmvc、springboot、mybatis、mybatis-plus、redis、mongodb、mysql、springcloud 全套组件、rabbitmq、shiro、spring security、xxl-job、阿里云 OSS 或腾讯云 OSS | |
Jack | 2020/7/29 11:32:16 | java spring spring boot spring cloud | |
༺ཌༀཉི感謝郭嘉 PMP®༃ༀད༻ | 2020/7/29 11:32:37 | dubbo, zookeeper, springboot,springcloud netflix,springcloud alibaba,apollo,cat,e(f)lk, mongodb, mysql, redis, mycat, openresty, prometheus, skywalking, rocketmq, rabbitmq, docker, jenkins, nexus, k8s, kubesphere | |
陈辉 | 2020/7/29 11:35:38 | docker | |
@Violet | 2020/7/29 11:36:20 | zipkin, kibana,skywaking(没用过) | |
王凡 01 | 2020/7/29 11:36:48 | spring boot | |
王泽东 | 2020/7/29 11:36:54 | boost,asio,pthread,libuv,libevent | |
2020/7/29 11:37:17 | groovy | ||
summer | 2020/7/29 11:40:12 | springcloud,springboot,dubbo,docker | |
弓長宏 | 2020/7/29 11:42:08 | swoole | |
zedomi | 2020/7/29 11:43:52 | java,redis,mysql,nginx,sparkjava | |
红雷 | 2020/7/29 11:51:36 | spring/dubbo | |
唐宋元明清 | 2020/7/29 11:52:58 | php | |
渔人码头คิดถึง | 2020/7/29 12:02:45 | springboot,vue,layui | |
佛祖的 jio 不能抱 | 2020/7/29 12:02:45 | oracle,spring | |
Joshua | 2020/7/29 12:05:49 | Java springboot vue react MySQL | |
小辰 | 2020/7/29 13:11:41 | spring cloud alibaba dubbo | |
星宿海 | 2020/7/29 13:18:47 | java python mysql redis hadoop docker spring vue | |
chenkx | 2020/7/29 13:51:46 | java | |
米高电气马伟鸿 | 2020/7/29 13:57:30 | netty | |
T.Jax | 2020/7/29 14:03:08 | springboot webflux mybatis jpa redis vue uni-app | |
那些年、咱们未曾晓得的事件 | 2020/7/29 14:14:51 | rabbitmq,kafka,hadoop,angular | |
旅人 | 2020/7/29 15:03:09 | Antlr | |
郭小白 | 2020/7/29 16:52:25 | github | |
往南更南 | 2020/7/29 17:07:41 | springboot | |
☺ | 2020/7/29 17:14:46 | java | |
田小麦 | 2020/7/29 18:13:11 | guava-eventbus | |
一碗小米粥 | 2020/7/30 9:03:31 | webSocket,mq,nacos | |
Angel’s Trumpet | 2020/7/30 9:05:40 | debezium | |
自律等于自在 | 2020/7/30 9:05:42 | ssh+springboot+vue+redis+activemq | |
Waiting | 2020/7/30 9:06:35 | springcloud alibaba 全家桶 springboot redis nginx vue mybatis-plus emqx mqtt netty rabbitmq | |
Shing | 2020/7/30 9:08:02 | spring cloud alibaba,oracle,vue, | |
路斌 | 2020/7/30 9:09:16 | java,android,mybatis,spring boot | |
Sniper | 2020/7/30 9:09:19 | jvmti | |
向北 | 2020/7/30 9:10:47 | ssm,springboot,layui,redis,docker. | |
. | 2020/7/30 9:13:12 | k8s | |
小傅哥 \ | bugstack.cn | 2020/7/30 9:14:47 | 大规模分布式系统的跟踪零碎;dapper、Zipkin、pinpoint、appdash、cat、hydra、鹰眼、oneAPM |
咖啡八宝粥 | 2020/7/30 9:16:21 | Java、Dubbo、MySQL、Spring、Redis、Maven、Git、Nginx、C、Memcached | |
小傅哥 \ | bugstack.cn | 2020/7/30 9:17:24 | 基于 mysql binlog 的数据同步软件;otter |
七号公路 | 2020/7/30 9:18:19 | Vert.x | |
lhh | 2020/7/30 9:21:06 | nutz、 | |
梦与孤单 | 2020/7/30 9:21:09 | springboot + vue, Zuul 网关 | |
能够的 | 2020/7/30 9:23:01 | ssm、springboot、springcloud、redis、rabbitmq、mysql、mybatis-plus、springcloudalibaba、docker、layui | |
清风徐来 | 2020/7/30 9:25:24 | spring boot+mybatis+nodejs+vue+kotlin | |
韩俊臣 | 2020/7/30 9:40:08 | ssm+oracle+redis+nginx | |
龙图腾 | 2020/7/30 9:50:44 | spark | |
韶华如梦 | 2020/7/30 10:05:04 | Rocketmq | |
小傅哥 bugstack.cn | 2020/7/30 15:12:51 | JVM 监控工具;jprofilter,perfino,Yourkit,Perf4j,JProbe,MAT |
三、汇总技术架构图
在技术汇总中,能够看到有一些是本人罕用的,也有一些是当前工作经验下没用接触过的。那么这些以上的技术栈,你有想过他们是怎么互相配合,组装出一张技术架构图吗?每一个中央用什么技术承载,这也能够思考本人的日常开发中,都有哪些技术来撑持你们整个技术框架。
架构图
- 这是一张把服务端开发波及的技术栈汇总出的一张技术架构图。
- 当然技术栈内容相对局限于此,还有很多的其余的框架,能够被代替,只不过这些是比拟罕用的。
- 这些形成你日常开发的整张技术图,可能有些是没用接触的,但这样就能够很好的让你去补充本人的盲区。
- 以上这张图的 PPT 曾经汇总到面试手册中,能够在公众号:
bugstack 虫洞栈
,回复下载
,把失去的 链接 关上,找到ID:19
进行获取。
1. 负载
- LVS 的英文全称是 Linux Virtual Server,即 Linux 虚构服务器,次要用于多服务器的负载平衡。
- F5 是负载平衡产品的一个品牌,除此以外还有,Radware、Array、A10、Cisco 等。
- Nginx 就比拟常见,它是由 C 语言编写的,是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。
2. 网关
- 应用过 SpringCloud 的小伙伴都用过 zuul,或者公司外部自研,以及把 RPC 接口转换为 Http 接口的一种服务。
- 为了不便客户端调用微服务,所以设计出了网关。在微服务实例地址产生扭转的状况下,客户端调用服务要可能不受影响。
- 网关能够实现的性能:路由、反向代理、日志记录、权限管制、限流、切量、黑白名单等
3. 架构
- 大家最先接触的架构根本都是 MVC,起初进入互联网企业开始逐步有了更加简单的分层解决,以及接入了 RPC 和网关。
- 随着 SpringBoot 的衰亡,DDD 畛域驱动设计下的微服务逐步起来了,这种四层架构是一种设计实践,以畛域为核心建模开发。
- SOA 是面向服务的架构模型,它将应用程序的不同性能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协定分割起来。
4. 治理
- 在服务的治理中个别包含;熔断、降级、限流和服务编排等。
- 这里的思维是为了进行对立管理控制,各业务零碎都是一个个自服务,最终提供给编排零碎进行治理。
5. 框架语言
- 这一层就是大家日常开发的技术语言层,用到各个技术栈来满足开发需要。
- 比方框架类;Spring、SpringBoot、Mybatis 等。
- 同时这里也会波及到很多的盲区技术,因业务开发的个性不同,所须要的技术栈也会不同,为了不同的业务场景会引入不同的技术计划进行解决。比方;Drools、Snowflake、Finlk 等。
6. 服务
- 这一层是咱们在开发过程中用到的组件波及的核心服务类配置。
- 比方 Dubbo 以及它的注册核心、MQ 以及它的平台服务、分布式工作和配置核心等
7. 数据
- 数据是整个零碎的价值体现,因业务的体量倒退从单库单表到分库分表,从数据查问到文件系统,再到各类搜索引擎的应用。
- 同时在 DB 数据的同步过程中个别会应用基于 binlog 的 otter 进行同步 ES+Hbase 操作。
- 以及 Neo4j 是一个高性能的,NOSQL 图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备齐全的事务个性的 Java 长久化引擎,然而它将结构化数据存储在网络 (从数学角度叫做图) 上而不是表中。
8. 环境
- 在我的项目开发实现后个别会部署到本人的服务上或者云服务,以及抉择不同的服务厂商。
- 再比方当初比拟火的 Docker 和 K8S,尽管不是日常开发的一部分,但也能够扩大学习理解。
9. 撑持服务
- 这一部分包含的是;
部署
、压测
、日志
、JVM 监控
、业务全链路监控
、Maven
、Nexus
、Gihub
以及其余须要的撑持性能。 - 除此之外还有一些工具类的软件,比方:
IDEA
、navicat
、Xshell
、XMind
、Visio
等,纯熟应用工具也是晋升开发效率的最无效形式。
四、总结
- 在
《面经手册》
中,咱们开篇介绍了面试官会问你啥的一个总结概述,以及到本篇介绍了技术栈盲区,通过这样两个章节的内容,能够让同好技术的小伙伴,有一个全局的认知,之后咱们再去一一攻破。 - 面试只是搂草打兔子,学习才是骨干路线,千万不要认为学了什么神秘大招或者洗脑长文就能所向无敌,那都是凑巧的小概率事件。
- 我为技术用一年工夫积攒进去整套圈子;
推文的公众号
、积淀的博客
、资源的 Github
、交换的技术群
、分享的技术圈子 [虫洞技术栈]
、推广的各大平台
,欢送退出这个生态技术圈,每个人都有本人善于的技术方向,互相学习,共同进步。
举荐浏览
- 面经手册 · 开篇《面试官都问我啥》
- 工作两年简历写成这样,谁要你呀!
- 讲道理,只有你是一个爱折腾的程序员,毕业找工作真的不须要再花钱培训!
- 大学四年到毕业工作 5 年的学习路线资源汇总
- 手写 mybait-spring 外围性能(干货好文一次学会工厂 bean、类代理、bean 注册的应用)
- 源码剖析 | Mybatis 接口没有实现类为什么能够执行增删改查