PasteSpider之提问与回答(持续更新... .. .)

通过提问和回答,将是了解一个东西的好办法,特别是你对这个领域有一定基础的时候,所以本文将通过问答的形式来介绍PasteSpider,问答来自PasteSpider的开发历程,也有部分来自网友的提问,如果后续你有疑问,可以到QQ群296245685提问,也可以在本文进行评论,现整理如下:

PasteSpider是什么东东,为啥和K8S来比较?

其实PasteSpider和K8S,还是K3S也好,或者说其他的容器管理工具,在我看来不是一个维度的东西,能比较的地方也仅限与他们都可以帮你部署你的项目到服务器上!在我看来有以下几点比较明显的点:

运行方式不一样,PasteSpider作为一个工具,就真的是工具,在平时你看PasteSpider不爽了,你可以直接docker stop xxxx他,不让他运行,对于你的其他服务来说是不会有啥影响的(PasteSpider没有在运行的时候,将无法为其他容器收集运行状态的数据,这个数据用于报表,比如展示最近1个小时某一个容器的内存占用情况,流量使用情况等)!

上手容易度不一样,把PasteSpider专题的几篇文章读一下,30分钟就可以入手和使用上PasteSpider,因为他里面的思想和开发很贴近,操作上都是图文操作的。如果使用中遇到问题,那么你只要搜索相关的原生知识点就行了,比如部署那就是docker/podman,路由相关的信息那就搜索nginx。

资源消耗不一样,PasteSpider使用过程中的资源消耗是可以说很小,大概在100~300MB内,他支持一个PasteSpider服务多台服务器,也支持多个PasteSpider合并成一个集群使用。我的一台服务器1GB内存的,我也给上了PasteSpider!

如何理解PasteSpider里面的项目,服务,环境等信息

PasteSpider我觉得他更适合于开发人员使用,因为他的部署思想是遵照开发人员的思维来设计的,比如你开发了一个商城系统,有api,node,web,h5等组成,他们可以公用一个域名来进行访问,那么这就是一个完整的项目,项目下挂载了api,node,web,h5等服务(不一定要运行在容器里面的才叫服务),如果我们把这些服务看成横向的话,那么纵向的理解就是环境了,比如开发环境,正式环境,一个环境包含一整套的服务!可能在发布上我们会部署成https://test.abc.com/测试环境,而https://www.abc.com为正式环境!

开发中如何隔离开,各自开发各自的

我个人角色微服务的最大贡献就是把工作分割了,各干各的,在PasteSpider里面表现为服务,一个服务一个人开发,比如api由张三开发,node模块由李四开发,最后部署的时候使用nginx的upstream和location进行路由的关联,在PasteSpider里面中,你可以为张三和李四绑定他们各自的服务,那么在升级过程中他们就只能看到这个项目下的各自的服务,各自部署各自的!PasteSpider里面支持按照项目,服务,环境的维度为账号授权!

如何保证部署时候的配置文件不搞混

拿.net来说明,现在的项目有一个配置文件appsettings.json,其实其他语言也有,没有的话你也可以自己弄一个出来,无外乎就是启动的时候读取这个配置,然后使用它!还有一个地方就是启动的时候传入的参数,使用docker的小伙伴应该很熟悉docker的一个命令docker run -e XXX=YYYY。如果是文件,那么你可以在服务的同步过滤中标注这个文件不升级,就是每次更新文件都不更新appsettings.json,而如果是环境参数的话,你可以使用PasteSpider里面的key-value,把环境变量打开,比方说你可以为api的服务在启动的时候分别导入-e runkey=abc或者-e runkey=bbc,这里的abc或者bbc你应该配置到Key-value里面。文件同步过滤还可以配置文件夹,也可以基于账号配置,比如张三不更新/page/这个文件夹的内容,李四不更新/mobile/这个文件夹的内容!

在PasteSpider配置路由后没有生效

