浅谈云原生基础入坑与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 根据配置文件采取适当的操作以满足要求。
三、云原生
什么是云原生:
从它的名字中来看,云原生就是将我们的原生代码生产的应用程序在云端开发部署运行,利用容器化的高扩展性,便捷性等等优势。