当前位置: 首页 > news >正文

iis7 部署网站做网站怎样备案

iis7 部署网站,做网站怎样备案,114网站制作,中山网站推广优化前言 各位伙伴们#xff0c;大家好#xff01;由于篇幅较长#xff0c;所以笔者将采用多篇Blog发布的形式来方便大家阅读#xff0c;整篇Blog全程干货满满#xff0c;给大家带来不便敬请谅解#xff01; 最后附上前篇Blog链接#xff1a;Redis进阶之持久化机制及主从复制… 前言 各位伙伴们大家好由于篇幅较长所以笔者将采用多篇Blog发布的形式来方便大家阅读整篇Blog全程干货满满给大家带来不便敬请谅解 最后附上前篇Blog链接Redis进阶之持久化机制及主从复制干货满满如有需要的小伙伴可点击查看哦~ Redis 1 Redis Cluster集群 1.1 问题 容量不够redis如何进行扩容 并发写操作 redis如何分摊 另外主从模式薪火相传模式主机宕机导致ip地址发生变化应用程序中配置需要修改对应的主机地址、端口等信息。 之前通过代理主机来解决但是redis3.0中提供了解决方案。就是无中心化集群配置。 1.2 什么是集群 Redis 集群实现了对Redis的水平扩容即启动N个redis节点将整个数据库分布存储在这N个节点中每个节点存储总数据的1/N。 Redis 集群通过分区partition来提供一定程度的可用性availability 即使集群中有一部分节点失效或者无法进行通讯 集群也可以继续处理命令请求。 1.3 删除持久化数据 将rdb,aof文件都删除掉。 1.4 制作6个实例6379,6380,6381,6389,6390,6391 1.4.1 配置基本信息 开启daemonize yes Pid文件名字 指定端口 Log文件名字 Dump.rdb名字 Appendonly 关掉或者换名字 1.4.2 redis cluster配置修改 cluster-enabled yes 打开集群模式 cluster-config-file nodes-6379.conf 设定节点配置文件名 cluster-node-timeout 15000 设定节点失联时间超过该时间毫秒集群自动进行主从切换。 include /usr/myredis/redis.conf pidfile /var/run/redis_6379.pid port 6379 dbfilename dump6379.rdb cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 150001.4.3 修改好redis6379.conf文件拷贝多个redis.conf文件 使用查找替换修改另外5个文件 例如:%s/6379/6380 启动6个redis服务 redis-server /usr/myredis/redis6379.conf redis-server /usr/myredis/redis6380.conf redis-server /usr/myredis/redis6381.conf redis-server /usr/myredis/redis6389.conf redis-server /usr/myredis/redis6390.conf redis-server /usr/myredis/redis6391.conf1.4.4 将六个节点合成一个集群 合体 cd /usr/software/redis-6.2.1/src redis-cli --cluster create --cluster-replicas 1 192.168.136.172:6379 192.168.136.172:6380 192.168.136.172:6381 192.168.136.172:6389 192.168.136.172:6390 192.168.136.172:6391此处不要用127.0.0.1 请用真实IP地址 –replicas 1 采用最简单的方式配置集群一台主机一台从机正好三组。 普通方式登录 1、可能直接进入读主机存储数据时会出现MOVED重定向操作。所以应该以集群方式登录。 2、-c 采用集群策略连接设置数据会自动切换到相应的写主机 ​ redis-cli -c -p 6379 3、通过 cluster nodes 命令查看集群信息 批量关闭服务 ps -ef | grep redis | grep -v grep |cut -c 9-15|xargs kill -9 ps -ef | grep redis | cut -c 9-15 | xargs kill -91.4.5 redis cluster 如何分配这六个节点? 一个集群至少要有三个主节点。 选项 --cluster-replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。 分配原则尽量保证每个主数据库运行在不同的IP地址每个从库和主库不在一个IP地址上。 1.5 什么是slots [OK] All nodes agree about slots configuration. Check for open slots... Check slots coverage...[OK] All 16384 slots covered.一个 Redis 集群包含 16384 个插槽hash slot 数据库中的每个键都属于这 16384 个插槽的其中一个 集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽 其中 CRC16(key) 语句用于计算键 key 的 CRC16 校验和 。 集群中的每个节点负责处理一部分插槽。 举个例子 如果一个集群有多个主节点 其中 节点 A 负责处理 0 号至 5460 号插槽。 节点 B 负责处理 5461 号至 10922 号插槽。 节点 C 负责处理 10923 号至 16383 号插槽。 1.6 在集群中录入值 在redis-cli每次录入、查询键值redis都会计算出该key应该送往的插槽如果不是该客户端对应服务器的插槽redis会报错并告知应前往的redis实例地址和端口。 redis-cli客户端提供了 –c 参数实现自动重定向。 如 redis-cli -c –p 6379 登入后再录入、查询键值对可以自动重定向。 不在一个slot下的键值是不能使用mget,mset等多键操作。 可以通过{}来定义组的概念从而使key中{}内相同内容的键值对放到一个slot中去。 1.7 查询集群中的值 cluster keyslot 指定key 槽slot cluster countkeysinslot 指定slot槽中键的个数 CLUSTER GETKEYSINSLOT 返回 count 个 slot 槽中的键。 1.8 故障恢复 1、如果主节点下线从节点能否自动升为主节点注意15秒超时 2、主节点恢复后主从关系会如何主节点回来变成从机。 3、如果所有某一段插槽的主从节点都宕掉redis服务是否还能继续? ​ 如果某一段插槽的主从都挂掉而cluster-require-full-coverage 为yes 那么 整个集群都挂掉 ​ 如果某一段插槽的主从都挂掉而cluster-require-full-coverage 为no 那么该插槽数据全都不能使用也无 法存储。 redis.conf中的参数 cluster-require-full-coverage 1.9 添加节点 1.9.1 准备新节点 添加新的redis服务6392和6393 并启动新节点 1.9.2 添加主节点 命令 redis-cli --cluster add-node new_host:new_port existing_host:existing_port --cluster-master-id node_id* new_host:new_port新添加的主节点IP和端口 * existing_host:existing_port最后一个主节点的 IP 和端口。16383 表示的是最后的槽数 * --cluster-master-id最后一个主节点的节点 ID。表示的是新添加的主节点要在这个节点后面添加节点 redis-cli --cluster add-node 192.168.136.172:6392 192.168.136.172:6389 --cluster-master-id 74d466622c60f66710da4c3d1cc1e2a0d478add3查看节点情况添加节点成功 但没有分配槽数 1.9.3 分配槽数 添加完新节点后需要对新添加的主节点进行 hash 槽重新分配这样该主节点才能存储数据Redis 共有16384个槽。 redis-cli --cluster reshard host:port --cluster-from node_id --cluster-to node_id --cluster-slots args --cluster-yes* host:port集群中随便一个节点的IP:PORT用于连接集群。 * --cluster-from node_id表示的是从哪个节点取出槽节点 ID * --cluster-to node_id表示的是取出的槽添加给哪个节点也就是新添加的那个主节点 ID * --cluster-slots 2000表示的是给新主节点分配多少。 * --cluster-yes不用再次确认分槽信息直接移动。分配前 分配后 redis-cli --cluster reshard 192.168.136.172:6379 --cluster-from 271edc34349164d7f8404b5211c8e374a2344e0d --cluster-to abd6ba38d0b05182f8a1044552c34a3a047a298f --cluster-slots 2000redis-cli --cluster reshard 192.168.136.172:6379 --cluster-from 271edc34349164d7f8404b5211c8e374a2344e0d --cluster-to abd6ba38d0b05182f8a1044552c34a3a047a298f --cluster-slots 1000 --cluster-yes1.9.4 添加从节点 使用以下命令添加从节点 redis-cli --cluster add-node new_host:new_port existing_host:existing_port --cluster-slave --cluster-master-id node_id* new_host:new_port要添加从节点的IP和端口 * existing_host:existing_port所属主节点的IP和端口 * --cluster-slave添加从节点 * --cluster-master-id node_id主节点IDredis-cli --cluster add-node 192.168.136.172:6393 192.168.136.172:6392 --cluster-slave --cluster-master-id abd6ba38d0b05182f8a1044552c34a3a047a298f查看添加结果 1.10 集群的Jedis开发 即使连接的不是主机集群会自动切换主机存储。主机写从机读。 无中心化主从集群。无论从哪台主机写的数据其他主机上都能读到数据。 1.11 Redis 集群提供了以下好处 实现扩容 分摊压力 无中心配置相对简单 1.12 Redis 集群的不足 由于集群方案出现较晚很多公司已经采用了其他的集群方案而代理或者客户端分片的方案想要迁移至redis cluster需要整体迁移而不是逐步过渡复杂度较大。 2 Redis应用问题解决 ① 缓存穿透大量请求根本不存在的key ② 缓存雪崩redis中大量key集体过期 ③ 缓存击穿redis中一个热点key过期大量用户访问该热点key但是热点key过期 2.1 缓存穿透 获取的key不存在此时又有大量请求这个key 2.1.1 问题描述 key对应的数据在数据源种并不存在每次针对此key的请求从缓存获取不到请求都会压到数据源从而可能压垮数据源。比如用一个不存在的用户id获取用户信息不论缓存还是数据库都没有若黑客利用此漏洞进行攻击可能压垮数据库。 2.1.2 问题排查 Redis中大面积出现未命中出现非正常URL访问 2.1.3 问题分析 获取的数据在数据库中也不存在数据库查询未得到对应数据Redis获取到null数据未进行持久化直接返回下次此类数据到达重复上述过程出现黑客攻击服务器 2.1.4 解决方案 一个一定不存在缓存及查询不到的数据由于缓存是不命中时被动写的并且出于容错考虑如果从存储层查不到数据则不写入缓存这将导致这个不存在的数据每次请求都要到存储层去查询失去了缓存的意义。 解决方案 缓存null 对查询结果为null的数据进行缓存长期使用定期清理设定短时限例如30-60秒最高5分钟 白名单策略 提前预热提前加载当加载正常数据时放行加载异常数据时直接拦截效率偏低使用布隆过滤器有关布隆过滤器的命中问题对当前状况可以忽略 实施监控 实时监控redis命中率业务正常范围时通常会有一个波动值与null数据的占比 非活动时段波动通常检测3-5倍超过5倍纳入重点排查对象活动时段波动通常检测10-50倍超过50倍纳入重点排查对象 根据倍数不同启动不同的排查流程。然后使用黑名单进行防控运营 key加密 问题出现后临时启动防灾业务key对key进行业务层传输加密服务设定校验程序过来的key校验 例如每天随机分配60个加密串挑选2到3个混淆到页面数据id中发现访问key不满足规则驳回数据访问 2.2 缓存击穿 2.2.1 问题描述 key对应的数据存在但在redis中过期此时若有大量并发请求过来这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存这个时候大并发的请求可能会瞬间把后端DB压垮。 2.2.2 问题排查 Redis中某个key过期该key访问量巨大多个数据请求从服务器直接压到Redis后均未命中Redis在短时间内发起了大量对数据库中同一数据的访问 2.2.3 问题分析 单个key高热数据key过期 2.2.4 解决方案 key可能会在某些时间点被超高并发地访问是一种非常“热点”的数据。这个时候需要考虑一个问题缓存被“击穿”的问题。 解决问题 当某一个请求去数据库查询的时候同时在redis中将值设为null待他从数据库查到数据返回后设置具体的值预先设定 以电商为例每个商家根据店铺等级指定若干款主打商品在购物节期间加大此类信息key的过期时长 注意购物节不仅仅指当天以及后续若干天访问峰值呈现逐渐降低的趋势现场调整 监控访问量对自然流量激增的数据延长过期时间或设置为永久性key后台刷新数据 启动定时任务高峰期来临之前刷新数据有效期确保不丢失二级缓存 设置不同的失效时间保障不会被同时淘汰就行加锁 分布式锁防止被击穿但是要注意也是性能瓶颈慎重 2.3 缓存雪崩 2.3.1 问题描述 key对应的数据存在但在redis中过期此时若有大量并发请求过来这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存这个时候大并发的请求可能会瞬间把后端DB压垮。 缓存雪崩与缓存击穿的区别在于这里针对很多key缓存缓存击穿则是某一个key 2.3.2 问题排查 在一个较短的时间内缓存中较多的key集中过期 此周期内请求访问过期的数据redis未命中redis向数据库获取数据 数据库同时接收到大量的请求无法及时处理 Redis大量请求被积压开始出现超时现象 数据库流量激增数据库崩溃 重启后仍然面对缓存中无数据可用 Redis服务器资源被严重占用Redis服务器崩溃 Redis集群呈现崩塌集群瓦解 应用服务器无法及时得到数据响应请求来自客户端的请求数 越来越多应用服务器崩溃 应用服务器redis数据库全部重启效果不理想 2.3.3 问题分析 短时间范围内大量key集中过期 2.3.4 解决方案 解决方案 缓存失效时的雪崩效应对底层系统的冲击非常可怕 解决方案 1 构建多级缓存架构nginx缓存 redis缓存 其他缓存ehcache、memcache等 2 使用锁或队列 用加锁或者队列的方式保证来保证不会有大量的线程对数据库一次性进行读写从而避免失效时大量的并发请求落到底层存储系统上。不适用高并发情况 3 设置过期标志更新缓存 记录缓存数据是否过期设置提前量如果过期会触发通知另外的线程在后台去更新实际key的缓存。 4 将缓存失效时间分散开 比如我们可以在原有的失效时间基础上增加一个随机值比如1-5分钟随机这样每一个缓存的过期时间的重复率就会降低就很难引发集体失效的事件。 后记 好啦以上就是本期全部内容能看到这里的人呀都是能人。 十年修得同船渡大家一起点关注。 我是♚焕蓝·未来感谢各位【能人】的点赞、收藏和评论我们下期见 各位能人们的支持就是♚焕蓝·未来前进的巨大动力~ 注如果本篇Blog有任何错误和建议欢迎能人们留言
http://www.hkea.cn/news/14302238/

