动态ip可以做网站/建立公司网站需要多少钱

动态ip可以做网站,建立公司网站需要多少钱,哪些小程序可以赚钱,推广公司的新产品英语目录 一、集群简介1、现状问题2、集群作用 二、集群结构设计1、集群存储设2、消息通信设计 三、Cluster集群三主三从结构搭建1、redis.conf配置文件可配置项2、配置集群3、链接集群4、命令客户端连接集群并使用 四、集群扩容1、添加节点2、槽位分配3、添加从节点 五、集群缩容1…

目录

    • 一、集群简介
      • 1、现状问题
      • 2、集群作用
    • 二、集群结构设计
      • 1、集群存储设
      • 2、消息通信设计
    • 三、Cluster集群三主三从结构搭建
      • 1、redis.conf配置文件可配置项
      • 2、配置集群
      • 3、链接集群
      • 4、命令客户端连接集群并使用
    • 四、集群扩容
      • 1、添加节点
      • 2、槽位分配
      • 3、添加从节点
    • 五、集群缩容
      • 1、删除从节点
      • 2、删除主节点

一、集群简介

1、现状问题

  • redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到20万/秒
  • 内存单机容量达到256G,当前业务需求内存容量1T

2、集群作用

  • 分散单台服务器的访问压力,实现负载均衡
  • 分散单台服务器的存储压力,实现可扩展性
  • 降低单台服务器宕机带来的业务灾难

二、集群结构设计

1、集群存储设

  1. 让key通过方法CRC161计算一个hash值,再继续取余%16384,得出在Redis中存储的位置。
  2. 将所有的存储空间计算切割16384个槽,每台主机保存一部分。
    • 这个槽代表一个存储空间,不是一个key的保存空间。
  3. 将key按照计算出的计算放到对应的存储空间。
    当增加一台计算机,内部就会优化,其余redis把自身一些槽,分给新加的节点。如果去机器把原来的槽再返回给原来的节点。这样可扩展性就得到增强。

2、消息通信设计

  • 各个数据库互相通信,保存各个库中槽的编号数据
  • 一次命中,直接返回。
  • 一次未命中,告知具体位置,直接去下一个库中寻找,命中返回。
    这样最多两次命中,就可以找到数据。
    在这里插入图片描述

三、Cluster集群三主三从结构搭建

1、redis.conf配置文件可配置项

  • 打开 cluster 集群配置
    • cluster-enabled yes|no
  • cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容
    • cluster-config-file <filename>
  • 节点服务响应超时时间,用于判定该节点是否下线或切换为从节点
    • cluster-node-timeout <milliseconds>
  • master连接的slave最小数量
    • cluster-migration-barrier <count>

2、配置集群

注意redis5.0.5以后,就不需要安装ruby了

  • 清除redis中data目录所有数据
rm -rf ./data
  • 新建redis-端口号.conf文件
port 端口号
# Normal Redis instances can't be part of a Redis Cluster; only nodes that are
# started as cluster nodes can. In order to start a Redis instance as a
# cluster node enable the cluster support uncommenting the following:
# 打开 cluster集群配置
cluster-enabled yes# Every cluster node has a cluster configuration file. This file is not
# intended to be edited by hand. It is created and updated by Redis nodes.
# Every Redis Cluster node requires a different cluster configuration file.
# Make sure that instances running in the same system do not have
# overlapping cluster configuration file names.
# cluster集群配置文件
cluster-config-file nodes-端口号.conf# Cluster node timeout is the amount of milliseconds a node must be unreachable
# for it to be considered in failure state.
# Most other internal time limits are multiple of the node timeout.
# 当前这个节点超时时,多少秒后反馈信息
cluster-node-timeout 10000

复制六份这样的文件,每个配置文件的参数改成端口号

  • 启动六个cluster节点

    /usr/local/bin/redis-server /opt/module/redis-5.0.5/conf/redis-端口号.conf

3、链接集群

进入到一个redis,bin目录下执行命令

./redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1

如果集群有密码:./redis-cli 后面跟 -a password
–cluster-replicas 1 表示 一个master后有几个slave,redis集群自行分配
注意 ip一定不能用127.0.0.1 不然外部无法重定向访问集群 cluster-replicas后面的1表示一个主机有几个从机 因为现在只有一个因此是1 工作中是2

