京东云高可用业务架构建设

2023-11-10

a24b962b4924336d44fa475ff86dc0c9.gif

本文以 2022 年一个实际项目为基础,来演示在京东云上构建高可用业务的整个过程。公有云及私有云客户可通过使用京东云的弹性 IAAS、PAAS 服务,创建高可用、高弹性、高可扩展、高安全的云上业务环境,提升业务 SLA, 提升运维自动化水平,降低资源成本及运维成本。有业务迁移上云需求,希望构建云上高可用业务架构的客户或对云上高可用架构规划有兴趣的读者可以一看。

客户业务为典型的 web 应用,在京东云上创建一个通过公网 IP/ 域名访问的高可用的 web 网站,包含通用应用的标准框架,包括访问接入层、APP 层、缓存层、数据库层。整体业务架构设计提供可用区 (AZ) 级别的高可用等级。

本文演示场景包括单 AZ 出现故障导致的主机故障、数据库故障、缓存故障场景下,业务能够提供持续访问能力。并保障数据的完整性和一致性,同时,能够在无人干预的条件下,实现业务的弹性扩展,保障业务高并发的场景下有良好的响应时间。

说明:本文的架构为演示架构,并未严格遵循生产环境的业务性能及安全的整体规划步骤及要求,在生产环境中,至少应该对主机及 CFS 的存储性能进行压测,确保能够满足实际业务需求,同时,通过域名访问的 web 服务,建议使用 WAF 等安全防护产品,保障业务的入口安全。

一、京东云高可用架构设计

业务架构以某单位的业务需求为基础,模拟其业务生产环境,规划京东云上的业务整体架构,其中,NAT网关、负载均衡、堡垒机均创建在公网访问子网,其余主机及数据库等,创建在内部子网内。

a4bc55f9ea132f236f617bdcf618c71b.jpeg

其中应用主机使用高可用组创建, LB后端直接挂载高可用组。

使用高可用组的目标是实现业务高峰期故障时,计算资源能自动加入负载均衡后端,自动化扩展业务处 理能力。减少运维干预成本。

二、资源需求

项目

规格

数量

说明

主机

2C8G 50G系统盘

2~3

为保障验证效果,主机能临时绑定公网IP  (生产环境无需绑定)  100.126.38.2  (公)  10.0.1.16 100.126.38.3  (公)       10.0.1.13  10.0.1.16 演示过程中会有新主机生成

高可用组

使用应用主机模板

1

配置弹性伸缩,配置告警条件,在业务压力大导致CPU触发阈值后,自动扩容主机,提升负载能力

数据库

2C8G  50GSSD 存储  MySQL   5.7

1

mysql -1-a0b7e160c1xxxx.jdcloud.com

Redis

4G

1

redis-1kn4b5zwgzc5-xxxn-1.jdcloud.com

公网IP

4个,主机及LB各一个

4

5M带宽

LB

1个,配1个公网IP 作为业务入口

1

LB绑定公网IP,配置轮询模式。例如,  Vip:  10.0.1.27 公网 IP:  100.126.35.4

CFS

1个

1

共享存储作为业务应用数据存储目录挂载于高可用组主机特定目录下:例如,mount -t nfs -o vers=3 -o  noresvport   10.0.0.200:/cfs /wp

三、应用部署

3.1 基础环境准备

业务以一个典型的wordpress的网站为例,业务容器化部署于云主机上,高可用依赖京东云的云主机高可用组,主机安装docker,并配置docker服务自动启动。

#创建应用数据目录 配置目录权限、安装docker等
 mkdir -p /wp
 chmod 777 /wp
 yum install docker vim -y
 systemctl enable docker
 systemctl start docker
 #挂载CFS文件作为应用数据目录
 yum install nfs-utils -y
 systemctl enable rpcbind    
 systemctl start rpcbind
 mount -t nfs -o vers=3 -o noresvport 10.0.0.200:/cfs /wp