相关文章:

  • 网页设计与制作教程清华大学出版社移动优化课主讲:夫唯老师
  • 企业网站推广名词解释做网站被网警找
  • 服装网站建设基本流程wordpress用什么系统
  • 重庆网站建设seo公司哪家好陕西最新消息今天
  • 网站备案多长时间来完成网站优化排名易下拉效率
  • 搭建网站需要什么技术建筑贴图素材网站
  • 哪里做百度网站方案设计评分标准
  • 襄城县住房和城市建设局网站外贸网站平台排名
  • 北京 网站定制开发创客贴网页设计网站
  • 电商网站建设与运维需要的软件做网站用的符号
  • 免费网站制作器微信小店
  • 望城区网站建设海外 酒店 网站建设
  • 怎么做原创动漫视频网站ps网站导航怎么做
  • 现在网站建站的主流语言是什么智威汤逊广告公司
  • 优享购物官方网站做网站一般多少
  • 九度互联网站制作效果游戏公司网页设计
  • access数据库网站开发博客个人目录wordpress
  • 手机网站打开自动wap软件培训内容怎么写
  • 2021年建站赚钱外贸soho做网站
  • 谷歌seo 外贸建站网站策划是干嘛的
  • 流量联盟网站源码互联网广告平台有哪些
  • 网站建设好了怎么进行推广深圳网站建设 推荐xtdseo
  • 学校网站管理与建设办法seo优化网站查询
  • 算命网站该怎样做设计说明怎么写模板
  • 官网建设企业关键词排名优化公司外包
  • 招生网站建设策划方案南阳高端网站建设
  • 甘肃省工程建设信息官方网站wordpress框架视频
  • 专门做奢侈品的网站有哪些北京公司网站建设推荐
  • 网站设置多少个关键词wordpress添加购买按钮
  • 亚马逊官方网站怎么做昆明网站建设方案托管