4、命令客户端连接集群并使用

  • 注意:-c 表示是以redis集群方式进行连接
    ./redis-cli -a 123456 -h 127.0.0.1 -p 6379 -c
  • 查看集群状态
    • cluster info
  • 查看集群中的节点
    • cluster nodes
  • 查看帮助
    • cluster help
  • 新增master节点
    • cluster meet ip:port
  • 忽略一个没有solt的节点
    • cluster forget id
  • 手动故障转移
    • cluster failover
  • 进入从节点redis,切换其主节点
    • cluster replicate masterID
  • 当存放数据存,放的key:001根据crc16算法算出值然后对16384取余算出的值恰好落在分配到7001的槽中,所以就存放到7001中。我们去7002中进行获取的时候。会重定向到7001中进行获取。
    在这里插入图片描述

四、集群扩容

新加入的节点都是master,并且不会分配任何slot槽位,我们要手动为新节点分配hash槽

1、添加节点

  • 启动6385节点 进入bin目录进行启动
    • ./redis-server redis-6385.conf
  • 申请加入集群
    • ./redis-cli --cluster add-node 127.0.0.1:6385 127.0.0.1:6379
    • 命令解释:添加节点 6385 去meet6379申请加入集群
  • 启动客户端并查看节点信息:
    • redis-cli -a 123456 -h 127.0.0.1 -p 6379 -c
    • cluster nodes

2、槽位分配

使用redis-cli --cluster reshard命令为新加入的节点分配槽位,需要使用集群中任意一个master节点对其进行重新分片
redis-cli -a 123456 --cluster reshard 127.0.0.1:6385

How many slots do you want to move (from 1 to 16384)? 600
(ps:需要多少个槽移动到新的节点上,自己设置,比如600个hash槽)
What is the receiving node ID? 2728a594a0498e98e4b83a537e19f9a0a3790f38
(ps:把这600个hash槽移动到哪个节点上去,需要指定节点id,可通过 cluster nodes 查看当前节点id)
Please enter all the source node IDs.
Type ‘all’ to use all the nodes as source nodes for the hash slots.Type ‘done’ once you entered all the source nodes IDs.
Source node 1:all(ps:输入all为从所有主节点(8001,8002,8003)中分别抽取相应的槽数指定到新节点中,抽取的总槽数为600)
Do you want to proceed with the proposed reshard plan (yes/no)? yes
(ps:输入yes确认开始执行分片任务)

3、添加从节点

  • 添加节点(这时候的节点是master节点,并不会分配槽位)

    • redis-cli -a 123456 --cluster add-node 192.168.0.61:6386 192.168.0.61:6379
  • 先登录从节点,然后在replicate命令中指定主节点的id

    • redis-cli -a 123456-c -h 192.168.0.61 -p 6379
  • 将当前节点分配给指定的master节点作为slave节点

    • cluster replicate 2728a594a0498e98e4b83a537e19f9a0a3790f38 *#后面这串id为要添加slave节点的master的节点id*

五、集群缩容

接下来将上面新增加的两个节点删除

1、删除从节点

  • redis-cli --cluster del-node 删除从节点6386,指定删除节点ip和端口,以及节点id
    • redis-cli -a hs --cluster del-node 127.0.0.1:6386 a1cfe35722d151cf70585cee21275565393c0956

2、删除主节点

主节点的里面是有分配了hash槽的,所以我们这里必须先把6385里的hash槽放入到其他的可用主节点中去,然后再进行移除节点操作,不然会出现数据丢失问题

只能把master的数据迁移到一个节点上,暂时做不了平均分配功能

  • 任选一个主节点进行重新分片*
    • redis-cli -a 123456 --cluster reshard 127.0.0.1:6385
    • How many slots do you want to move (from 1 to 16384)? 600
      (ps:需要多少个槽移动到新的节点上)
      What is the receiving node ID? 2728a594a0498e98e4b83a537e19f9a0a3790f38
      (ps:把这600个hash槽移动到哪个节点上去,这里使用6379的主节点id)
      Please enter all the source node IDs.
      Type ‘all’ to use all the nodes as source nodes for the hash slots.
      Type ‘done’ once you entered all the source nodes IDs.
      Source node 1:2728a594a0498e98e4b83a537e19f9a0a3790f38
      (ps:这里是需要数据源,也就是我们的6385节点id。这里这次就不写all了)
      Source node 2:done
      (ps:这里直接输入done 开始生成迁移计划)
      Do you want to proceed with the proposed reshard plan (yes/no)? yes
      (ps:这里输入yes开始迁移)
      
  • 查看节点信息,发现没有插槽数了
    • cluster info
  • 开始删除节点
    这次就不写all了)
    Source node 2:done
    (ps:这里直接输入done 开始生成迁移计划)
    Do you want to proceed with the proposed reshard plan (yes/no)? yes
    (ps:这里输入yes开始迁移)
  • 查看节点信息,发现没有插槽数了
    • cluster info
  • 开始删除节点
    • redis-cli -a 123456 --cluster del-node 192.168.0.61:6385 2728a594a0498e98e4b83a537e19f9a0a3790f38

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/75965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础 3.29