#配置启动自动挂载CFS及启动服务,通过rc.local实现:
#[root@wpha0 wp]# cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
mount -t nfs -o vers=3 -o noresvport 10.0.0.200:/cfs /wp
#(说明,生产环境可在/etc/fstab挂载)
bash /root/start.sh
start.sh见以下代码
[root@wpha0 wp]# cat /root/start.sh
docker stop wordpress
sleep 3
docker rm wordpress
sleep 3
docker run -d --name=wordpress --restart=unless-stopped -p 443:443 -p 80:80 -v /wp:/var/www/html wordpress
#[root@wpha0 wp]#
#启动脚本编辑完成后,并写入rc.local后,rc.local调整成可执行,以实现启动主机运行脚本, rc.local实现了主机启动后自动挂载CFS到指定目录,然后,通过start.sh自动清除旧数据,重新拉起wordpress服务。
chmod +x /etc/rc.d/rc.local
#拉取应用所需镜像
 docker pull wordpress
#拉取镜像后,运行服务。
docker run -d --name=wordpress --restart=unless-stopped    -p 443:443 -p 80:80  -v /wp:/var/www/html  wordpress

注意,这个场景下,主要调整了几个位置:

1、挂载CFS为wordpress的工作目录,这样,调整页面内容以及拉起新主机后,网站内容都保持一致。相关自动挂载方式为在/etc/rc.local加入挂载命令,同时chmod +x /etc/rc.d/rc.local 把这个文件加一下可执行权限。


2、需要把wp目录的权限改为777 (或docker内部的 33 tape等,不过不同版本可能有区别,改成777相对稳妥), 否则挂载后,docker内部的wordpress无法获取目录读写权限。


3、NFS挂载需要安装nfs插件 yum install nfs-utils -y  并启动rpc服务 
systemctl enable rpcbind    systemctl start rpcbind


WP目录为777 权限

0ecc2dcf451548eb7a44e595ec2d44ce.jpeg

到这里基础主机环境准备完成。

下一步,进行wordpress应用的配置,实现高可用可视化的演示效果。

3.2 业务侧 wordpress配置

web应用使用wordpress部署。通过docker部署,并实现高可用组主机自动伸缩自动化拉起。
通过docker拉取wordpress 
docker pull wordpress
拉取镜像后
docker run -d --name=wordpress --restart=unless-stopped    -p 443:443 -p 80:80  -v /wp:/var/www/html  wordpress
其中/wp 是挂载的CFS,作为多个应用主机共同挂载,作为wordpress的应用的应用文件目录。
启动wordpress容器,并挂载CFS目录为WP的应用目录。
以上部署在3.1中已经完成。


前置准备工作-负载均衡:
配置一个带公网IP的负载均衡,并配置监听器,监听器后端暂时配置一个已经拉起了docker的这台主机 


前置准备工作-数据库:
在配置网站前,需要首先在云控制台的RDS那里为wordpress创建一个账户:wordpress,并设置密码,建立一个库:wordpress(因为后续演示方案有调整,我又创建了一个新库wordpressbackup,实际正常来讲一个库就可以了),并授权wordpress库给wordpress用户。


前置准备工作-redis:
在控制台购买一个redis,记录redis的URL,为后续配置redis 缓存做准备。


这样,基本的应用环境就绪了。

通过浏览器访问负载均衡(注意访问LB,不直接访问主机)的IP的80端口,即可进入wordpress的配置 页面, wordpress的配置,主要是数据库的地址以及数据库前缀的配置,输入正确的数据库的host 地址及密码即可,其余保持默认,其他依据官网手册指导保持默认配置即可。

配置完成后,wordpress会自动为网站创建相关的表,并提示配置wordpress的admin以及管理密码。

安装完成后,可以登录数据库查看创建的表,后续MySQL高可用演示时,也可以登录到数据库做些常规 操作,不受高可用切换影响。

到此,基本的应用就安装完成了。

f2fa33a0364d68f7d8ed434c172bae86.jpeg

配置redis动态缓存加速:

redis的角色,在这个案例里边,在wordpress里 redis 作为一个动态加速缓存使用,对加速网站访问, 减轻数据库压力起到一定作用。

下载wordpress的redis插件,redis-cache。

下载后通过wordpress的管理页面-plugin --addnew 直接上传,然后依据插件操作手册安装配置即可。

cd70c2d12a2adef37def4dfcf892bb40.jpeg

