Skip to content
zhoumengkang edited this page Dec 28, 2015 · 5 revisions

Yar Java Client 简介

Yar 是一个轻量级, 高效的 RPC 框架, 它提供了一种简单方法来让 PHP 项目之间可以互相远程调用对方的本地方法. 并且 Yar 也提供了并行调用的能力. 可以支持同时调用多个远程服务的方法. Yar 作者是@laruence

Yar 鸟哥博客介绍 http://www.laruence.com/2012/09/15/2779.html

Yar 鸟哥原始项目 https://github.com/laruence/yar

Yar Java Client 则实现了跨语言的远程调用。使得 Java 客户端能够调用 Yar PHP 服务器端本地的方法。

Yar Java Client 的产生

我在开发的时候遇到了如下的需求,而且频繁更新的

  1. 当用户的 feed 收到点赞时:收到1个赞时,发放10金币;收到5个赞时,发放10金币;收到10个赞时,发放10金币;从10~50个赞每多10个赞,发放10金币;50个赞以后每多50个赞,发放10金币。
  2. 当用户评论时,每天的第一次评论送2金币,第二次评论送5金币;
  3. 当用户添加 feed 时,每天的第一次添加图片 feed 送5金币,添加视频 feed 送10金币;
  4. 当用户 feed 被系统推荐时,送20金币。

如果将这一些运营业务都写在 api 里面,是不是显得很乱呢?一方面导致代码越堆越多,逻辑越来越乱;另一方面,每一次的改动都会涉及 api 的频繁上线,提心吊胆。

我们可以明显的可以看出,这一套运营部门激励用户的需求都是和金币直接相关的,应该解耦出来单独成为了一个金币服务。

所以我想到这应该使用 RPC 来解决这个问题,而大多数的 PRC 都过于健壮,而我这里只不过是想把一些频繁更新的业务逻辑解耦出来,最后选择的 Yar,因为它非常轻量级,而且后端使用 PHP 来写,非常适合这种频繁调整而又可以异步的场景。所以萌生了写一个 Yar java client 的想法。如果你的项目也遇到了同样的问题,也可以考虑这个思路。

Clone this wiki locally