1.数组的相关注意事项 错误示范一 String strs[] new String[2]{"a", "b"}; 正确示范一 String strs[] new String[]{"a", "b"}; 让JVM自己判断有几个数据&#xff0c;无需再其中写明有几组数据 错误示范二 String strs[] new…

解决 FFmpeg 使用 C/C++ 接口时,解码没有 shell 快的问题(使用多线程)

一、问题 硬件设备为香橙派 5Plus&#xff0c;最近需要使用硬件视频解码来加速 YOLO 的检测&#xff0c;shell 窗口的FFmpeg已经调通&#xff0c;详见文章&#xff1a; 编译支持 RKmpp 和 RGA 的 ffmpeg 源码_rk3588 ffmpeg mpp-CSDN博客https://blog.csdn.net/plmm__/article…

【Mac】npm error Error: EACCES: permission denied, mkdir‘/Users/...

问题描述&#xff1a;Mac电脑中的 vscode 下载依赖的时候提示没有权限&#xff1a; 故障分析 首先账号是有权限的&#xff0c;电脑就建了一个账号是管理员&#xff1b;在桌面用shell直接执行命令npm init 命令可以执行成功&#xff0c;那么问题就出在vscodes上面了&#xff0…

【AI】NLP

不定期更新&#xff0c;建议关注收藏点赞。 目录 transformer大语言模型Google Gemma疫情网民情绪识别 整体框架 baseline构建 模型调参、模型优化、其他模型 数据trick、指标优化、magic feature 数据增强、伪标签、迁移学习 模型融合sklearn中TFIDF参数详解 频率阈值可以去掉…

集成开发环境革新:IntelliJ IDEA与Cursor AI的智能演进

集成开发环境革新&#xff1a;IntelliJ IDEA 与 Cursor AI 的智能演进 集成开发环境&#xff08;IDE&#xff09; 是软件开发者必不可少的工具。一个优秀的 IDE 不仅能够帮助编写和调试代码&#xff0c;还能集成版本控制和代码优化等多种功能。如今&#xff0c;随着人工智能&a…

【Django】教程-1-安装+创建项目+目录结构介绍

欢迎关注我&#xff01;后续会更新django教程。一周2-3更&#xff0c;欢迎跟进&#xff0c;本周会更新第一个Demo的单独一个模块的增删改查【Django】教程-4-一个增删改查的Demo【Django】教程-2-前端-目录结构介绍【Django】教程-3-数据库相关介绍 1.项目创建 1.1 安装 Djan…

智能仪表板DevExpress Dashboard v24.2新版亮点:支持.NET 9

使用DevExpress BI Dashboard&#xff0c;再选择合适的UI元素&#xff08;图表、数据透视表、数据卡、计量器、地图和网格&#xff09;&#xff0c;删除相应参数、值和序列的数据字段&#xff0c;就可以轻松地为执行主管和商业用户创建有洞察力、信息丰富的、跨平台和设备的决策…

STM32 IIC通信

目录 IIC简介硬件电路连接I2C时序基本单元IIC完整数据帧MPU6050封装硬件IIC内部电路 IIC简介 IIC&#xff08;Inter-Integrated Circuit&#xff09;是 IIC Bus 简称&#xff0c;中文叫集成电路总线。它是一种串行通信总线&#xff0c;使用多主从架构&#xff0c;由飞利浦公司…

debug 笔记:llama 3.2 部署bug 之cutlassF: no kernel found to launch!

1 问题描述 按照官方的写法 import torch from transformers import pipeline import os os.environ["HF_TOKEN"] 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 model_id "meta-llama/Llama-3.2-3B"pipe pipeline("text-generation", modelmode…

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第五讲)

