首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MongoDB PSA架构痛点以及如何应对

    最近MongoDB群里面有群友遇到2次重启MongoDB后一直处于实例恢复状态(应用OPLOG),多达几天甚至更长才完成重启,下图是群友重启后周末2天都没有完成重启,一直处于实例恢复状态,导致业务一直不可用状态。MongoDB这么弱吗?重启实例需要恢复这么久才能完成?那谁还敢用?通常MongoDB副本集三个实例作为标准,重启主库会发生重新选出新主节点(通常在12s内完成)重新对外服务,事与愿违通常不符合官方标准化或者内部发生异常导致的。经过了解副本集采用PSA架构且存在一个数据从节点不可达的情况(甚至有的从节点宕机几个月没有发现),来分析这些情况以及如何对应。主要包括如下内容(WT存储引擎下版本是3.2,3.4,3.6,4.0,4.2为主,4.4,5.0也存在)

    03

    docker--docker compose 编排工具

    根据前面所学的知识可知,想要使用Docker部署应用,就要先在应用中编写Dockerfile 文件来构建镜像。同样,在微服务项目中,我们也需要为每一个服务编写Dockerfile文件 来构建镜像。构建完成后,就可以根据每一个镜像使用docker run或者docker service create命令创建并启动容器,这样我们就可以访问容器中的服务了。 微服务架构中:涉及的服务数量巨多。 虽然使用上述方式可以部署微服务项目,但考虑到微服务项目可能有多个子服务组成, 并且每个服务启动过程中都需要配置额外的参数(如-e配置环境变量、--network指定网 络、磁盘挂载等等)。这种情况下,每次更新微服务后,都要手动运行指令来重新启动 容器,这就显得相当麻烦了。针对这种多服务部署的情况,Docker提供了Docker Compose编排工具来对多服务应用进行统一部署。Compose是Docker的服务编排工 具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个 Docker容器,非常适合组合使用多个容器进行开发的场景。 通过该编排工具,可以使用yml(或yaml)文件来配置应用程序服务,然后只需要一条简 单的服务部署指令就可以从配置中创建并启动所有服务。

    02

    PHP数据库操作二:memcache用法分析

    本文实例讲述了PHP数据库操作之memcache用法。分享给大家供大家参考,具体如下: 在一个高并发的web应用中,数据库存取瓶颈一直是个大问题,一旦达到某个极限,数据库很容易崩溃,但是如果我们把常用的数据放到内存中,在需要的时候从内存中取,不光读取速度快,而且节约数据库IO。 memcache简介 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。 memcache的mem是内存(memory),cache是缓存,结合是内存缓存的意思。我们应用memcache时,读取数据先从memcache内读取,若查找不到再去数据库里查找,并将数据存入memcache,待下次查找时便能轻易找到。 需要注意: memcache是内存型的数据库 ,因为内存的关闭释放的特性,memcache也无法持久化存储内容; memcache内部是分块存储,所以大于1M的数据也无法存储。 memcache依赖libevent库,安装前需确认已经安装了libevent库。 memcache是一个轻量级的内存型数据库,只支持key-value型的存储。 memcache中没有关于用户,密码的设置,所以在配置时要配置防火墙的端口限制连接,以达到安全的目的。 使用repcached也能轻易实现memcache的单master单slave主从复制。 memcache的应用场景 存储大量不需要持久存储或数据库内已存在不会变动的数据。 读取数据非常频繁数据,要求小于1M。 数据类型简单的key-value型数据。 计算好的结果和渲染后的网页模板文件。 因其原子递增性,可以用来计数。 因为可以设置数据过期时间的特性,存储期限数据。不过需要注意,memcache会在分配的内存不足时以最近最少使用原则(LRU)重用内存,可能会导致信息提前被删除。 用memcache存储session信息,以达到多服务器session共享。需要配置:php.ini:

    02

    2018整理最全的50道Redis面试题!

    Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能,比方说用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,用他的Set可以做高性能的tag系统等等。另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一 个功能加强版的memcached来用。 Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

    00
    领券