安装redis-cache以后,会在/wp/wp-content/plugins 目录下生成一个 redis-cache目录。需要同时在/wp/wp- content 下生成一个 object-cache.php文件,正常来讲,需要调整一个参数host改成redis的域名即可。如果配置了密码,就需要调整这个以及redis-cache目录下的配置文件把密码配置进去,这个因为是 演示环境,redis设置 了免密,生产环境一定要设置密码。

9eda2ca7f682262efe57ad0081cf3662.jpeg

安装配置完成后,在管理界面的setting里会有redis的配置选项,这个和版本有关系,有些版本可能会让在这里做参数配置。直接改文件参数效果是一样的。

54eecef0ae2608d83ebb167e9f8860cd.jpeg

mysql及redis管理及相关登录方式介绍:

MySQL的登录,没有安装client,使用了一个mysql的docker
相关命令:
docker run --name mysql -p 3306:3306  --restart=unless-stopped -v /root/dbackup/:/db -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
进入mysql的docker中:
docker exec -it mysql bash   
连接wordpress使用的数据库:
mysql  -h mysql-xxxea04fc4c52.jdcloud.com -u wordpress -p
use wordpressbackup;
show tables;
select id from wpbackup_posts;


--中间因为做了多次演练和数据库切换,中间做了wordpress数据库导出和导入操作
mysql 数据库导出(均在mysql的docker容器中执行命令):
mysqldump  -h  mysql-xxxa04fc4c52.jdcloud.com -uwordpress -p --databases wordpressbackup >/db/wordpressbackup-0322.sql
数据导入:
进入数据库,
use wordpressbackup;
source /db/wordpressbackup-0322.sql;


----redis验证
redis验证,同样是没有安装client,通过docker里的命令行去连接:
docker run -d --name redis --memory=1G -p 7379:6379   redis
docker exec -it redis bash   


redis-cli -h redis-j49rpxxx.jdcloud.com


登入后,查看信息:
KEYS *

wordpress配置主页显示hostname及来源IP

---让wordpress获取hostname 并在页面展示+获取访客地址,以增强演示效果,明确看到访问的实际主 机位置。

为了让访问者看到访问的IP是哪个(证实高可用组的自动扩容及业务的自动拉起),需要在所使用的 theme 目录的function里加入相关代码。  /wp/wp- content/themes/twentytwentytwo/function.php

[root@AG-wordpress- HA-group1-c8705-2 twentytwentytwo]# vim /wp/wp-content/themes/twentytwentytwo/function.php

在里边加入以下代码,一个是show_ip函数,一个是show_hostname函数。

