还在为没机器练手搭集群而苦恼?快进来免费领机器了!

news2024/11/17 14:33:09

前几天,在我们的技术交流群里看到有小伙伴问:有没有练手搭建Redis集群的方式推荐:

这里不禁让我想到,对于各种集群和分布式基础设施的搭建,其实是每个开发者进阶时候都要经历的一个成长过程。但是,这里对于不少开发者来说,却又面临着一个现实问题:我没有足够的资源(主机或配置)去尝试和练习

最近,DD刚好看到阿里云有个可以免费领机器的活动,还挺适合正在学习这方面技术内容的小伙伴来领取做练手资源的。

如何领取

这个免费领机器的机会,其实是阿里云ECS面向学生和个人开发者的免费试用活动。它的规则是每个月提供280元的抵扣额度(实例部分200元,公网流量80元),在此额度内,可在5个地域试用1-4台

划重点!!!这次的免费试用跟以前不一样了,是可以领多台的!

所以,我们只需要在免费额度之内,选择尽可能多的机器,就能满足我们练习搭建各种集群的需求了。

领取入口:https://click.aliyun.com/m/1000380445/

进入免费试用页面之后,按如图操作:

当然了,如果你不是想要搭建集群练手的话,也可以选择其他配置,只要符合控制每个月ECS的费用在200元、公网费用80元以内,就可以免费使用。

另外,这里告诉大家一个小秘籍:那就是不用的时候开启停机模式!!!能省则省,榨干每一分额度 ^_^

练手推荐

如果您还是学生,或者平时参与的项目架构没那么复杂,不知道现阶段有哪些东西可以去学习,或者不知道应该按什么顺序去练手。那么,DD这里给大家一些建议,您可以跟着我下面的思路来尝试一下,这些内容都是后端开发推荐掌握的必备技能。

下面推荐的内容,我将以一个应用演进式发展的角度,来给大家梳理要学习的内容顺序,也让大家了解到每个技术的基本应用场景和引入时机。大家可以根据自己的情况选择性的去选择内容练手。

从0到1阶段

通常来说,从0到1阶段,作为一个初创应用,没有什么处理上的压力,所以往往架构是非常简单的。一台服务器 + 一台数据库,基本就搞定了。如果你从来没有过这个体验,那么可以尝试一下下面的部署架构:

  • 一台机器搭建Nginx
  • 两台台机器部署应用(双实例)
  • 一台机器部署数据库。

这里一个关键点在于Nginx的负载均衡配置,实现一个基础且有一定高可用雏形的部署架构。得益于两台服务器部署应用,又有Nginx做负载均衡,还能实现滚动发布,上线升级不影响用户使用。

从1到100阶段

如果发展顺利,用户增长还不错,那么你们在做的产品需要进一波推广了。此时往往会碰到两个问题:

一个是应用服务器的负载增大,需要扩容应对更多请求。这个可以通过增加应用部署,配合Nginx负载均衡来扩容,如果你没有像从0到1阶段的那种结构来部署的话,这个时候这一步就一定要补上了。

其次,影响性能处理最大的瓶颈大概率出现在数据库。所以,很多时候,我们将在这个阶段引入数据库的一些高级用法,比如:

  • 一主多从集群:通过一主多从结构,实现读写分离,用更多的机器来分摊数据库的负载。
  • 多主多从集群:通过多主多从结构,将业务数据分库处理。配合一些分库框架和中间件,实现更大量级的数据存储需求。

从100到10000阶段

