浅谈云原生基础入坑与docker 搭建redis-cluster集群

开篇来点自己的小感触:自从走上后端开发这条无法回头的互卷道路以后,在视野内可见新的技术在迭代,更新的技术在不断发行。就拿最近的OpenAI的chat-GPT来说,它具有强大的语言模型,让使用者感觉人工智能真的像人。看了很多篇文章,从一个刚刚科班入门的我来说,这条不归路是真的要硬着头皮走下去,新的技术不管它怎么更新,它也是人创造出来的,只要在不断的学习,终有一天技术能够为你而用,也能发挥自己的特长和其他的不同创造属于自己的优秀作品。从决定学习云原生那天开始,我发现很多东西回过头就会忘记,今天是入园的第一篇博客,目的为记录自己的学习过程,也希望帮助到和我一样在不断进步的你。下面我们进入正题

一、什么是集群。

​ 很简单的一个道理(一根筷子容易折断,而10双或者更多的筷子呢?是不是需要使用一些其他手段才能将其折断。),其实集群也可以这样理解,虽然说redis在业内打出了它很快的口号,但是就一台redis在面临大量的读写请求时候它会不会也存在一些问题呢,或者它不小心让服务挂掉了,哈哈哈哈...,再大的收益都会付诸东流。伴随着微服务架构的不断精进发展,对系统的运行效率要求从以前传统的单机架构更上了一个档次,最终压力给到存储的库--->redis,mysql。面对大量的请求,一台会有问题,那我来很多台,一台挂了还有一台,或者读写分离,这样就能够很好契合微服务架构。从而本人理解的集群就是有一定规约的统一管理的一组服务器。

二、容器化

​ 上面介绍了我对集群的一些见解,而这里在其基础上记录一下容器化技术。

2.1什么是容器化:

​ 容器化是一种软件部署流程,可将应用程序的代码与应用程序在任何基础设施上运行所需的所有文件和库进行捆绑。通俗来说,容器化就是不需要多台计算机,而在一台计算机你可以借助容器化技术创建很多不同环境的容器实例来满足你的开发与运行需求。

这里打个比方:就拿我们的redis集群来看,我现在需要一个三主三从的redis集群,如果没有容器化,没有虚拟机技术等等,我需要购买6台计算机,六台呀!再有钱也得为维护成本等等多方面进行考虑,再从虚拟机技术出发,我可以在一台物理机上虚拟出六台虚拟机,哎!好像不用花那么多钱了,但是又想一下,维护成本好像还是差不多的,没有那么方便。最后来到容器化技术,只需要在一台物理机上创建多个redis容器实例就好了。我一键启动,一键关闭进行统一管理这些容器,大大的降低了维护成本,方便快捷,如果我还需要多几台我可以继续再加几个容器实例就好。这个就是容器化

//这里要加图片

2.2容器化的好处:

便携性

软件开发人员使用容器化在多个环境中部署应用程序,而无需重新编写程序代码。他们只需构建一个应用程序,然后将其部署到多个操作系统上。例如,他们在 Linux 和 Windows 操作系统上运行相同的容器。开发人员还使用容器将传统应用程序代码升级到现代版本进行部署。

可扩展性

容器是可以高效运行的轻量级软件组件。例如,虚拟机可以更快地启动容器化应用程序,因其不需要引导操作系统。因此,软件开发人员可以轻松在单个计算机上为不同的应用程序添加多个容器。容器集群使用来自相同共享操作系统的计算资源,但一个容器不会干扰其他容器的运行。

容错能力

软件开发团队使用容器来构建容错应用程序。他们使用多个容器在云上运行微服务。由于容器化微服务在独立的用户空间中运行,因此单个故障容器不会影响其他容器。这提高了应用程序的弹性和可用性。

敏捷性

容器化应用程序在独立的计算环境中运行。软件开发人员可以进行故障排除并更改应用程序代码,而不会干扰操作系统、硬件或其他应用程序服务。他们可以缩短软件发布周期,并使用容器模型快速进行更新。

2.3容器技术有哪些类型?

Docker

Docker 或 Docker Engine 是一种热门的开源容器运行时,使软件开发人员能够在各种平台上构建、部署和测试容器化应用程序。Docker 容器是使用 Docker 框架创建的应用程序和相关文件的独立软件包。

Linux

Linux 是一种内置容器技术的开源操作系统。Linux 容器是独立的环境,使多个基于 Linux 的应用程序能够在单个主机上运行。软件开发人员使用 Linux 容器来部署写入或读取大量数据的应用程序。Linux 容器不会将整个操作系统复制到容器的虚拟化环境中。相反,容器由 Linux 命名空间中分配的必要功能组成。

Kubernetes

Kubernetes 是一种热门的开源容器编排工具,软件开发人员使用它来部署、扩展和管理大量微服务。Kubernetes 有一个声明式模型,可更轻松地实现容器自动化。声明式模型确保 Kubernetes 根据配置文件采取适当的操作以满足要求。

三、云原生

什么是云原生:

从它的名字中来看,云原生就是将我们的原生代码生产的应用程序在云端开发部署运行,利用容器化的高扩展性,便捷性等等优势。

四、容器化搭建redis三主三从集群(docker)

