celery理解:
- celery是一个分布式系统,多用于处理实时异步问题
- celery由三部分组成:任务生产者,中间调度队列,任务的处理者
- 任务生产者会生成任务,把任务放到队列中,队列会根据不同的配置要求把任务分配个处理者处理。
- 任务生产者并发的存在于分布系统节点中。
- 分布式系统设计的两大重要内容:"性能”和“容错性”;性能的指标是绝对的,容错性的指标是相对的。
- 分布系统又分为中心化和去中心化
- 中心化就是会有一个领导下面有几个员工,领导会给员工分配任务,如果员工任务做完会给他分配新的任务;如果有一个员工宕机,就会把这个员工剔除掉,把他的任务分配给其他的员工。
- 中心化的弊端就是如果领导宕机,整个集群就会崩溃,为了解决这个问题,大多数中心化系统都主备两个领导的方案,以提高系统的可用性
- 去中心化就是没有领导,每个节点都一样,但是这样就会导致难以实现节点与节点之间的通信;
- 去中心化设计中最难的一个问题“脑裂”问题,这种情况的发生率很低,但是后果很严重;脑裂是指一个集群因为网络的故障被分为两个无法通信的集群,此时两个集群各自工作,则可能会产生严重的数据冲突问题。一般遇到脑裂问题,规模较小的集群就会自杀。
- 实际上完全意义上的去中心化的分布系统并不多见,一般都是采用外部去中心化机制,这种架构的集群中的领导是动态选择出来的,如果领导宕机的话,就会在成员中自行选举新的领导出来。
- 中心化就是会有一个领导下面有几个员工,领导会给员工分配任务,如果员工任务做完会给他分配新的任务;如果有一个员工宕机,就会把这个员工剔除掉,把他的任务分配给其他的员工。
- 分布系统又分为中心化和去中心化
- 任务生产者会生成任务,把任务放到队列中,队列会根据不同的配置要求把任务分配个处理者处理。