当前位置: 首页 > 科技观察

分布式部署那些东西

时间:2023-03-14 14:04:59 科技观察

什么是分布式说到分布式,肯定会涉及到集中式。与集中式相比,分布式意味着有很多节点,每个节点相互协作。从分布式的概念可以看出,分布式强调相互协调,每个节点负责一部分工作。比如我们的一个商城系统,可以分为订单系统、用户系统、短信系统、支付系统等等。从外观上看,它们是一个整体,提供了一个商场的完整功能。为什么分布式集中式部署很方便,而且不会出现节点网络问题,不会出现不一致的问题,不会出现可用性等问题,虽然集中式有各种优点,但是在面对高并发的时候,面对一个更大的数据请求,显然单个节点不能满足要求。这时候就需要将请求分配到不同的机器节点上,这样才能正确响应请求。怎么写代码和我们写的集中式编码方式是不一样的。说到分布式,就需要考虑session的共享。对于session的共享,我们一般使用redis来共享数据。对于同一个用户的请求,如果分配到不同的机器上,可能会造成数据不一致。这时候我们就需要考虑让同一个用户的请求由同一个节点机器来处理,这就需要考虑用户的IP。hash处理,让同一个ip可以被同一台机器处理。我们还需要处理文件的存储。我们不能在各种机器上保存文件。我们应该做的是找一个单独的文件服务器进行文件存储管理。但是一般我们使用的是云对象存储,这样所有的静态资源请求都会交由一个单独的云存储来管理,可以通过CDN进行缓存,这样就大大增加了服务器的负载。分布式锁对于主机上的资源并发访问,我们可以通过加锁的方式来解决,但是对于分布式机器上的资源,如果有并发请求,就需要使用分布式锁来处理。分布式锁的解决方案有很多,主要有数据库mysql、分布式调度zooker、内存数据库redis等,很多时候我们使用redlock进行分布式锁处理。说到分布式算法,说到分布式,离不开的就是一致性问题。为了保证数据的一致性,我们需要实现一定的算法,常用的分布式共识算法Paxos和Raft。综上所述,分布式和我们通常的集中式业务开发是有本质区别的。一开始没有问题的地方,会因为网络或其他原因出现问题。我们能做的就是充分考虑可能存在的问题,并向他人学习。总结出来的算法和架构,遇到问题可以有的放矢。