Mongodb集群搭建与应用

本文基于3.2.3版本搭建最小规模的mongodb分片集群,将简单介绍基本概念和搭建过程,并总结一些使用经验。 基本概念 路由(mongos) 请求的入口,所有请求都经过mongos协调和分发。通常部署多个实例,以便当一个mongos失败时,应用层驱动可以切换到其他正常的实例上。此外也可以通过一组mongos实例实现“池”的概念,在与应用层之间增加一层用于负载均衡的代理,将请求分配到“池”中的mongos实例上。mongos实例本身并不需要磁盘空间存储数据,它启动时会加载config server中的配置数据到内存,当config变化时会被通知更新。 配置服务器(mongod. config server) 存储整个集群的元数据配置信息(路由、分片),mongos通过这些配置作为导向,将读写请求分发到不同的shard上。

在阿里云上构建模拟生产环境的测试环境

为了进行更能反映真实情况的压力和性能测试,我们需要构建更加接近生产环境的测试环境,供QA们使用。由于公司的线上服务都部署在阿里云上,所以产生了租用阿里云服务器,复制生产环境服务器,构建测试环境的想法。 建立拓扑环境 由于生产环境的某些主机或集群的配置对内网ip敏感,如果内网ip变化相应的解析也要调整。所以为了避免ip发生变化,简化构建过程,我们需要创建专有网络环境(VPC),在VPC下通过源机的快照和镜像创建新主机。 阿里云的VPC具有以下特点(摘抄自https://help.aliyun.com/product/8315065_vpc.html): 网段划分。可以将专有网络的私有 IP 地址范围分割成一个或多个虚拟交换机, 根据需要将应用程序和其他服务部署在对应的虚拟交换机下。 自定义路由规则。根据业务需求配置虚拟路由器

Mongodb命令速查

插入 覆盖保存 更新 删除 查询 索引 特殊数据类型:JSON结构的地理数据(GeoJSON) 特殊数据类型:GeoJSON操作 特殊数据类型:平面坐标数据(legacy coordinate pairs)操作 特殊数据类型:大文件(GridFS)操作 聚合管道(Aggregation Pipeline) 导出导入,备份还原 全文检索 函数(function) 固定集合(Capped Collection) 其他 Type数字对照

Kafka学习记录

Apache Kafka 是一个分布式消息发布和订阅系统,具有以下特点: 被设计为生产者(发布)和消费者(订阅)模式,解耦组件之间的依赖,异步处理消息,增强业务扩展能力。 作为分布式系统,具备高伸缩能力,为发布和订阅提供高吞吐量。 持久化消息到磁盘,直到消息过期,兼备批处理和实时处理消息的能力。 冗余消息数据,具备高可用能力。 本质上是队列,为消息订阅提供顺序保证。 基本概念 Broker(中介) Kafka集群中的每一个server都是一个broker,具备唯一的id,消息的中转和暂存媒介,为消息提供持久化。消息被发布到这里时,首先滞留在内存中,等待异步线程刷入磁盘;订阅消息时首先会从内存取,如果没有则通过映射的index找到消息位置,发生磁盘IO。 Topic(话题) 每条发布到Kafka集群的消息都有一个类别,这个类

Zookeeper学习与实践

ZooKeeper是一个开源的分布式服务框架,它是Apache Hadoop项目的一个子项目,主要用来解决分布式应用场景中存在的一些问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置管理等,它支持Standalone模式和分布式模式(一个Leader,多个Follower),在分布式模式下,能够为分布式应用提供高性能和可靠地协调服务。 ZooKeeper集群中只有一个角色为Leader的节点,其他节点都为Follower。当客户端Client连接到ZooKeeper集群中任何一个节点执行写请求时,这些请求都会被发送到Leader节点上,然后Leader节点上数据变更会同步到集群中其他的Follower节点。 Leader节点在接收到数据变更请求后,首先将变更写入本地磁盘,以作恢复之用。当所有的写请求持久化到磁盘