在PasteSpider的路由模块中,你可以给某一个项目的某一个环境设定他的nginx的规则,也就是nginx的路由信息的模板,系统将基于这个模板生成nginx.conf内的upstream和server模块的内容。
1.可能是宿主服务器的路径设置错误,一般的这个路由文件放于/etc/nginx/conf.d/,要按照宿主实际的情况设定
2.PasteSpider需要触发了升级或者伸缩才会触发对路由文件的更新!还有对应的环境要对,比如你给项目A设定了测试环境的路由信息,结果发布的是正式环境的,那么这个路由文件是不会更新的!
3.可能在生成路由文件的时候遇到错误,这个可以查看任务详细可以看到。
4.从开始到路由可用的顺序错误了,正确的顺序应该是项目对应的服务先启动运行(服务-环境-构建于升级),然后去为这个项目的这个环境新建一个路由信息,这个时候可以直接点击预览,看看基于模板框的内容生成的路由信息是什么样子的,保存后,点击路由列表页面中这个路由的重载,重载就是基于这个路由的项目和环境信息,读取对应的内容,然后写入到对应的.conf文件上,然后执行命令nginx -t和nginx -s reload
如果配置的这个.conf文件已经在宿主的对应文件夹上看到了,还不能访问,那就要看生成的这个路由配置信息,基于Nginx的支持去排查了!

如何应对服务器重启的问题

docker有一个重启机制,就是启动容器的时候设定restart=always,所以重启就变成docker的问题了,其实PasteSpider里面有一个运行数量监听的机制,创建服务后,一般会给这个服务的指定环境在某一台服务器上配置至少运行一个容器,在下一次PasteSpider监测服务运行情况的时候,如果容器数量小于设定的,则会基于这个服务的配置启动一个容器!这点作用在podman可以理解为podman重启后,其他容器如何重启的问题(只要配置PasteSpider开机重启,然后就等待PasteSpider检查容器运行情况了)
对于容器来说重启的另外一个问题是IP的问题,一般路由我们使用端口映射,或者内部IP,所以PasteSpider引入了自定义网关的模式,一个项目一个网关,为容器配置了网关和IP的,重启后这个IP是不变的!!!

未完待续 明天继续

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

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

相关文章

由于找不到mfc140u.dll,无法继续执行代码如何解决

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是电脑找不到mfc140u.dll文件。这个问题可能会导致程序无法正常运行或系统崩溃。为了解决这个问题,本文将介绍5种修复方法,帮助大家快速恢复电脑的正常运行。 一&#x…

如何理解kmp的套娃式算法啊?

概念 KMP算法,全称Knuth Morris Pratt算法 。文章大部分内容出自《数据结构与算法之美》 核心思想 假设主串是a,模式串是b 在模式串与主串匹配的过程中,当遇到不可匹配的字符的时候,对已经对比过的字符,是否能找到…

【kubernetes】多 master 高可用集群架构部署

目录 前言 一、环境部署 二、master02 节点部署 1、拷贝相关文件 2、修改配置文件 3、启动各服务并设置开机自启 4、 查看node节点状态 三、负载均衡部署 1、部署 nginx 服务 1.1 编译安装 nginx 1.2 修改 nginx 配置文件 2、部署 keepalived 服务 2.1 yum安装 ke…

通过管理系统完成商品属性维护

文章目录 1.数据库表设计1.商品属性表 2.renren-generator生成CRUD1.基本配置检查1.generator.properties2.application.yml 2.启动RenrenGeneratorApplication.java生成CRUD1.启动后访问localhost:812.生成商品属性表的crud 3.将crud代码集成到项目中1.解压,找到ma…

python科研数据可视化之折线图

例如 : 下面的配色表画出的图很好看。选择喜欢的颜色,找到代码中颜色部分进行修改即可。 代码部分已经有详细的注释,就不一一解释了。另外,如果想要坐标轴从设定的值开始就把下面代码中的范围xlim,ylim进行注释。 imp…