function get_the_user_ip() {
if ( ! empty( $_SERVER["HTTP_CLIENT_IP"] ) ) {
//check ip from share internet
$ip = $_SERVER["HTTP_CLIENT_IP"];
} elseif ( ! empty( $_SERVER["HTTP_X_FORWARDED_FOR"] ) ) {
//to check ip is pass from proxy
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else {
$ip = $_SERVER["REMOTE_ADDR"];
}
return apply_filters( "wpb_get_ip", $ip );
}
add_shortcode("show_ip", "get_the_user_ip");


function get_hostname()
{
     $hostname = gethostname();
          echo "$hostname\n";
      return apply_filters( "hostname", $hostname );
}


add_shortcode("show_hostname", "get_hostname");

然后,在wordpress的site里加入短代码实现:

d40c40148a09010a2b3d640b56409452.jpeg

保存后,看到页面可以显示相关的IP及hostname信息了。

fa95f13d56913df5e47b9ebd0562873f.jpeg

到这里,wordpress的应用环境配置完成。

下一步配置业务的高可用环境,实现跨AZ的高可用组及主机自动弹性伸缩。

3.3 实例模板及高可用组、LB配置

单台主机配置完成后,重启能自动拉起应用,进行确认后, 将现有主机打一个镜像。作为高可用组的实例模板。后续LB后端的高可用组通过这个模板创建主机。

其余包括数据库配置、网站数据、redis缓存配置等,均实现了服务及数据的分离,因此,在后期进行动态弹性扩容时,使用这个模板的高可用组,可以直接拉起服务,实现动态弹性伸缩。

实例模板:

5a2779737d5abbb85a8650e20a816fd8.jpeg

5e53e5a514149dde7a72d4d8c95f6e57.jpeg

高可用组:

高可用组使用制作好了wordpress的应用主机的镜像。做到高可用组自动弹性伸缩出新主机--新主机自动 拉起wordpress应用--新主机自动挂载到LB接收业务流量的模式。

5ebba171075a863dbcd78ee09c0be7a5.jpeg

37d6914432ef2b4a8c08cf22a974b8bd.jpeg

6cf553d16885d457e96e9a87b6a83efd.jpeg

LB配置:

LB监听器选择后端服务为高可用组,并配置健康检查。

8087b8463fb97a69008f8bb5ceb28e2b.jpeg

fa9bd81b4c2a65a2bd9a7175b2d6b33d.jpeg

高可用组挂载到LB后端以后,应用环境已经搭建完成。

可以访问LB入口,访问到网站,并且会轮询到不同服务器,同时,访问单台服务器的外网IP也可以访问网站业务:

LB访问截图(2张,分别访问到了两个主机)

306fbbc691d400b9400923a3199bd5a4.jpeg

4f3970b1d2abe2e7c86bcc866ed37427.jpeg

单台主机访问截图(直接访问单台主机IP,刷新后不会轮询主机):

0798721a613bcdde9465e0d72b24f61c.jpeg

演示环境就绪。

下一步,进行破坏性演练,检验高可用环境的效果。

四、应用演示

高可用演示脚本:

验证项目

详细描述

预期结果

云主机

模拟主机故障- 通过底层命令/控制台关闭可用区A的应用云主机

站点访问正常,可以新增、删除、修改post

高可用组

高可用组配置弹性伸缩,设置最小最 大实例个数,并配置伸缩触发的阈值  (告警配置内配置)

通过stress命令模拟高并发场景,高可用组通 过弹性伸缩特性创建新主机并挂载到LB后,实现多主机接收流量

RDS

模拟RDS实例故障- 通过底层命令关闭 RDS的主实例

- 主从切换,业务不受影响

RDS

主从切换从控制台可以看到切换过程

切换过程完成后,   RDS状态为运行中

Redis

模拟Redis实例故障- 通过底层命令关闭Redis的主实例

- 主从切换,业务不受影响(本文未截图)

Redis

redis在模拟故障过程中,业务持续访问

从redis返回的数据不受切换影响(本文未截图)

高可用组信息,目前LB后端挂载的为高可用组:

测试页面信息(所有IP均为非真实IP):

业务入口(LB):http://100.126.35.4/

高可用组单台主机访问入口目前为:

http://100.126.38.13/

http://100.126.38.16

主机的高可用及自动伸缩:

演示所需的一些脚本:

一个是模拟生产环境,对业务主入口的LB持续访问,这个在测试过程中,一直可以访问到,不会中断。

#!/bin/bash
#for ((i=1;i<=10;i++))
for i in {1..15000}
 do
curl 100.126.35.4
echo $i
echo $(date +%T)
sleep 3
  done

一个是模拟单机环境,对业主机入口的持续访问,这个在测试过程中,当针对单机关机时,访问会卡住。

#!/bin/bash
#for ((i=1;i<=10;i++))
for i in {1..15000}
 do
curl 100.126.38.16
echo $i
echo $(date +%T)
sleep 3
  done

演示过程中,高可用组自动伸缩功能,能正常扩容出新的主机并提供业务访问。

高可用组的自动伸缩,通过 stress模拟压力

安装stress后,直接运行(主机为2C):
stress --CPU 2
通过top命令可以看到CPU被打满。
过2分钟(高可用组伸缩策略配置的时间),高可用组会自动扩展一台主机,并作为高可用组的一台主机自动挂载到LB的后端,可在LB及主机界面看到自动扩容的主机。

ac8f99e2ca1b19af5f219101be78b3ae.jpeg

在控制台将一台高可用组内主机关机,然后可见LB后端服务健康检查发现挂载的高可用组一台服务器异常,高可用组如配置最小的主机数量,则高可用组也自动扩出一台主机,继续提供服务。在此期间,流量会转发给后端正常主机,健康检查异常的主机不再接收流量,业务访问持续正常。

1373229ae2c29285d139059abb9ebfcd.jpeg

a9b3cfba6be8a7408e5d4749d98fa806.jpeg

PAAS服务的高可用:

本演示以MySQL及redis研发在底层直接杀docker,然后业务访问不中断,控制台上会出现主从切换现象在这个过程中对业务的访问不会中断。

云数据库及缓存的破坏性操作,底层操作由研发操作。

底层进行RDS主备切换(kill掉RDS主库),业务访问同样不会中断,研发提供截图可以看到主从切换过程。

4acbdb4c321dc6bb14ba3f26f885fbf2.jpeg

cb146fe88a58744a9ff891e7770ce5d6.jpeg

本文实际部署环境为京东为客户搭建的私有云环境(JDSTACK),公有云与私有云为相同技术栈,搭建及验证过程相似。限于篇幅,redis验证部分及主机可访问性脚本结果未截图,感兴趣的读者可自行在云上通过本文指引过程搭建验证。

-end-

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

京东云高可用业务架构建设 的相关文章

  • 【计算机毕业设计】实验室预约管理

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 【计算机毕业设计】出租车管理系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本出租车管理系统就是在这样的大环境下诞生 其可以帮助管理者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管理人
  • 【计算机毕业设计】航空信息管理系统

    传统信息的管理大部分依赖于管理人员的手工登记与管理 然而 随着近些年信息技术的迅猛发展 让许多比较老套的信息管理模式进行了更新迭代 飞机票信息因为其管理内容繁杂 管理数量繁多导致手工进行处理不能满足广大用户的需求 因此就应运而生出相应的航空
  • 【计算机毕业设计】校园体育赛事管理系统

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 【计算机毕业设计】学生就业管理系统

    如今社会上各行各业 都喜欢用自己行业的专属软件工作 互联网发展到这个时候 人们已经发现离不开了互联网 新技术的产生 往往能解决一些老技术的弊端问题 因为传统学生就业信息管理难度大 容错率低 管理人员处理数据费工费时 所以专门为解决这个难题开
  • 软件测试/测试开发/全日制/测试管理丨Redis内存数据库

    Redis是一种开源 内存中的数据结构存储系统 它提供了高性能 灵活性和丰富的数据结构 以下是Redis内存数据库的基本介绍 键值存储 Redis基于键值对的存储模型 其中每个键都与一个特定的值相关联 这种简单的数据模型使其易于使用和理解
  • VMware 最新版 - 虚拟机安装、激活、Centos安装、XShell 连接虚拟机、网络配置(全流程)

    目录 一 VMware 从安装到使用全流程 1 1 安装和激活 1 2 下载 Centos 镜像 以 7 为例 1 3 创建虚拟机 1 4 网络配置 1 5 验证网络是否可用 一 VMware 从安装到使用全流程 1 1 安装和激活 a 从
  • SRC漏洞挖掘经验+技巧篇

    一 漏洞挖掘的前期 信息收集 虽然是前期 但是却是我认为最重要的一部分 很多人挖洞的时候说不知道如何入手 其实挖洞就是信息收集 常规owasp top 10 逻辑漏洞 重要的可能就是思路猥琐一点 这些漏洞的测试方法本身不是特别复杂 一般混迹
  • RF自动化环境安装+自动化实例解析

    RF定义 通用型的 自动测试框架 绝大部分的软件的的自动化系统都可以采用它 特点 测试数据文件 Test Data 对应一个个的测试用例 测试数据文件里面使用的功能小模块叫关键字 由测试库 Test Library Robot Framew
  • 图解python | 字符串及操作

    1 Python元组 Python的元组与列表类似 不同之处在于元组的元素不能修改 元组使用小括号 列表使用方括号 元组创建很简单 只需要在括号中添加元素 并使用逗号隔开即可 tup1 ByteDance ShowMeAI 1997 202
  • APP端网络测试与弱网模拟

    当前APP网络环境比较复杂 网络制式有2G 3G 4G网络 还有越来越多的公共Wi Fi 不同的网络环境和网络制式的差异 都会对用户使用app造成一定影响 另外 当前app使用场景多变 如进地铁 上公交 进电梯等 使得弱网测试显得尤为重要
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 【计算机毕业设计】二手图书交易系统

    随着世界经济信息化 全球化的到来和互联网的飞速发展 推动了各行业的改革 若想达到安全 快捷的目的 就需要拥有信息化的组织和管理模式 建立一套合理 动态的 交互友好的 高效的二手图书交易系统 当前的信息管理存在工作效率低 工作繁杂等问题 基于
  • 一台java服务器可以跑多少个线程?

    一台java服务器可以跑多少个线程 一台java服务器能跑多少个线程 这个问题来自一次线上报警如下图 超过了我们的配置阈值 打出jstack文件 通过IBM Thread and Monitor Dump Analyzer for Java
  • Vue 如何使用WebSocket与服务器建立链接 持续保持通信

    WebSocket 浏览器通过JavaScript向服务器发出建立WebSocket链接的请求 链接建立后 客户端和服务器端就可以通过TCP链接直接交互数据 WebSocket链接后可以通过 send 方法来向服务器发送数据 并通过 onn
  • 温室气体排放更敏感的模型(即更高的平衡气候敏感性(ECS))在数年到数十年时间尺度上也具有更高的温度变化(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • ESP10B 锁定连接器

    ESP10B 锁定连接器 ESP10B 电机新增内容包括双极型号标准 NEMA 尺寸 17 23 和 34 的步进电机现在包括输出扭矩范围从 61 盎司英寸到 1291 盎司英寸的双极型号 该电机配有带锁定连接器的尾缆 可轻松连接 每转可步
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告
  • [机缘参悟-132] :《洞见》:为什么佛学是真的 -3- 冥想,洞见自己的内心

    目录 一 佛家修行的方法 二 冥想 2 1 冥想步骤 2 2 冥想的好处 2 3 冥想的方法 一 佛家修行的方法 佛教修行是指追求智慧 慈悲和解脱 以最终实现觉悟和解脱的过程 它包含了广泛的修行方法 以下是一些常见的佛教修行方法 冥想 冥想
  • Python 使用 NoSQL 数据库的优选方案

    NoSQL 数据库因其高性能 可扩展性和灵活性而风靡一时 然而 对于 Python 程序员而言 选择合适的 NoSQL 数据库可能会令人困惑 因为有多种选择可供选择 那么 哪种 NoSQL 数据库最适合 Python 呢 2 解决方案 根据

随机推荐

  • el-element中el-tabs案例的使用

    el element中el tabs的使用 代码呈现
  • cherry-pick的错误分析

    在cherry pick的时候出现以下错误提示 是对同一提交重复做cherry pick引起的 On branch You are currentlycherry picking all conflicts fixed run gitcom
  • 2023华为OD机试真题【最短木板长度/贪心算法】

    题目描述 小明有 n 块木板 第 i 1 i n 块木板长度为 ai 小明买了一块长度为 m 的木料 这块木料可以切割成任意块 拼接到已有的木板上 用来加长木板 小明想让最短的木板尽量长 请问小明加长木板后 最短木板的长度可以为多少 输入描
  • 自媒体工具网站

    黑镜虚拟科技 MetaMaker V2 2 1 B22 11 01 10 48 18 Giios自动写作机器人 Giiso写作机器人 一款内容创作AI辅助工具 视频背景音乐自动匹配工具 巨量创意 图片微动工具 巨量创意 网络资源所搜工具 百
  • CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现

    CVE 2023 32315 Openfire管理控制台身份验证绕过到RCE复现 前言 本次测试仅供学习使用 如若非法他用 与本文作者无关 需自行负责 一 Openfire简介 Openfire是根据开源Apache许可证授权的实时协作 R
  • es6怎么将对象转换为指定数组格式

    let obj a 1 b 2 c 3 var aa Object values obj 1 2 3 console log aa var arr Object entries obj console log arr 0 2 a 1 1 2
  • 过流检测与保护电路

    在数字压力开关项目中 压力表的输出电路开关负载 输出电路要求负载电流最大为50mA 需要在负载电路中加一个电流检测和保护电路 在负载高电压一端或者低电压一端串入一个高精度小阻值采样电阻 电阻值的选取要注意分担的电压和功率不能太大 同时也要主
  • 超大规模数据库集群保稳系列之三:美团数据库容灾体系建设实践

    本文整理自美团技术沙龙第75期的主题分享 美团数据库攻防演练建设实践 系超大规模数据库集群保稳系列 内含4个议题的PPT及视频 的第3篇文章 本文重点介绍了美团数据库的容灾体系建设实践 主要内容包括业务架构 数据库容灾平台能力建设 演练体系
  • VS打开项目或解决方案卡死,一直处于未响应状态。

    VS打开项目或解决方案卡死 一直处于未响应状态 参考文章 1 VS打开项目或解决方案卡死 一直处于未响应状态 2 https www cnblogs com dh123 p 10474694 html 备忘一下
  • Linux系统(Centos 7)redis

    1 redis背景 1 1 什么是NOSQL nosql not only sql 不仅仅是sql NoSQL 泛指非关系型的数据库 非关系型的数据库则由于其本身的特点得到了非常迅速的发展 非关系数据库和关系型数据库之间的区别 RDBMS
  • LR11_RUN-TIME SETTINGS配置解读

    LR11中RUN TIME SETTINGS重要配置解读 1 配置入口 右键选中任意一个ACtions 2 Run Logic配置说明 PS LR12还多一个脚本执行策略的配置 多个ACTION时是顺序执行 还是随机执行 3 Pacing配
  • 0.IDA-基本操作

    打开IDA 拖拽一个EXE文件进去 首先会弹出如下窗口 Kernel option1 Kernel option2 Processor option这三个选项会控制反汇编引擎的工作状态 一般按默认即可 大多数情况下 分析选项的默认值在准确性
  • AnacondaNavigator安装keras亲身详细步骤

    废话不多说直接上过程 1 在开始菜单搜索anaconda 这很简单直接上图 然后我们的打开conda命令行 就是那个Prompt 2我们先知道一下要下载keras库不光是一个keras 所以 我们的下载顺序是 libpython mingw
  • 剑指 Offer 63. 股票的最大利润(java+python)

    假设把某股票的价格按照时间先后顺序存储在数组中 请问买卖该股票一次可能获得的最大利润是多少 示例 1 输入 7 1 5 3 6 4 输出 5 解释 在第 2 天 股票价格 1 的时候买入 在第 5 天 股票价格 6 的时候卖出 最大利润 6
  • 雪花id生成算法

    什么是雪花算法 雪花算法的本质为生成一个64位长度的具有自增性的分布式全局唯一id 在64bits中 会对不同段的位进行划分 可分为 符号段 时间戳段 机器码段 data center worker 自增序列号段 位段详解 第一位 符号位
  • [cesium]

    源码 正在为您运送作品详情 Web3D 三维特效
  • Markdown快速入门教程

    Markdown 的目标是实现 易读易写 并强调它的 可读性 因此Markdown 的语法全由标点符号所组成 并经过严谨慎选 是为了让它们看起来就像所要表达的意思 以下是Markdown 大部分的语法 常用语法 文字样式 文字字体 类别 语
  • float,flex和grid布局

    页面布局往往会影响着整体的结构与项目的样式 通常我们用的布局方式有三种 float flex grid 1 float或position布局 1 1概念 首先对于一个页面来说 有浮动流 文档流 文本流这几种模式 而float布局则是脱离文档
  • MySQL的架构体系

    在对MySQL深入的学习之前 我们首先要了解MySQL的一个完整的架构 首先了解到MySQL是一个开源的数据库管理系统 它相对于Oracle更加地轻量 成本低 随着功能的日益完善 它也变得备受企业的喜爱 尤其是中小企业 有图可知 MySQL
  • 京东云高可用业务架构建设

    本文以 2022 年一个实际项目为基础 来演示在京东云上构建高可用业务的整个过程 公有云及私有云客户可通过使用京东云的弹性 IAAS PAAS 服务 创建高可用 高弹性 高可扩展 高安全的云上业务环境 提升业务 SLA 提升运维自动化水平