随笔分类 - MQ与分布式
摘要:分布式文件系统介绍 分布式文件系统:Distributed file system, DFS,又叫做网络文件系统:Network File System。一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。特点:在一个分享的磁盘文件系统中,所有节点对数据存储区块都
阅读全文
摘要:消息队列 MQ 的常见使用场景其实有很多,但是比较核心的有如下三个: 解耦 异步 削峰 解耦:A 系统发送个数据到 BCD 三个系统,接口调用发送,那如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢? 现在 A 系统又要发送第二种数据了呢?而且 A 系统要时时刻刻考虑 BCDE 四个系统
阅读全文
摘要:Windows上报错 去计算机服务管理中关闭那个自己启动的RabbitMq服务,再手动启动的话就可以成功运行了,上面那个警告也可以将那个文件删除进行解决 为啥要使用MQ 以常见的订单系统为例,用户点击【下单】按钮之后的业务逻辑可能包括:扣减库存、生成相应单据、发红包、发短信通知。在业务发展初期这些逻
阅读全文
摘要:安装 pip install django-celery 这个命令使用的依赖是 Celery 3.x 的版本,所以会把我之前安装的 4.x 卸载,不过对功能上并没有什么影响。我们也完全可以仅用Celery在django中使用,但使用 django-celery 模块能更好的管理 celery。 使用
阅读全文
摘要:什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh, **Xapian搜索引擎它是一个可插拔的后端(很像Django的数据库层),所以几乎你所有写的代码都
阅读全文
摘要:单实例的实现 从2.6.12版本开始,redis为SET命令增加了一系列选项: EX seconds – 设置键key的过期时间,单位时秒 PX milliseconds – 设置键key的过期时间,单位时毫秒 NX – 只有键key不存在的时候才会设置key的值 XX – 只有键key存在的时候才
阅读全文
摘要:事务处理 让我们用最经典的 Use Case:“A帐号向B帐号汇钱”来说明一下,熟悉RDBMS事务的都知道从帐号A到帐号B需要6个操作: 为了数据的一致性,这6件事,要么都成功做完,要么都不成功,而且这个操作的过程中,对A、B帐号的其它访问必需锁死,所谓锁死就是要排除其它的读写操作,不然会有脏数据的
阅读全文
摘要:golang中比较好用的kafka client有 sarama confluent-kafka-go go_kafka_client optiopay-kafka siesta 其中 sarama的使用者应该是最多的, 然后还有一个sarama的cluster版本 sarama-cluster 本
阅读全文
摘要:为什么需要消息系统 kafka 架构 拓扑结构 如下图: 图.1 相关概念 如图.1中,kafka 相关名词解释如下 zookeeper 节点 kafka 在 zookeeper 中的存储结构如下图所示: 图.2 producer 发布消息 写入方式 producer 采用 push 模式将消息发布
阅读全文
摘要:什么是Clelery Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result
阅读全文