设计模式12——外观模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 外观模式(Facade&a…

javaSwing购物系统项目(文档+视频+源码)

摘要 由Java swing实现的一款简单的购物程序,数据库采用的是mysql,该项目非常简单,实现了管理员对商品类型和商品的管理及用户注册登录后浏览商品、加入购物车、购买商品等功能,旨在学习Java 图形界面开发 系统实现 我们先来管理…

CF451E: Devu and Flowers(容斥原理 + 考虑反面 + golang组合模版)

题目截图 题目翻译 题目分析 正难则反,考虑所有不符合的例子 由于n很小,所以可以状态压缩二进制遍历完全部不符合例子的组合 对于不符合的例子,假设其中第i个不符合,那么就消耗掉fi 1个球 以此类推,减剩下s2个球 这时…

一剪梅-答赠云安客刘自果

当众网友看了笔者“边吸氧边动鼠标”的短视频之后,纷纷发来微信问候。其中我的远房亲戚,那个正在潜心写作数十万字的长篇纪实文学《川江向东流》的66岁贤弟刘自果(号云安客,亦称自果居士),发来微信鼓励我&a…

【Vue】性能优化

使用 key 对于通过循环生成的列表,应给每个列表项一个稳定且唯一的 key,这有利于在列表变动时,尽量少的删除和新增元素。 使用冻结的对象 冻结的对象(Object.freeze(obj))不会被响应化,不可变。 使用函…

【Linux】网络层——IP协议

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:Linux 目录 👉🏻IP协议基本概念👉🏻IP的协议头格式👉🏻IP协议的网段划分五类IP地址子…

mysql数据库主从复制,搭建从库

1 期望效果 假设我们现在有两个服务器,两个服务器都有数据库,然后我们命名一个叫主数据库(Master),一个叫从数据库(Slave) 数据备份和容灾:通过主从复制,可以将主数据库…

618有什么宠物空气净化器推荐?希喂FreAir Lite宠物空气净化器真实体验

一、宠物空气净化器的必要性 掉毛季又来了,猫咪的毛发满天飞,怎么办?我家里的猫咪一到换毛季就掉满地的毛发,尤其喜欢在家里奔跑打闹,结果整个房间都是毛。为了减少家里空气中的浮毛,你都做过哪些努力呢&a…

关于「公 告」根据中华人民共和国法律,Bing 在中国内地暂停 “搜索自动建议” 功能 30 天

当我看见我们大家都这样我可放心了,我打开电脑搜索图片就发生了。 当我看见我们大家都这样我可放心了,坐等攻城狮修复。

关闭以及启动ubuntu图形界面

关闭以及启动ubuntu图形界面 文章目录 关闭以及启动ubuntu图形界面1. 关闭图形界面2. 打开图形界面 如果你误杀了Xorg进程,需要重新启动图形界面,可以按照以下步骤操作: 1. 关闭图形界面 查看当前启动的图形界面: 使用下面命令…

LeetCode刷题之HOT100之比特位计数

今天把仙剑三看完了,茂茂割肉让人无法释怀,眼泪止不住的流。长卿和紫萱的分离似乎也意味着重逢,这就是他们的宿命吧。怅然若失的感觉席卷全身,哎,做题吧。 1、题目描述 2、逻辑分析 题目要求将整数从0到此元素&#…

【GO基础】1. Go语言环境搭建

Go语言环境搭建 Go的三种安装方式Go标准包安装Windows 安装验证是否安装成功 4.Go的第一个程序 Hello World.go Go的三种安装方式 Go有多种安装方式,可以选择自己适合的。这里介绍三种最常见的安装方式: Go源码安装:这是一种标准的软件安装…

零门槛微调大模型:基于 Ludwig 低代码框架使用 LoRA 技术微调实践

一、Ludwig 介绍 自然语言处理 (NLP) 和人工智能 (AI) 的飞速发展催生了许多强大的模型,它们能够理解和生成如同人类般的文本,为聊天机器人、文档摘要等应用领域带来了革命性的改变。然而,释放这些模型的全部潜力需要针对特定用例进行微调。…

QTextEdit 控件上显示信息:

目录 1. 使用 append 方法: 2. 使用 setPlainText 方法 3.例子: 1. 使用 append 方法: 如果你希望在 QTextEdit 控件上追加显示新的信息,可以使用 append 方法。例如,当你想要追加一行新的日志信息: self.text_edit.append(&…

于ThinkPHP开发的赛事报名小程序

基于ThinkPHP开发的赛事报名微信小程序 功能包括 1、参赛公告 2、会员中心(会员注册、登录、成绩查询、资料管理、参赛记录管理) 3、个人报名和企业报名 (身份证验证防止重复报名) 4、培训报名 5、查询是否在库人员,根…