ActiveMQ讯息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。

 

一. ActiveMQ消息传送机制

Producer客户端使用来发送消息的, Consumer客户端用来消费消息;它们的协同中心就是ActiveMQ broker,broker也是让producer和consumer调用过程解耦的工具,最终实现了异步RPC/数据交换的功能。随着ActiveMQ的不断发展,支持了越来越多的特性,也解决开发者在各种场景下使用ActiveMQ的需求。比如producer支持异步调用;使用flow control机制让broker协同consumer的消费速率;consumer端可以使用prefetchACK来最大化消息消费的速率;提供”重发策略”等来提高消息的安全性等。在此我们不详细介绍。

Continue reading

使用 Capistrano 部署项目

来源:http://www.361way.com/capistrano-deploy/3563.html

简介

Capistrano 是一个 Ruby 程序,它提供高级的工具集来部署你的 Web应用到服务器上。Capistrano 允许你通过 SSH 从源代码控制仓库(SVN 或 Git)复制代码到服务器,并执行如重启 Web服务器、操作缓存、重命名文件、迁移数据库等部署前/后的功能。利用 Capistrano一次也可部署多台机器。

Continue reading

capistrano 自动化项目部署

一、什么是capistrano

A remote server automation and deployment tool written in Ruby

ruby写的自动化集群部署工具,官网:http://www.capistranorb.com/  源码: https://github.com/capistrano/

二、基本原理

原理很简单,就是利用ssh。ssh上服务器—>执行脚本—>返回。虽然简单,但是capistrano做了很多事情,让你比自己写ssh容易太多,而且内置了执行事务,回滚操作。通过capi部署,它会在服务器上维护每次release的版本列表,很方便实现rollback操作。

说到ssh ,就有必要聊到shell的几种模式: non-login  login non-interactive interactive,区别可以google下。capi默认是non-login,non-interactive。原因也提到了,这样会少加载很多不必要的服务器的环境变量,而且也是减少会服务器端环境配置的影响。

服务端环境的变化对capi的来说,是不关心的,也不应该关心。但是这种模式也给脚本编写带来一些不便,后面会提到。

Continue reading

敏捷开发的六个实战经验

(转自csdn)

在大型企业中经常是各种软件开发模式混用,一些采用敏捷开发,一些则是采用传统的瀑布式或RUP(统一软件开发过程)。敏捷开发,相对传统软件开发模式,它主要是针对快速变化的需求,不断优化管理流程,最终推出优质软件。

原文作者Ulf Eriksson,是一家在线问题跟踪软件公司的创始人之一,他是敏捷开发的忠实粉丝,已经进行了多年敏捷开发的实践。下面内容主要是作者根据自己多年经历进行的经验总结。

Continue reading