前端与后端的数据交互,最常用的就是GET、POST,比较常用的用法是:提交表单数据到后端,后端返回json前端的数据发送与接收1)提交表单数据2)提交JSON数据后端的数据接收与响应1)接收GET请求数据2)接收POST请求数据3)响应请求前端的数据发送与接收1. 提交表单数据# GET请求var data = { "name": "test", "age": 1}; $.ajax({
导读本文给你分享我在K8S生产环境上部署微服务项目遇到的问题:1、限制了容器资源,还经常被杀死?2、滚动更新之健康检查重要性3、滚动更新之流量的丢失先说一下第一个问题,限制容器资源,还经常去杀死的原因?就是说部署的java应用,不一会就重启了,其实重启就是在重建了,这就意味着你的pod是不健康的,然后k8s重新再帮你去拉取了,这样的话就要去找问题去排查了,说白了其实就是被杀死了,可以通过descr
Flunted + Elasticsearch + Kibana的方案,发现有几个缺点:不能处理多行日志,比如Mysql慢查询,Tomcat/Jetty应用的Java异常打印不能保留原始日志,只能把原始日志分字段保存,这样搜索日志结果是一堆Json格式文本,无法阅读。不符合正则表达式匹配的日志行,被全部丢弃。本着解决以上3个缺点的原则,再次寻找替代方案。首先找到了商业日志工具Splunk,号称日志
python中shutil模块shutil是对OS中文件操作的补充:移动、复制、打包、压缩、解压。1.copy文件内容到另一个文件,可以copy指定大小的内容。shutil.copyfileobj(fsrc, fdst[, length=16*1024]) # 注意!fsrc, fdst都是文件对象,需要打开后才能进行复制import shutil f1 = open('name', 'r') f
脚本模板化在这个过程中或许你已经发现,上面写的脚本,每次创建不同业务的虚拟机的时候,需要在不同的脚本中去找参数进行修改,这样有一些麻烦,那么有没有办法把脚本模板化呢,答案当然有。Terraform配置支持变量,具体介绍参考这里 https://www.terraform.io/docs/configuration/variables.html有了变量后,我们把配置中常变更的属性值定义成变量集中放到
基础架构自动化编排工具Terraform安装与使用踩坑记录参考链接https://blog.csdn.net/u011220960/article/details/89704619 terraform模块架构参考链接https://www.jianshu.com/p/e0dd50f7ee98
有一个需求,每次服务更新发布时,要拉取不同版本的 Docker 镜像来启动,这里就涉及到一个问题:如何传递 Docker 镜像版本号的问题。线上环境是用 saltstack 发布的,问题就变成了:如何从命令行传递参数到 state sls 文件中的变量。可以从命令行传递 pillar 变量解决。示例如下:1、startup.sh 脚本中定义 jinja 变量 {{ version }},用以区分不
salt常用命令、模块、执行参考链接https://www.cnblogs.com/davygeek/p/7754207.html
WebSSH2使用
Python PyInstaller安装和使用教程(详解版)参考链接http://c.biancheng.net/view/2690.html Python代码的打包发布教程参考链接https://msd.misuland.com/pd/3070888491219948624
1、这种情况是可以的,只有一个 deploy.sls 时,appname 可以传递给 /data/apps/{{ appname }}// deploy.sls {% set appname = 'foo-service' %} app-config-dir: file.directory: - name: /data/apps/{{ appname }} # --> 得到值为
容器的持久化存储容器的持久化存储是保存容器存储状态的重要手段,存储插件会在容器里挂载一个基于网络或者其他机制的远程数据卷,使得在容器里创建的文件,实际上是保存在远程存储服务器上,或者以分布式的方式保存在多个节点上,而与当前宿主机没有任何绑定关系。这样,无论你在其他哪个宿主机上启动新的容器,都可以请求挂载指定的持久化存储卷,从而访问到数据卷里保存的内容。由于 Kubernetes 本身的松耦合设计,
Flask使用Bootstrap模板并引入Ajax后台完成数据刷新参考链接https://www.jianshu.com/p/300f350b1c1c flask-adminlte后台管理系统脚手架参考链接https://www.jianshu.com/p/ed7be4c14612
多进程和多线程之间的区别比较多线程在基于线程的多任务的环境中,所有进程至少有一个线程,但是它们可以具有多个任务。这意味着单个程序可以并发执行两个或者多个任务。简而言之,线程就是把一个进程分为很多片,每一片都可以是一个独立的流程。这已经明显不同于多进程了,进程是一个拷贝的流程,而线程只是把一条河流截成很 多条小溪。它没有拷贝这些额外的开销,但是仅仅是现存的一条河流,就被多线程技术几乎无开销地转成很多
Flask之数据库连接池DBuiltBUtils是Python的一个用于实现数据库连接池的模块。如果没有连接池,使用pymysql来连接数据库时,单线程应用完全没有问题,但如果涉及到多线程应用那么就需要加锁,一旦加锁那么连接势必就会排队等待,当请求比较多时,性能就会降低了。此连接池有两种连接模式:模式一:为每个线程创建一个连接,线程即使调用了close方法,也不会关闭,只是把连接重新放到连接池,供
1、编辑(Editing)Ctrl + Space 基本的代码完成(类、方法、属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl + P 参数信息(在方法中调用参数)Ctrl + Q 快速查看文档F1 外部文档Shift + F1 外部文档,进入web文档主页Ctrl + Shift + Z --
我之前的博客《Jenkins 多分支构建》及《Jenkins 多分支构建中的邮件配置》探索了在多分支构建中Jenkinsfile的配置。然而在我的配置中,根节点为node,但里面却没有使用Jenkinsfile的DSL去声明构建的流程,而是通过groovy代码去实现整个的构建逻辑,用try-catch处理构建失败的问题,看起来很混乱。并且,整个构建本来有拉取并检出代码、构建、发布这几个阶段,但是在
以前一直在使用Docker来封装并限制容器资源,从而实现限制进程资源的目的。但Linux Docker底层是基于cgroup来实现的,于是乎今天就想起来试试直接使用cgroup来限制进程资源。下面就以要限制一个程序的内存为例,来看看怎么实现限制资源。对于其它的资源限制都可以使用类似方法。下面进入系统的 /sys/fs/cgroup 目录下,看看我们可以限制哪些资源。在这个目录下,基本上每个目录代表
. 一、Kubernetes 环境安装 Jenkins. 二、Jenkins 安装插件. 1、Git 插件. 2、Docker 插件. 3、Kubernetes. 4、Kubernetes Cli. 5、Config File Provider. 6、Pipeline Utility Steps. 三、Jenkins 配置插件. 1、Git 插件配置及使用. 2、Docker 插件配置及使用. 3
5 个维度对 Kubernetes 集群优化参考链接https://www.jianshu.com/p/e9fcc1a9eea4
filebeat部署链接https://www.cnblogs.com/cjsblog/p/9445792.html
前面几篇文章分别对系统服务、MySql以及Redis相关软件做了监控预警,但是大家有没有发现,在prometheus.yml里配置需要监听的服务时,我们需要按服务名手动写入,也就是说以后每增加一个服务,就得手动修改此配置,并重启promethues服务。 那么我们如何做到动态的监听服务呢?相信不少接触过分布式框架Dubbo的小伙伴们都知道它是靠zookeeper做注册监听的,最近比较流行的Spr
Kubernetes平台上应用的自动化横着扩展(水平自动伸缩)是通过HPA(Horizontal Pod Autoscaler)来实现的,基于观测CPU使用率(v1版本,v2beta版本也支持memory或者其他自定义性能属性),当业务负载上升超过HPA设定值,创建新的POD保障业务对资源的需求,当负载下载后可以通过销毁POD是否资源来提高利用率。HPA控制器的工作流程(V1版本)流程创建HPA资
语法规则: location [=|~|~*|^~] /uri/ { … }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。~ 开头表示区分大小写的正则匹配~* 开头表示不区分大小写的正则匹配!~和!~*分别为区分大小写不匹配及
SonarQube 介绍SonarQube 是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测,如 Java、Python、Groovy、C、C++等几十种编程语言的检测。它主要的核心价值体现在如下几个方面: 检查代码是否遵循编程标准:如命名规范,编写的规范等。 检查设计存在的潜在缺陷:SonarQu
DBeaver是一个为开发人员和数据库管理员设计的方便可靠的数据库工具,支持Oracle Mysql SQLServer等等多数据库(MySQL,PostgreSQL,甲骨文,DB2,mssql,Sybase和任何数据库)。操作不同的数据库不用换特定的客户端,用这个搞定一切。支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLD
elasticsearch常用命令检查es版本信息curl IP:9200查看集群是否健康http://IP:9200/_cat/health?vcurl 'IP:9200/_cat/health?v'查看集群状态curl -XGET ip:9200/_cluster/statecurl -XGET ip:9200/_cluster/health?pretty查看节点列表http://IP:920
nginx+uwsgi 和nginx+gunicorn区别、如何部署参考链接https://www.jianshu.com/p/be2b587a900e 如何在Linux环境下通过uwgsi部署Python服务参考链接https://www.cnblogs.com/linuxprobe-sarah/p/9933232.html
linux下查看系统进程占用的句柄数查看系统默认的最大文件句柄数,系统默认是1024默认情况下,linux最大文件句柄数为1024个。当你的服务器在大并发达到极限时,就会报出“too many open files”。永久修改单进程文件句柄数修改linux系统参数。vi /etc/security/limits.conf 添加* soft nofile 65536* hard nofil
kubernetes v1.11 生产环境 二进制部署 全过程https://www.jianshu.com/p/7d079a7b2330
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号