怎么从初、中级Java程序员过渡到高级Java程序员?

原文地址:https://www.toutiao.com/i6599524702937416195/

扩展性

分为垂直扩展和横向扩展,垂直扩展就是增加单台服务器的处理能力,需要你熟悉硬件、操作系统、中间件的知识;横向扩展一般就是指集群式部署,这都有行业解决方案,你需要做的只是将你的系统设计的具有可扩展性,说白了就是系统可以多份部署,但对外表现为单一应用。

分布式

单台服务器处理能力有他的极限,但是我们可以将某一个业务拆分成多个子业务,分别部署在不同的服务器上,说白了就是在设计的时候要注意业务的拆分,比如某一个交易平台,你把他拆分成几个子系统,做一个订单处理的应用,再做一个支付的应用等等,做成分布式应用

技术类——数据读写分离

数据库资源宝贵,扩展性较差,一般读多写少,读操作尽量可以通过缓存技术去读取缓存,使用自动进程定期将数据库中的数据写入缓存(EHCACHE/MEMCAHCE/REDIS等)中,这样可以大大降低交易数据库的连接压力,提高系统的并发能力。

技术类——连接池、队列、数据压缩等技术

通过连接池、队伍等实现方式来减少系统的开销,通过数据压缩技术减少带宽压力。

业务类

可能某些时候我们改变一下业务处理方式和业务流程,就可以大大降低系统开销,比如把某些耗时较长的同步处理转为异步处理

以上是高并发、高性能系统建设中最常见的几种做法或者思路。

哈利法塔和民房使用的材料都是混凝土和钢筋,前者需要系统的知识面、科学的方法论、良好的设计、灵活的工具使用,后者只需要把材料往上堆、往上糊就可以了,这就是民工与工程师的区别。

实际一点,做软件成长最快的方式当然是不断的写,不断的做项目,不断的学习,熟能生巧,不断的总结形成自己科学的方法论和知识库,这样才能游刃有余。如果接触不到更多项目,可以到GitHub上开开视野。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏屈定‘s Blog

如何学习一门新技术

最简单的是找一个上手视频,因为视频是非常直观的展示了技术的使用.先学会用是最根本的,对于没有视频的技术的话,就可以搜索XX上手教程,XX学习记录之类的关键词,很...

24730
来自专栏JAVA高级架构

微服务和传统服务架构

单块架构应用:功能集中,代码和数据中心化,一个发布包部署后运行在同一个进程中的应用程序 单块架构的优势: 1)易于开发 2)易于测试 3)易于部署 4)易于水平...

42280
来自专栏NetCore

C/S结构和b/s结构的比较

随着软件系统的规模和复杂性的增加 ,软件体系结构的选择成为比数据结构和算法的选择更为重要的因素 ,三层客户/服务器体系结构为企业资源规划的整合提供了良好的框架 ...

27290
来自专栏智能计算时代

2017年终奉献:微服务最佳实践

关键需求 最大限度地提高团队的自主性:创建一个团队可以完成更多工作而不必与其他团队协调的环境。 优化开发速度:硬件便宜,人不是。 使团队能够轻松快捷地构建强大的...

31350
来自专栏hadoop学习

从零开始学习hadoop之发行版选择

经常会看到这样的问题:零基础学习hadoop难不难?有的人回答说:零基础学习hadoop,没有想象的那么难,也没有想象的那么容易。看到这样的答案不免觉得有些尴尬...

15750
来自专栏云计算D1net

公有云服务选择八大评测标准

说到选择一家公有云提供商,成本往往是首要因素。但是虚拟机迁移、存储和自动扩展等其他因素也应该加以考虑。 随着许多企业组织迁移到公有云或混合云,它们免不了要选择一...

45560
来自专栏IT大咖说

华为多年实践:ServiceComb在Service Mesh的探索与思考

内容来源:2018 年 6 月 27 日,华为微服务架构师田晓亮在“LC3微服务Workshop | 深入解读ServiceComb”进行《ServiceCom...

43740
来自专栏云计算D1net

云计算的安全问题将引起企业的重视

28060
来自专栏携程技术中心

干货 | 携程酒店360度Java质量控制

作者简介 王幸福,携程酒店研发部资深测试开发工程师,负责酒店测试框架和测试工具的研发。技术狂热者,热衷于开源项目,利用创新去提高测试工作的效率。 一、前言 携程...

37540
来自专栏数据小魔方

数据地图系列13|PowerBI

今天要跟大家分享数据地图系列的第13篇——PowerBI。 PowerBI是微软公司数据可视化系列集成的桌面端产品。(上一篇讲了个PowerMap,那个是Pow...

47660

扫码关注云+社区

领取腾讯云代金券