美文网首页Java高级架构JAVA互联网科技
成为一名架构师到底需要掌握什么?

成为一名架构师到底需要掌握什么?

作者: Java高级架构 | 来源:发表于2018-05-08 23:43 被阅读151次

    架构师思考的是全局的东西,是如何组织系统,以达到业务要求、性能要求。架构师要针对业务特点、系统的性能要求提出解决问题成本最低的设计方案。为了架构而架构,这是绝对不可取的。你想啊,人家一个几百人用户的系统,访问量不大,数据量也不大,你给人家上集群、分布式储存、高端服务器,肯定能到达性能要求,但是成本高啊。要知道,架构师的作用,一是满足业务需求,二是最低的硬件网络成本和技术维护成本。

    架构师还要根据业务发展阶段,提前预见发展到下一个阶段系统架构的解决方案,并且设计当前架构时将架构的升级扩展考虑进去,做到易于升级;否则等系统瓶颈来了,出问题了再去出方案,或现有架构无法扩展直接扔掉重做,或扩展麻烦问题一大堆,这会对企业造成损失。

    架构师是经过程序员,开发员,高级开发员等一步步积累而来。一个好的架构师不太可能看一些书就能短期内看会。建议平时写代码时,多思考,而不是仅仅满足于完成功能。可以试着用不同的方法去实现一个功能,分析优缺点。看别人的代码时也要学会别人为什么这么写。等到有了些积累,可以去系统地学些design pattern,并逐渐运用到工作中。熟练后你会发现自己可以写变种的pattern了。到这一步你已经积累了不少需求分析的经验,也能够把需求中的问题抽象出来,代码已经能很好的重用了。这就已经踏入架构师的门槛了,接下来,你要做的是培养自己预测需求变化的能力。当你的设计总是能够以最小的代价适应需求的改变时,就是个合格的架构师了。

    第一阶段:java基础知识要牢固,java编程思想,设计模式,effective java这些都算是基础知识。在这基础上,要结合多种项目经验,利用实践来提高基础能力。

    第二阶段:开阔眼光,借鉴优秀的项目或开源代码。例如jstorm、hadoop等开源软件,可以下载后利用业余时间研读,提升能力。

    第三阶段:结合业务进行架构设计和实践,并多与行业高手交流,提升领域建模等能力

    选一个方向,然后多阅读一些高质量代码,站在前辈架构师的肩膀上,才能比较快速的进步,长时间的技术积累,业务项目的积累,合理的方案解决通用问题。多读多写多思考。多读的目的是开拓自己的视野,让自己具备举一反三触类旁通的能力。多写是脚踏实地,避免夸夸其谈纸上谈兵。多思考是融会贯通所读所写。架构师的学习之路也正式开始。

    阿里巴巴Dubbo+Zookeeper注册中心、阿里巴巴MyCat分库分表

    JVM调优,垃圾收集器与内存分配策略,串行、并行收集器带来的作用

    Redis缓存技术(session统一管理案例实现)、引入接口联调过程

    Tomcat运行机制及框架,并发优化,内存优化

    SpringAOP基石动态代理,拦截与织入原理,Spring相关源码熟悉程度

    并发编程在项目中的实际应用

    高性能NIO框架Netty应用

    Nginx分流技术配置优化原则,主从、双主高可用设计

    分布式单点登录解决方案

    消息队列ActiveMQ的具体应用、乐观锁、悲观锁、分布式锁

    接口安全方案、集群环境下的定时任务

    分布式文件系统FastDFS、分布式文件系统存储合同文件

    Docker虚拟化技术,与微服务集成动态扩容,持续发布

    SpringCloud的网关、配置、注册中心构建

    NoSQL&MongoDB&Cassandra、HttpComponents、20FreeMarker/Velocity、SpringBoot、Log4j2

    性能优化:

    JVM调优

    Java程序性能优化

    Tomcat

    Mysql

    Spring IOC

    Spring AOP

    Spring MVC

    Spring 5新特性

    Mybatis

    分布式架构

    1、架构核心服务层技术

    2、架构关键技术设施

    3、分布式消息通讯 异步于MQ

    4、分布式缓存

    5、Redis

    6、Memcached

    7、MongoDB

    8、数据存储

    9、高并发分流技术Nginx

    10、分布式解决方案

    相关文章

      网友评论

      本文标题:成为一名架构师到底需要掌握什么?

      本文链接:https://www.haomeiwen.com/subject/jsugrftx.html