集群化网站开发笔记:项目配置与开发方案选型

目录

一 项目背景

二 项目预期场景

何时要用集群?

预期的效果 

三 技术方案选型

Docker+Traefik:最方便的部署+最火的云原生网关

Nginx+PHP+MySQL:这个方案比较稳妥中庸,相关人才比较多

APISIX:它是咱们社区开发维护的基于云原生的微服务API网关

四 具体使用浅析

五 综述

参考资料


一 项目背景

为了对集群化开发有更深的认识与掌握,故拟调研一套目前适用于2022年的比较新方案出来。

二 项目预期场景

何时要用集群?

  • 单台服务器无法承受压力。
  • 需要实现发生错误时候,自动切换
  • 学习或者测试分布式技术

预期的效果 

 一、提供多个对外的接口,按照一定规则,分派不同请求由不同接口来处理。

  • 目标是实现负载均衡
    • 在哪个层次实现转移负载
    • 负载的均衡如何实现
  • 目标是实现故障转移
    • 如何监控故障
    • 如何切换服务

二、把一个功能拆分成多个功能,不同功能分布部署到不同服务器上

  • 对外功能的拆分 
  • n层架构,其中的一些层分布到不同服务器上,如WEB + DB 模式

三 技术方案选型

Docker+Traefik:最方便的部署+最火的云原生网关

  • ✅方便快捷
  • ✅兼容性比较好

Docker:大家都比较熟悉,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Traefik:Traefik (发音和 traffic 相同,采用 Golang 编写)是一个云原生的新型的 HTTP 反向代理、负载均衡软件。它负责接收系统的请求,然后使用合适的组件来对这些请求进行处理。Traefik 兼容所有主流的集群技术,比如 Kubernetes,Docker,Docker Swarm,AWS,Mesos,Marathon,等等;并且可以同时处理多种方式。(甚至可以用于在裸机上运行的比较旧的软件。)

官网地址:https://docs.traefik.io/。代码托管地址:https://github.com/containous/traefik,截止目前 Star 数为 28.5k。

Nginx+PHP+MySQL:这个方案比较稳妥中庸,相关人才比较多

  • ✅稳妥,教程多
  • ✅风险小

Nginx: Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engineX”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.

APISIX:它是咱们社区开发维护的基于云原生的微服务API网关

  • ✅基于 NGINX ,技术栈前后统一,后期灰度升级、安全、稳定性等有保障;
  • ✅内置统一控制面,多台代理服务统一管理;
  • ✅动态 API 调用,即可完成常见资源的修改实时生效,相比传统 NGINX 配置 + reload 方式进步明显;
  • ✅路由选项丰富,满足路由需求;
  • ✅较好扩展性,支持 Consul kv 难度不大;
  • ✅性能表现也不错。

APISIX:Apisix是一个云原生、高性能、可扩展的微服务 API 开源网关,基于OpenResty(Nginx+Lua)和etcd来实现,对比传统的API网关,具有动态路由和热插件加载的特点。系统本身自带前端,可以手动配置路由、负载均衡、限速限流、身份验证等插件,操作方便。APISIX是用Lua语言开发,语言相对简单,容易上手,同时可以按自己的需求进行系统的二次开发以及开发自己的插件

四 具体使用浅析

Treafik:

  1. 使用traefik:v2.2.0 作为镜像启动 traefik 服务
  2. 新建 traefik-v2.2.0.yaml 配置文件
  3. 使用 docker-compose 命令开启 Traefik 服务
  4. 挂载调整配置文件,使用docker-compose 启动 http 服务,进入Dashboard

 Nginx:

  1. 安装Nginx基础依赖包 pcre zlib openssl
  2. 下载软件包,创建Nginx运行用户
  3. 进行配置文件的修改,重新加载

 Apisix:

  1. 安装依赖;安装 OpenResty, etcd 和一些依赖工具‘启动 etcd 服务端
  2. 关闭防火墙;关闭selinux
  3. 安装并启动apisix
  4. 安装Dashboard控制台页面

五 综述

不管遇到什么场景,使用什么网关和技术,对不同技术的基础概念和其适用的背景,都是需要提前仔细研究后,学习后才能较好完成的。

参考资料

Treafik主页:Traefik Labs:让网络变得简单
Treafik文档:Traefik Proxy Documentation - Traefik
Traefik教程:原创 | 科普一个 Star 数为 28.5k 的云原生网关_云原生网关
APISIX主页:Getting started | Apache APISIX® -- Cloud-Native API Gateway
APISIX Dashboard文档:User Guide | Apache APISIX® -- Cloud-Native API Gateway

APISIX 使用案例:基于Apache APISIX,新浪微博API网关的定制化开发之路_ApacheAPISIX的博客-CSDN博客舍弃Kong和Nginx,Apache APISIX 在趣链科技 BaaS 平台的落地实践 apisix替代nginxAPISIX架构分析:如何动态管理Nginx集群?_米开朗基杨的博客-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FS9000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值