摘要:
OpenResty 是一个兼具开发效率和性能的服务端开发平台,虽然它基于 NGINX 实现,但其适用范围早已远远超出反向代理和负载均衡。它的核心是基于 NGINX 的一个 C 模块(lua-nginx-module),该模块将 LuaJIT 嵌入到 NGINX 服务器中,并对外提供一套完整的 Lua 阅读全文
摘要:
在读取数据的过程中我们需要关注以下两个问题: 从哪里读,关注数据节点位置; 什么样的数据可以读(数据是否提交),关注数据的隔离性。 第一个问题由readPreference来解决 第二个问题由readConcern来解决 什么是readPreference readPreference决定使用哪一个 阅读全文
摘要:
什么是writeConcern writeConcern决定一个写操作落到多少个节点上才算成功,这决定了mongodb是否会丢失数据。 writeConcern的取值包括: 0:发起写操作,不关心是否成功; 1~集群最大数据节点数:写操作需要被复制到指定节点数才算成功; majority:写操作需要 阅读全文
摘要:
介绍列转行、版本字段、近似计算、预聚合四个文档设计模式和它们的应用场景。 列转行 以存储电影信息的文档为例,因为各个国家的首映时间不同,我们的最简单的想法可能为了统计方便,会每增加一个上映地点,就增加一个统计字段,然后再给这个字段建一个索引。这样统计查询的速度是快了,但是系统写入的效率却下降了。 利 阅读全文
摘要:
什么是数据模型 根据Steve Hoberman建模经典教程: 数据模型是一组由符号、文本组成的集合,用以准确表达信息,达到有效交流沟通的目的。 数据模型希望通过一个逻辑化,物理化的模型来给大家提供在同一个层面交流的目的。 数据模型设计的元素 实体 Entity 描述业务的主要数据集合 谁,什么,何 阅读全文
摘要:
MongoDB复制集的主要意义在于实现服务高可用。 它的实现依赖于两个方面的功能: 数据写入时将数据迅速复制到另一个独立节点上 在接收写入的节点发生故障时自动选举出一个新的替代节点。 复制集的作用 数据分发:将数据从一个区域复制到另一个区域 读写分离:读写折分到不同的节点 异地灾备:中心节点故障时自 阅读全文
摘要:
首先看一个netty服务端启动的demo bossGroup对应的是Server.java中的接收客户端请求的线程。 workerGroup对应的是Client.java中的线程。 public class Server { public static void main(String[] args 阅读全文
摘要:
使用netty的开源框架 Dubbo:阿里开源的高性能rpc通讯框架 RocketMQ:阿里出品的高性能消息队列 Spark:为大规模数据处理设计的一款计算引擎 Elasticsearch,Cassandra,Flink,Netty-SocketIO,Spring5,Play,Grpc... Net 阅读全文
摘要:
MongoDB聚合框架(Aggregation Framework)是一个计算框架,它可以: 作用在一个或几个集合上; 对集合中的数据进行一系列的运算 将这些数据转化为期望的形式 从效果而言,聚合框架相当于sql查询中的: GROUP BY LEFT OUTER JOIN AS等 管道(Pipeli 阅读全文
摘要:
使用python访问mongodb 使用驱动连接到MongoDb集群只需要制定MongoDb连接字符串即可,最简单的形式是: mongodb://数据库服务器主机地址:端口号 如: mongodb://127.0.01:27017 安装用于访问数据库的驱动程序: pip3 install pymon 阅读全文