Java程序员升职加薪必备技术——分布式

396 阅读4分钟

随着互联网的快速发展,和云服务概念的普及,使得我们在搭建系统的时候越来越倾向于分布式系统架构,也成了现在企业升职加薪的重要考核技术。

Java项目的架构方式

如下图所示 ,Java项目大体上经历了由单一应用架构到垂直应用架构再到分布式应用架构的一个过程,接下来我们就来详细了解下这三种架构的变化和进步。

1、传统的架构思维 -> 单一应用架构

单一应用架构的意思就是一个项目就是一个系统 ,在21世纪初,大规模的企事业单位的信息电子化,涌现出一大批应用于企业内部信息管理的系统,如OA ,财务管理软件,人事管理系统,ERP等,但是随着系统的业务功能增多,代码量增大,变得原来越来越难以维护,且不容易扩展,而且随着系统的访问量越来越大 ,系统的性能瓶颈也越来越突出。

2、垂直应用架构 -> 一个系统拆分成多个子系统

垂直应用架构简单来讲就是将原有的单一应用架构的系统 拆分成多个子系统。

一定程度上解决了系统难于维护的问题,每个团队可以负责维护自己的子系统,降低了维护成本,提升了开发效率。

也解决了系统扩容的问题 随着业务的扩展我们可以通过增加一个子系统来解决,不会影响其他的子系统。

同样也在一定程度上解决了对系统访问进行分流的问题,根据不同子系统的性质和访问量进行合理服务部署规划。

但是垂直应用架构中各个子系统存在着相同逻辑的一些业务代码(权限验证,日志记录,缓存,系统安全,系统报表….),不能共用,容易造成信息孤岛,重复造轮子。

3、分布式架构 -> 一个系统拆分为多个服务

随着垂直应用架构的子系统应用越来越多时,为了避免相同重复造轮子,我们将共用和核心的业务抽取出来,作为单独的系统对外提供服务, ,是得各个子系统都可以复用,就演变成了如上图所示的分布式何架构。

架构一套大型的,成熟的分布式系统 ,要涉及到许多中间件的引用和支撑系统,这些中间件和支撑系统统称为分布式系统的基础设施。

分布式系统的基础设施及架构

当然分布式系统的基础软件设施还包含且不限于像数据分析/离线计算/数据仓库/自动化运维等相关组件和框架,这些知识属于大数据和运维等知识,在此不再赘述。

分布式系统架构图

群:697579751【Java架构/分布式/高并发】(无经验勿扰)

分布式需要了解的重点

1、ActivMQ 分布式消息总线

在大型分布式系统中,在遵循JMS规范的前提下 ,进行系统之间的大规模异步消息通信和集中常用的通信机制。

能对JMS规范有深入的了解,以及分布式系统架构中的异步通信机制。

2、高并发编程必备之NIO基础

NIO的基本原理以及实现过程

能对传统IO和NIO的区别进行系统的了解并能学会NIO的实现原理

3、Redis内存数据库

在大型分布式系统中,怎样在高并发的情况下解决某些非结构化数据快速存取的解决方案。

能对非关系数据库和非关系数据库有个系统的了解 以及Redis内存数据库的基本数据类型和各自的应用场景。

4、高并发编程之NIO流行框架之Netty

NIO框架Netty的简介以及netty的应用场景。

能运用netty实现客户端和服务器端的基本通信。

5、Lucene 全文检索技术

在大型电商网站中,站内超过百万计商品目录的搜索解决方案。

能对全文检索技术有个初步的了解,以及Lucene在站内搜索应用中的底层操作原理。

6、Duboo分布式服务框架

在分布式系统中,Duboo框架的应用场景和应用方式。

能了解Duboo的基本概念和原理,以及在分布式系统中的应用和传统架构方式的区别。