服务治理之限流
📅 2017-06-04
大型网站系统主要的挑战是庞大的用户流量和高并发的访问,尤其是在一些大促场景下的会流量突增,如果不对这些流量加以管控,任由流量放大冲击系统,将会导致一系列恶劣的问题,例如一些可用的线程资源、连接资源被耗尽,分布式缓存容量被爆掉等,有可能会引起整个系统的雪崩。 当然普通网站系统在出现大量恶意流量和攻击时也会这些问题。
...大型网站系统主要的挑战是庞大的用户流量和高并发的访问,尤其是在一些大促场景下的会流量突增,如果不对这些流量加以管控,任由流量放大冲击系统,将会导致一系列恶劣的问题,例如一些可用的线程资源、连接资源被耗尽,分布式缓存容量被爆掉等,有可能会引起整个系统的雪崩。 当然普通网站系统在出现大量恶意流量和攻击时也会这些问题。
...Jenkisn官方提供两种支持方式的版本:
我们使用的是Weekly版本,这里记录一下Jenkins版本的升级和插件更新。 最初我们是使用rpm安装的Jenkins,这种安装方式jenkins.war被默认安装到/usr/lib/jenkins下。 升级Jenkins的版本只要将这个目录的jenkins.war替换成新的版本,重启Jenkins服务即可。
...Prometheus的AlertManager是一个独立于Prometheus的外部组件,用于监控系统的告警,通过配置文件可以配置一些告警规则,Prometheus会把告警推送到AlertManager。 Alertmanager会对收到的告警信息进行处理,例如进行忽略,禁止,聚合并通过邮件等方式发送告警信息。
...PromQL是Prometheus提供的查询语言,用户可以使用PromQL对时序数据进行查询和聚合。 PromQL的查询结果可以用来在PromQL的浏览器中绘图、以表格展现数据,另外,PromQL的HTTP API也可以被外部系统使用。
Prometheus的-web.listen-address=
监听的就是PromQL浏览器的地址,例如: -web.listen-address=:9090
,就以http://serverip:9090/graph
访问PromQL浏览器。
最近两周一直没有抽出时间写点Kubernetes的东西,这篇学习一下Kubernetes对Pod的调度。我们先来复习一下Kubernetes的一些基本概念。
Kubernetes是一个基于容器技术的分布式架构平台,它首先是一个开源的容器集群管理系统,又是一个分布式系统开发、运维和支撑平台。 Kubernetes为容器应用提供了服务注册和发现、负载均衡、服务部署和运行、服务滚动升级、在线扩容和缩容、资源调度、资源配额管理等功能。 可以说Kubernetes具备完备的集群管理能力,贯串分布式系统开发、测试、部署、运维监控各个环节。
...let和const是新增的变量声明关键字, 它们与var的区别是,声明变量没有预解析。
1// 变量声明
2{
3 let num1 = 10
4 const max_len = 99
5 // max_len = 100 // 错误,常量不能修改
6}
7// console.log(num1) // 错误,超出了作用域
ES6允许按照一定的模式,从数组和对象中提取值,这被成为解构(Destructuring)
...Vue.js是一个渐进式的JavaScript框架。怎么理解"渐进式":
Less是一个CSS预编译器,它扩展了CSS语言添加了变量(variables),混合(mixins),函数(functions)等特性。 下面演示在Vue项目中使用less.
使用vue-cli创建项目:
1vue init webpack-simple vue-less
2cd vue-less
3npm i
安装webpack支持的less编译包:
...Prometheus是一个开源的监控系统和时序数据库。 Prometheus使用Go语言开发,是Google BorgMon监控系统的类似实现。
Prometheus使用的是Pull模型,Prometheus Server通过HTTP的pull方式到各个目标拉取监控数据。
...kube-apiserver是Kubernetes集群的中心,集群中所有资源的创建和更新都是通过APIServer的Restful API实现的。 因此Kubernetes通过一系列的机制来保证APIServer的安全,包括APIServer的认证、授权以及本文我们要学习的准入控制Admission Control。
...