浅谈云原生基础入坑与docker 搭建redis-cluster集群的更多相关文章

  1. 【精】搭建redis cluster集群,JedisCluster带密码访问【解决当中各种坑】!

    转: [精]搭建redis cluster集群,JedisCluster带密码访问[解决当中各种坑]! 2017年05月09日 00:13:18 冉椿林博客 阅读数:18208  版权声明:本文为博主 ...

  2. 浅谈ES6原生Promise

    浅谈ES6原生Promise 转载 作者:samchowgo 链接:https://segmentfault.com/a/1190000006708151 ES6标准出炉之前,一个幽灵,回调的幽灵,游 ...

  3. 浅入Kubernetes(8):外网访问集群

    目录 查询 Service Service 外部服务类型 配置 ServiceType 伸缩数量 阶段总结 在前面几篇文章中,我们学习了 kubeadm .kubectl 的一些命令,也学会了 Dep ...

  4. 云原生生态周报 Vol. 7 | Docker 再爆 CVE

    业界要闻 Docker 基础镜像 Alpine 爆出提权漏洞(CVE-2019-5021):该CVE影响自 Alpine Linux 3.3 版本开始的所有 Docker 镜像.该漏洞的机制在于 Al ...

  5. 云原生之旅 - 2)Docker 容器化你的应用

    前言 上文中我们用Golang写了一个HTTP server,本篇文章我们讲述如何容器化这个应用,为后续部署到kubernetes 做准备. 关键词:Docker, Containerization, ...

  6. 【云原生 · Kubernetes】配置 Rancher docker 云平台

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 1.1 Rancher 概述 Rancher 是一个开源的企业级容器管理平台.通过 Ranc ...

  7. 云原生架构(二)环境搭建(Mac上安装Docker+Kubernetes+Istio一条龙)

    一.背景 Istio 项目由 Google 和 IBM 的团队与 Lyft 的 Envoy 团队合作启动.它已经完全在 GitHub 上公开开发.目前已经是"Service Mesh服务网格 ...

  8. NLP系列(1)_从破译外星人文字浅谈自然语言处理基础

    作者:龙心尘 &&寒小阳 时间:2016年1月. 出处: http://blog.csdn.net/longxinchen_ml/article/details/50543337 ht ...

  9. 浅谈百度地图API的坑

    我们可以使用百度地图生成器生成地图码(功能开发 还是使用官方文档吧) 注意百度地图坑 1.地图和我们申请的ak码版本问题 (解决方案:推荐大家使用2.0) 远程链接:<script type=& ...

  10. 浅谈App原生开发、混合开发及HTML5开发的优劣

    App混合开发(英文名:Hybrid App),是指在开发一款App产品的时候为了提高效率.节省成本即利用了原生的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用.目前App的开发 ...

随机推荐

  1. Java-ArrayList常用API

    返回值 方法 用途 boolean add(E e) 将指定的元素追加到此列表的末尾. void add(int index, E element) 在此列表中的指定位置插入指定的元素. boolea ...

  2. Javascript基础知识整理(引用类型-Array)

    Array Array是一组数据的有序列表,在ECMAScript中,数组的每一项可以是不一样的数据类型. 创建数组有两种方式 (1)使用构造函数 var colors = new Array(); ...

  3. shell语法2-默认变量、数组

    一:文件参数变量 1.在执行shell脚本时,可以向脚本传递参数.$1是第一个参数,$2是第二个参数,以此类推.特殊的,$0是文件名(包含路径) #! /bin/bashecho "文件名: ...

  4. JDBC概念和基本用法

    概念:     JDBC (Java DataBase Connectivity):Java数据库连接,Java语言操作数据库.是官方(sun公司)定义的一套操作所有关系型数据库的规则, 即接口.各个 ...

  5. noi 1.1 2 输出第二个整数

    描述 输入三个整数,把第二个输入的整数输出. 输入 只有一行,共三个整数,整数之间由一个空格分隔.整数是32位有符号整数. 输出 只有一行,一个整数,即输入的第二个整数. 样例输入 123 456 7 ...

  6. 【七侠传】冲刺阶段--Day2

    [七侠传]冲刺阶段--Day2 团队成员 20181221曾宇涛 20181202李祎铭 20181209沙桐 20181215薛胜瀚 20181216杨越麒 20181223何家豪 20181232 ...

  7. 五一训练包E-5

    题目链接:https://vjudge.net/contest/436484#problem/E 题目的大致意思就是给俩数,分别是小数组的大小N和数目K,给的数组是递增的,方便后续的判断,将大数组分成 ...

  8. yii 自定义form样式适应现成模板

    需求:想使用下边的样式但是使用yii中的表单样式会 <?= $form->field($model, 'attribute_code')->textInput()->label ...

  9. ios MJRefresh 上拉死循环刷新问题+git 图片

    网上各种办法都试了,只有这种解决方法解决了我的问题,记录一下 通过延迟 1s后,再来请求接口 - (void)viewDidLoad { [super viewDidLoad]; // Do any ...

  10. element NavMenu侧栏导航菜单(可折叠)

    展示效果如图: 代码: <el-scrollbar class="scrollbar-wrapper"> <!-- el-scrollbar超长可滚动 --> ...