随着业务的继续加速发展,数据访问层面的压力会越来越大。这个时候,我们往往都会开始引入缓存系统,来加速用户请求的响应。减少热点数据频繁的访问数据库,减少数据库的负载。所以,这个时候Redis往往就要登场了。缓存作为一个重要中间件,在上线的时候集群化部署肯定是需要的,所以下面这些,也建议大家可以尝试一下:

  • 主从模式:主从模式是Redis三种集群模式中最简单的,在主从复制中,数据库分为两类:主数据库(master)和从数据库(slave)。其中,主从复制有如下特点:
    • 主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库;
    • 从数据库一般是只读的,并且接收主数据库同步过来的数据;
    • 一个master可以拥有多个slave,但是一个slave只能对应一个master;
    • slave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来;
    • master挂了以后,不影响slave的读,但redis不再提供写服务,master重启后redis将重新对外提供写服务;
    • master挂了以后,不会在slave节点中重新选一个master;
  • 哨兵模式:主从模式的弊端就是不具备高可用性,当master挂掉以后,Redis将不能再对外提供写入操作,因此sentinel模式应运而生。sentinel中文含义为哨兵,顾名思义,它的作用就是监控redis集群的运行状况,此模式具有如下一些特点:
    • sentinel模式是建立在主从模式的基础上,如果只有一个Redis节点,sentinel就没有任何意义;
    • 当master挂了以后,sentinel会在slave中选择一个做为master,并修改它们的配置文件,其他slave的配置文件也会被修改,比如slaveof属性会指向新的master;
    • 当master重新启动后,它将不再是master,而是做为slave接收新的master的同步数据;
    • sentinel因为也是一个进程,所以有挂掉的可能,所以sentinel也会启动多个形成一个sentinel集群;
    • 多sentinel配置的时候,sentinel之间也会自动监控;
    • 当主从模式配置密码时,sentinel也会同步将配置信息修改到配置文件中;
    • 一个sentinel或sentinel集群可以管理多个主从Redis,多个sentinel也可以监控同一个redis;
    • sentinel最好不要和Redis部署在同一台机器,不然Redis的服务器挂了以后,sentinel也可能会挂掉。
  • 集群模式:Redis的哨兵模式基本已经可以实现高可用,读写分离 ,但是在这种模式下每台 Redis 服务器都存储相同的数据,很浪费内存,所以在 redis3.0上加入了Cluster 集群模式,实现了 Redis 的分布式存储,也就是说每台 Redis 节点上存储不同的内容。下面是Cluster 集群模式的一些特点:
    • Sentinel模式基本可以满足一般生产的需求,具备高可用性。但是当数据量过大到一台服务器存放不下的情况时,主从模式或sentinel模式就不能满足需求了,这个时候需要对存储的数据进行分片,将数据存储到多个Redis实例中。cluster模式的出现就是为了解决单机Redis容量有限的问题,将Redis的数据根据一定的规则分配到多台机器。
    • Cluster可以说是sentinel+主从模式的结合体,通过cluster可以实现主从和master重选功能,所以如果配置两个副本三个分片的话,就需要六个Redis实例。因为Redis的数据是根据一定规则分配到cluster的不同机器的,当数据量过大时,可以新增机器进行扩容。
    • 使用集群,只需要将redis配置文件中的cluster-enable配置打开即可,每个集群中至少需要三个主数据库才能正常运行,新增节点非常方便。

野蛮发展阶段

接下来,如果业务发展一切顺利。这个时候,数据越来越多,业务需求也越来越多,参与的开发人员也越来越多。这个时候,上面的架构已经很难满足各类需求的快速迭代。于是又将引入各种有用的东西。所以,下面的东西也一样推荐掌握。

数据异构

现在的数据库世界,是一个百花齐放的阶段。没有一个数据库可以完美的解决所有问题,所以随着业务的发展,我们往往都需要引入各种不同的数据库来解决不同的业务需求。比如:引入Elasticsearch来解决搜索,引入InfluxDB解决时序类的统计等等。所以,对这方面感兴趣的话,可以尝试一下:

  • MongoDB集群搭建
  • Elasticsearch集群搭建

基础设施

随着团队的壮大,服务和系统越来越多。运维压力就会很大,所以一些分布式、微服务治理的工具也都可以引入来简化开发和运维。对这方面感兴趣的读者,也可以玩一下下面的搭建:

  • Nacos集群搭建
  • Consul集群搭建
  • K8S集群搭建

随着服务和系统的增多,它们之间的通信有不少场景是不需要同步实现的。很多时候,系统间通过异步来实现会更加可靠。所以,消息中间件的引入也是必须的。目前最常用的有下面这些,如果您没有练过手,也是非常推荐要掌握一下的:

  • RabbitMQ集群搭建
  • Kafka集群搭建
  • RocketMQ集群搭建

上面DD主要介绍了一些我接触过的比较常用的内容。特定的业务还会有很多技术组件引入,如果上面没有包含的话,您也可以前往阿里云开发者社区搜索文章来尝试练手。如果您有什么集群搭建的内容推荐,也欢迎留言区补充~

欢迎关注我的公众号:程序猿DD。前沿技术早知道,弯道超车有希望!积累超车资本,从关注DD开始!

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

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

相关文章

数据结构与算法—时间复杂度和空间复杂度

目录 1. 什么是数据结构? 2.什么是算法? 3、算法的复杂度 4、时间复杂度 (1) 时间复杂度的概念: (2) 大O的渐进表示法: 六个例题: (3) 时间复杂度对比: 两个例题: OJ题分析时间复杂度…

一次HTTP请求流量分析详解(很详细一看就懂)

为什么要研究一个请求需要多少流量? 某天,办公室WIFI挂了,然后就开启热点用了一天,手机流量直接耗光50多个G。 后来排查发现有个任务每分钟成百上千个请求,所以才开始想到研究一下每个请求到底消耗了多少流量。以便在今…

orangepi 香橙派-实时时钟模块使用DS1307/DS3231/PCF8563

香橙派断电后,不带电池,所以时间也没法保持,需要增加模块进行时间处理 支持三种模块 DS1307/DS3231/PCF8563 在某宝上面可以买到 例子 I2cConnectionSettings settings new I2cConnectionSettings(1, Ds1307.DefaultI2cAddress); I2cDevi…

Java每日笔试题错题分析(2)

Java每日笔试题错题分析(2) 一、错题知识点前瞻第31题第24题第29题第10题 二、错题展示及其解析第31题第24题第29题第10题 一、错题知识点前瞻 第31题 三目运算符类型转换 在三目运算符java开发的环境下可以简单理解为双目运算符的类型转换问题&#xf…

基于YOLOv5、YOLOv8的烟雾报警检测(超实用项目)

