从集合类到分布式服务的演变

java中的集合类想必每一个从事IT编程行业的人都熟知。可是你们知道它是用来干嘛的吗?由它有衍生出了什么样的技术发展?下面就带大家看一下:
在现实生活中有很多场景,需要用到集合类,比如说一个用户名列表,你要怎么存呢?
你会用一个 List 来做对不对,所以集合类的作用就是让你在编程中更好的存储数据。
事实上,集合类的概念最早是来源于数据结构的,因为计算机里有很多特殊的数据存储结构,比如文件树,比如链表和数组等结构,因此计算机理论把这些存储数据的模型抽象成一些常见的结构,统称为数据结构。

由于集合类存储的数据都是存在计算机的内存中的是不可靠性的。所以就需由集合类过度存入数据库中,那么这样的一个整体就叫一个服务器。当用户的数据量很大时一个服务器不足以支撑,那么就需要多个服务器。多台服务器组成了一个集群,用户可以通过负载均衡的方式访问这些服务器,每个用户可能会访问到不同的机器上,这样子就达到了分流的效果,服务器的压力就会减小。

由于数据库需要保证数据的可靠性,万一某一台数据库挂了,并且没有备份的话,那么这个数据就无法访问了,这在大型系统中是不允许出现的,于是乎,就有了数据库的主从部署。

但事实上,随着业务发展,数据库的压力也越来越大,主备部署并不能解决数据库访问性能的问题,于是乎我们需要进行分库分表,在数据库主备的基础上,我们会把一个数据量很大的表拆成多个表,并且把数据库请求分流到不同的数据上,比如说100个分库,100个分表,就相当于把一个数据表划分成10000个数据表。

此时又出现一个问题,如果一个数据库有多个备库,并且当主库挂掉的时候需要进行主从切换时,主备数据库之间的数据就可能发生不一致,而这也是分布式理论研究的问题之一,因为比较复杂,我们这里就略过不讲。

刚才说到了分布式技术,其实负载均衡、分库分表都是分布式技术的一种实现,如果你不想做分库分表,那还有什么办法能够减轻数据库访问的压力呢?于是缓存就出现了,缓存可以让服务器先把请求打到缓存上,由于缓存的数据一般在内存中,所以访问速度会非常快,这些请求无需经过数据库。

随着业务发展,缓存的单点压力也会比较大,于是乎分布式缓存就出现了,通常来说,缓存难以保证数据的可靠性,因为它们的数据可能会丢失,同时缓存只能存储一部分的数据,并不能解决所有问题。

所以当某些业务的请求量非常大的时候,光靠缓存也解决不了问题,此时我们还可以通过消息队列来帮我们解决大流量并发请求的问题。

我们可以通过消息队列来存储一部分的请求消息,然后根据我们服务器处理请求的能力,把消息再逐步取出来,接着去把这些消息逐渐地进行处理,这样就可以很好的解决高并发的问题。当然,前提是消息队列要保证消息存储的可靠性,这也是大部分消息队列都会保证的能力。

以上就是由一个小集合类衍生到分布式的大致过程。其实这个过程也是一个小白衍变成大牛的过程。个人理解,如有不对之处,望海涵!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值