基于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…

性能压测与调优总结

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

高并发压力测试工具Tsung

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

Flink1.4部署实践

Apache Flink 是一个开源的分布式流处理和批处理系统。Flink 的核心是在数据流上提供数据分发、通信、具备容错的分布式计算。同时,Flink 在流处理引擎上构建了批处理引擎,原生支持了迭代计算、内存管理和程序优化。 概念 关于Flink的详细说明,可以看 简单之美 的 Apache Flink:特性、概念、组件栈、架构及原理分析。 安装 这里分为 Standalone Cluster 和 JobManager High Availab…

使用火焰图做性能分析

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

自动化部署Flume+Kafka+Storm

由于业务需求特殊,一般只固定在一周的某几天晚上会有大量数据需要进行实时计算,而且只需要使用4到5个小时。平时只需要小规模的集群进行开发、测试和线上使用。 针对这种情况,为了减少服务器的费用,决定利用阿里云的 API 和 ECS 服务器,自动独立部署一套 Flume+Kafka+Storm 实时计算集群服务,以便灵活应对各种压力下的计算需求。 场景分析 根据业务分析,整理出三种使用场景: 1、平时或用户数据量较小时,直接用固定的小型集群。不需要做任何改变。 2、用户量一般,压力…

Storm Trident学习总结

1、Trident Trident 可以理解为 Storm 批处理的高级抽象,提供了分组、分区、聚合、函数等操作。 这里涉及到几个概念,做一下说明: batch: 出于效率原因,对tuple进行批量操作。若干的tuple组合就是batch,Trident的操作就是对batch的操作 partition: 将一个batch的数据分区,分成多个partition,或者可以理解为多个子batch,然后多个partition可以并发处理。 所以,分区后要…