目录 1.简介 2.YOLO算法 3.基于YOLOv5、YOLOv8的烟雾检测报警系统 3.1gui界面主代码 3.2YOLOv5主代码 视频已上传b站 YOLOv5、YOLOv8检测-烟雾检测报警系统_哔哩哔哩_bilibili 本文为系列专栏,包括各种YOLO检测算法项目、追踪算法项目、双目视觉、深度结构…

idea提示:无法下载源代码,找不到此对象的源代码

最近在入门消息队列,在项目里新引入了一个RabbitMQ的依赖,新建完Channel对象之后,调用该对象的方法queueDeclare想创建队列,结果发现方法里的参数都没有提示。遂点进去看,卧槽,源码下载不下来,这…

系统打印服务已关闭,竟然是它的问题!

故障现象: 一台电脑不能打印文件,一点打印就弹出对话框提示打印服务已关闭。手动开启打印服务后,大约不到1分钟打印服务又自动关闭了。 故障检修: 电脑重新启动后再次重启打印服务,打印服务依然还是会自动关闭。估计是…

【C刷题】day4

一、选择题 1、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( ) A: n0;while(chgetchar()!\n)n; B: n0;while(getchar()!\n)n; C: for(n0;getchar()!\n…

加密市场波动:地缘政治与美股走弱引发不确定性!

伴随着国庆假期的结束,多日波动率维持低位的加密市场也似乎开始苏醒。近期多次突破28000美元未果的比特币,于9日15:00开始从27800美元附近下跌,最低跌至27260美元,同期以太坊也至1550美元左右,创近半个月来新低。 Coin…

JVM 虚拟机面试知识脑图 初高级

导图下载地址 https://mm.edrawsoft.cn/mobile-share/index.html?uuid3f88d904374599-src&share_type1 类加载器 双亲委派模型 当一个类收到类加载请求,它首先把类加载请求交给父类(如果还有父类,继续往上递交请求).如果父类无法加载该类,再交给子类加载 防止内存中出现…

[LeetCode]链式二叉树相关题目(c语言实现)

文章目录 LeetCode965. 单值二叉树LeetCode100. 相同的树LeetCode101. 对称二叉树LeetCode144. 二叉树的前序遍历LeetCode94. 二叉树的中序遍历LeetCode145. 二叉树的后序遍历LeetCode572. 另一棵树的子树 LeetCode965. 单值二叉树 题目 Oj链接 思路 一棵树的所有值都是一个…

mysql面试题33:Blob和text有什么区别

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Blob和text有什么区别 Blob和text是数据库中存储大文本数据的两种数据类型&#…

都2023年了,你必须知道的几款主流性能测试工具!

市面上流行的压力/负载/性能测试工具多是来自国外,近年来国内的性能测试工具也如雨后春笋崛起。同时由于开发的目的和侧重点不同,其功能也有很大差异,下面就为您简单介绍10款目前最常见的测试产品。 1、kylinTOP测试与监控平台(商…

Transformer为什么如此有效 | 通用建模能力,并行

目录 1 更强更通用的建模能力 2 并行计算 3 大规模训练数据 4 多训练技巧的集成 Transformer是一种基于自注意力机制的网络,在最近一两年年可谓是大放异彩,我23年入坑CV的时候,我看到的CV工作似乎还没有一个不用到Transformer里的一些组…

毕业设计项目选题Java高考志愿咨询平台 高考志愿填报助手系统源码+调试+开题+lw

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

Netty 介绍

1 Netty 原理 Netty 是一个高性能、异步事件驱动的 NIO 框架,基于 JAVA NIO 提供的 API 实现。它提供了对TCP、UDP 和文件传输的支持,作为一个异步 NIO 框架,Netty 的所有 IO 操作都是异步非阻塞的,通过 Future-Listener 机制&…

jQuery 模版

一、安装 <script type"text/javascript" src"http://ajax.microsoft.com/ajax/jquery /jquery-1.4.min.js"></script> 二、元素隐藏/显示 &#xff0c;jQuery toggle() 通过 jQuery&#xff0c;可以使用 toggle() 方法来切换 hide() 和 sh…

关于系统/网络运维面试经验总结

一. 熟悉Linux命令 1. 最最最常问到的是 如何查看系统内存占用情况&#xff1f; ① free命令&#xff1a;free [-h][-m] 显示系统的内存使用情况&#xff0c;包括总内存、已使用内存、空闲内存等信息。其中&#xff0c;-m选项是以MB为单位来展示内存使用信息&#xff1b;-h选…

一些常见的测度

见 知乎 https://zhuanlan.zhihu.com/p/615270645

Linux添加新硬盘并挂载(mount)到目录下

首先列出文件系统的整体磁盘空间使用情况&#xff0c;可以用来查看磁盘已被使用多少空间和还剩余多少空间。 df -h 然后列出块设备信息&#xff1a;以树形展示你的磁盘以及磁盘分区信息 lsblk 现在有一块 3T 的磁盘 vdb&#xff0c;我们现在将它进行 磁盘分区 fdisk /dev/vd…