【转】在分布式开发时,代码一般要分发到多台机器,大家都用什么来做分发组件?

http://www.dewen.org/q/1020/?utm_source=weekly_82514821_24&utm_field=5&utm_id=5


在分布式开发时,代码一般要分发到多台机器,大家都用什么来做分发组件?

  • 浪际天涯

    3 票

  • 12.51K

在分布式开发时,代码一般要分发到多台前端机器上,大家一般都用什么来做分发组件?简要说明一下组件的优缺点。

至尊宝
904
编辑于 2012-01-18
评论 ( 0) •  分享 •  链接 •  2012-01-13 
10个答案
票 数 
  • 毛杭军

    4 票

  • 6727

说一下我们现在的做法
1.svn export整个代码
2.rsync 到发布机 同时把每个文件的MD5值记录后也带上去
3.在发布机点击check

  • 验证正式环境中每个文件的MD5值是否和发布机一样
  • check哪些文件是新增,哪些是修改,哪些需要删除

4.点击发布后,rsync到各台正式环境

评论 ( 1) •  链接 • 2012-01-19
  • 0
    我们现在用的就是这种方式 –  浪际天涯  2012-06-13
  • 浪际天涯

    3 票

  • 12.51K

居然没人回答我的问题,我自己找了一个叫Gearman的东东,在这里记着,改天研究研究,有兴趣的朋友也可以研究研究,如何通过它来完成分发,以下是关于Gearman的介绍:

Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。

一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker。   
Client:请求的发起者,可以是 C,PHP,Perl,MySQL UDF 等等。   
Job:请求的调度者,用来负责协调把 Client 发出的请求转发给合适的 Work。   
Worker:请求的处理者,可以是 C,PHP,Perl 等等。   

因为 Client,Worker 并不限制用一样的语言,所以有利于多语言多系统之间的集成。   
甚至我们通过增加更多的 Worker,可以很方便的实现应用程序的分布式负载均衡架构。

用这玩意来弄弄分发应该可以实现

评论 ( 0) •  链接 • 2012-01-16
  • 大人

    2 票

  • 1034

我一直用的svn的钩子,去勾 rysn。
只有两台同步,如果达到10台,就不知道性能怎么样了。
不过话说回来,部署环境的web,更新周期比较长,影响不大

评论 ( 0) •  链接 • 2012-01-17
  • 黄新颖

    2 票

  • 1381

我们也是用rsync去同步代码,上百台服务器同时更新也没有问题。你刚才说的gearman是运行时的框架,而现在你关心的是如何做分布式的部署,不是分布式的运行吧?

评论 ( 0) •  链接 • 2012-01-17
  • 彭玮琳

    2 票

  • 281

可以借鉴一下hypertable的同步更新工具,使用的是Capistrano,感觉还比较不错
https://github.com/capistrano/capistrano/

评论 ( 0) •  链接 • 2012-06-13
  • halk

    1 票

  • 51

主要有分发和同步两种方式,其中分发就是源代码的发送方主动呢传送,而同步就是接受方定时\根据某规则询问

具体的方法和工具,请具体查询

评论 ( 0) •  链接 • 2012-07-02
  • lijinglin

    1 票

  • 16

zookeeper和分发无关。 跑分发都可以直接写scp脚本,建立各台机器的ssh信任关系,用scp拷贝过去。 不过这种是全量拷贝同步了,也可以用rsync做。rsync主要你不知道何时结束了。rsync做增量同步。

评论 ( 0) •  链接 • 2012-06-12
  • 至尊宝

    1 票

  • 904

可以考虑使用Zookeeper。
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

评论 ( 0) •  链接 • 2012-01-18
  • 庞彤彤

    0 票

  • 434

SVN(版本控制)+Jenkins(持续集成管理平台)+Maven(项目集成),具体的操作方式baidu或者google

评论 ( 0) •  链接 • 2012-08-20
  • Eryx

    0 票

  • 1
  1. 我们用 Redhat RPM,所有软件都打包成 RPM
  2. 有一套自动的包集成工具,RPM 是自动生成的
  3. “分发” 在我们本地使用队列服务,向所有 Agent 执行 yum update/install
评论 ( 0) •  链接 • 2012-09-18

你可能感兴趣的:(负载均衡,capistrano,perl,语言,服务框架,分布式应用)