在上一讲我们讲解了按键回调函数的自定义函数的用法&#xff0c;这一讲继续讲解回调函数的另一种用法。 首先我们将上一讲做好的按键名称以及自定义回调事件中的按键名称修改&#xff0c;改为默认模式为“open”当点击按键时进入回调函数将按键名称改为“close”&#xff0c;具…

Hyperliquid 遇袭「拔网线」、Polymarket 遭治理攻击「不作为」,从双平台危机看去中心化治理的进化阵痛

作者&#xff1a;Techub 热点速递 撰文&#xff1a;Glendon&#xff0c;Techub News 继 3 月 12 日「Hyperliquid 50 倍杠杆巨鲸」引发的 Hyperliquid 清算事件之后&#xff0c;3 月 26 日 晚间&#xff0c;Hyperliquid 再次遭遇了一场针对其流动性和治理模式的「闪电狙击」。…

自顶向下学习K8S--部署Agones

本文在本人博客&#xff0c;原文地址&#xff1a;http://viogami.tech/index.php/blog/346/ 我是gopher&#xff0c;离不开云原生&#xff0c;自然也逃不了理解docker和K8S这俩。今天抽空想玩下agones&#xff0c;进而对K8S有实践性的理解。 学一个新事物从底层理论学肯定是最…

协作机械臂需要加安全墙吗? 安全墙 光栅 干涉区

安全墙是什么 文章目录 安全墙是什么简介1. 物理安全墙1.1 定义&#xff1a;1.2 作用机制&#xff1a;1.3 应用场景&#xff1a; 2. 虚拟安全墙2.2 定义&#xff1a;2.3 作用机制&#xff1a;2.3 应用场景&#xff1a; 3. 安全毛毯3.1 工作原理&#xff1a;3.2 特点3.3 应用场景…

光谱范围与颜色感知的关系

光谱范围与颜色感知是光学、生理学及技术应用交叉的核心课题&#xff0c;两者通过波长分布、人眼响应及技术处理共同决定人类对色彩的认知。以下是其关系的系统解析&#xff1a; ‌1.基础原理&#xff1a;光谱范围与可见光‌ ‌光谱范围定义‌&#xff1a; 电磁波谱中能被特定…

如何让DeepSeek-R1在内网稳定运行并实现随时随地远程在线调用

前言&#xff1a;最近&#xff0c;国产AI圈里的新星——Deepseek&#xff0c;简直是火到不行。但是&#xff0c;你是不是已经对那些千篇一律的手机APP和网页版体验感到腻味了&#xff1f;别急&#xff0c;今天就带你解锁一个超炫的操作&#xff1a;在你的Windows电脑上本地部署…

leetcode33.搜索旋转排序数组

思路源于 【小白都能听懂的算法课】【力扣】【Leetcode33】搜索旋转排序数组 | 二分查找 | 数组 主要是数组旋转后分为左右两个升序区间 &#xff0c;如果mid落在左区间并且目标大小也在left-mid中&#xff0c;那么right右缩 class Solution {public int search(int[] nums, i…

YOLO历代发展 图像增强方式 架构

YOLO1 YOLOV5 数据增强 mosaic 仿射变换(Affine)、透视变换(Perspective) 网络搭建

NX二次开发刻字功能——布尔运算

刻字功能在经历、创建文本、拉伸功能以后就剩下布尔运算了。布尔运算的目的就是实现文本时凸还是凹。这部分内容很简单。 1、首先识别布尔运算的类型&#xff0c;我这里用到一个枚举类型的选项&#xff0c;凸就是布尔求和&#xff0c;凹就是布尔求差。 2、其放置位置为创建拉伸…

Python贝叶斯分层模型专题|对环境健康、医学心梗患者、体育赛事数据空间异质性实证分析合集|附数据代码

全文链接&#xff1a;https://tecdat.cn/?p41267 在大数据时代&#xff0c;多水平数据结构广泛存在于环境健康、医学研究和体育赛事等领域。本专题合集聚焦贝叶斯分层模型&#xff08;Hierarchical Bayesian Model&#xff09;的创新应用&#xff0c;通过氡气污染数据与 季后…

基于 Qt / HTTP/JSON 的智能天气预报系统测试报告

目录 一、项目概述 1.1项目背景 1.2项目目标 二、功能需求 2.1 用户界面功能 2.2 后台功能 三、技术选择 3.1 开发框架与工具 3.2 第三方 API 四、UI设计 4.1界面展示 4.2stylesheet样式 五、代码实现 1.构造函数 2.网络请求响应处理函数 3.处理json数据 4.更新…