基于Jenkins实现项目部署

Jenkins 有很多中创建任务的方式,这里,我只测试了常用的三种方式,来实现简单的自动化部署,分别是 Freestyle、Pipeline、Open Blue Ocean。 假设,我们有一个项目,放在 Git 上维护,部署在 slave-web-1、slave-web-2 两台服务器上,基于 Jenkins , 来实现自动化部署。 服务器信息说明: 域名 IP 作用 master 192.168.1.1 部署 jenkins、 maven 服务…

持续集成工具 — Jenkins

Jenkins 是一个用 Java 编写的开源的持续集成(CI)工具,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。它运行在 Servlet 容器中(例如 Apache Tomcat)。它支持软件配置管理(SCM)工具(包括 AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase 和 RTC),可以执行基于 Apache Ant 和 Apache Maven 的项目,以及任意的 Shell 脚本和 Windows …

Hystrix学习总结

在上一篇,已经对 Hystrix 的原理进行了了解。为了加深理解和快速实际应用,编写了一些测试代码对几个关键点进行测试验证。有些结论,是官网已经说明的。另一些是通过测试或其他同行使用得出的结论。 通过测试代码 hystrix-example,可以对Hystrix的细节进行分析和验证。 1、执行Command HystrixCommand 的执行流程如下: execute()是同步堵塞的,它调用了queue().get()方法,execute()执行完后,会…

服务容错与保护方案 — Hystrix

在分布式系统,我们一定会依赖各种服务,那么这些个服务一定会出现失败的情况,Hystrix就是这样的一个工具,它通过提供了逻辑上延时和错误容忍的解决力来协助我们完成分布式系统的交互。Hystrix 通过分离服务的调用点,阻止错误在各个系统的传播,并且提供了错误回调机制,这一系列的措施提高了系统的整体服务弹性。 1、Hystrix能做什么 在通过第三方客户端访问(通常是通过网络)依赖服务出现高延迟或者失败时,为系统提供保护和控制 在分布式系统中防止级联失败 快速失败(Fail f…

QPS 100K压测报告

1、现状说明 线上服务器QPS最高只能达到40K,架构中各层服务(Nginx、Tomcat、Dobbu、Redis/Mysql)的服务器负载都很低,横向扩展Nginx、Tomcat服务器,QPS不提升,增加压力,QPS和服务器负载还会下降。 无法知道架构的瓶颈在哪一层,各层服务的瓶颈值是多少,导致无法根据用户量来预估服务器的数量。 2、测试目标 测试出各层服务的瓶颈值 测试出当前架构能达到的QPS QPS达到100K时,是否需要扩展或调整架构,怎么调整 3、测试计划 阶段 测…

性能压测与调优总结

为了知道我们的单个服务和整体服务的性能,以便掌握大体情况,以及为以后调整部署方案做评估依据,我们对所有的服务进行了逐级的压测。原以为是个简单的事情,做的过程中才发现要解决好多问题,真不是一项简单的工作。由于之前对压测并不是很了解,很多问题都是遇到后临时Google学习,所以,有一些问题并没有深入理解。 到目前为止,这里的总结是对压测过程和思路的梳理,很多地方并不专业和详细,记录下来,是为以后再做这类事情时,一可以用它来给自己做参考,二来可以继续完善和总结经验。 1、服务说明 …

高并发压力测试工具Tsung

Tsung是Erlang开发的一个开源的多协议分布式负载测试工具,它能用来压力测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP的服务器。它可以分布在多个客户机,并能够模拟成千上万的虚拟用户数并发。 最近在做业务的横向扩展测试和业务接口的性能优化,期望QPS能达到C100K的目标。平时简单的压力测试,使用的是 ab 轻量级测试工具。但是,正式测试时,涉及到多接口、高并发等要求测试,就需要使用专业的、重量级的测…

使用火焰图做性能分析

火焰图(Flame Graph)是由 `Linux` 性能优化大师 `Brendan Gregg` 发明的。它是定位疑难杂症的神器,比如 `CPU` 占用高、内存泄漏等问题。 和所有其他的 `trace` 和 `profiling` 方法不同的是,`Flame Graph` 以一个全局的视野来看待时间分布,它从底部往顶部,列出所有可能的调用栈。 Flame Graph 火焰图看起来就像一团跳动的火焰,这也正是其名字的由来。燃烧在火苗尖部的就是 CPU 正在…

Grafana使用

Grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现。有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus 和 OpenTSDB 作为数据源,最新版本4.3.1已经支持 MySQL 数据源。 Grafana 主要特性:灵活丰富的图形化选项;可以混合多种风格;支持多个数据源;拥有丰富的插件扩展;支持用户权限管理。 准备学习 Grafana&nbsp…

InfluxDB使用

最近想对现有的数据可视化做一下调整,以便减少前端的开发工作量,尽量自动化,把主要精力放在数据上。发现 Grafana 非常适合,决定尝试一下。由于目前 Grafana4.2 版本不支持 Mysql 数据源(官方说到4.3版本开始支持),所以,决定再尝试一下最近比较火的时间序列数据库 InfluxDB(没有选择 ElasticSearch 是因为它本身太重,且重查询轻写入。最主要的是目前的数据量不是很大,可用服务器有限)。 InfluxDB 是一个开源分布式时序、事件和指标数据…