免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: eveson

[C] 移动互联网的后台架构语言选择 [复制链接]

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
发表于 2014-12-11 16:02 |显示全部楼层
大神,为啥我虽然写代码,但是每天工作一点激情都没有?感觉总是在同步别人的代码回复 10# colin8080


   

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
发表于 2014-12-11 16:30 |显示全部楼层
eveson 发表于 2014-12-11 15:37
看了下介绍,感觉thrift 其实就实现了一个类似于select或者epool的功能,其他没做什么,具体的实现代 ...


      
    还有 RPC 的编码和解码也是 thrift 完成的,业务逻辑处理当然要自己写了。

  1. class CalculatorHandler : virtual public CalculatorIf {
  2. public:
  3.   CalculatorHandler() {
  4.     // Your initialization goes here
  5.   }

  6.   /**
  7.    * A method definition looks like C code. It has a return type, arguments,
  8.    * and optionally a list of exceptions that it may throw. Note that argument
  9.    * lists and exception lists are specified using the exact same syntax as
  10.    * field lists in struct or exception definitions.
  11.    */
  12.   void ping() {
  13.     // Your implementation goes here
  14.     printf("ping\n");
  15.   }

  16.   int32_t add(const int32_t num1, const int32_t num2) {
  17.     // Your implementation goes here
  18.     printf("add\n");
  19.   }

  20.   int32_t calculate(const int32_t logid, const Work& w) {
  21.     // Your implementation goes here
  22.     printf("calculate\n");
  23.   }

  24.   /**
  25.    * This method has a oneway modifier. That means the client only makes
  26.    * a request and does not listen for any response at all. Oneway methods
  27.    * must be void.
  28.    */
  29.   void zip() {
  30.     // Your implementation goes here
  31.     printf("zip\n");
  32.   }

  33. };
复制代码
这个类是 thrift 生成的,需要程序员实现各个服务函数的功能,然后 RPC 的编码和解码和网络通信是 thrift 完成的。

论坛徽章:
0
发表于 2014-12-11 16:40 |显示全部楼层
zhujiang73 发表于 2014-12-11 16:30
还有 RPC 的编码和解码也是 thrift 完成的,业务逻辑处理当然要自己写了。这个类是 thrif ...

看刚才发的链接,不支持Json?

论坛徽章:
0
发表于 2014-12-11 16:41 |显示全部楼层
zsszss0000 发表于 2014-12-11 16:02
大神,为啥我虽然写代码,但是每天工作一点激情都没有?感觉总是在同步别人的代码回复 10# colin8080


...


可能是因为写代码太多,而没有时间思考的原因。必须要多思考,有创新,有思路。

论坛徽章:
0
发表于 2014-12-11 17:36 |显示全部楼层
colin8080 发表于 2014-12-11 15:38
如果有需要组队开发的话,可以加上我,现在公司系统框架(基于ACE)都搞好了,整天搞一些小系统和业务需求,
...

你擅长哪边面?

论坛徽章:
0
发表于 2014-12-11 18:00 来自手机 |显示全部楼层
我有个app,需要后台服务支持,主要是访问一些api,得到资源,目前我是这样做的:
对于不太改动的资源,例如最新升级版本,就做个json文件,供http静态拉取。需要改的话ftp上去改一下非常方便。
对于动态资源,目前我的架构是nginx加lua,优点是性能强,搭建简便,开发快速,是一种非常轻型的后台。并且作为c程序员,lua你懂的。

论坛徽章:
0
发表于 2014-12-11 19:01 |显示全部楼层
本帖最后由 eveson 于 2014-12-11 19:42 编辑

@xphh2008[/@]nginx收到客户端请求后,如何把请求内容发给lua的啊?你的客户端和服务端通信业务协议是怎么定的?

论坛徽章:
0
发表于 2014-12-11 20:06 |显示全部楼层
eveson 发表于 2014-12-11 19:01
@xphh2008[/@]nginx收到客户端请求后,如何把请求内容发给lua的啊?你的客户端和服务端通信业务协议是怎么定 ...


有个ngx_lua作为nginx的插件模块,nginx收到http请求后会执行nginx.conf中指定的lua脚本。在脚本中你可以随意处理,包括访问mysql。

你可以百度一下ngx_lua了解一下。

协议是自定义的,放在http包体里,一般用json,这个不是关键。



论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
发表于 2014-12-11 21:59 |显示全部楼层
eveson 发表于 2014-12-11 16:40
看刚才发的链接,不支持Json?



        数据的编码和解包都是在 thrift 内部进行,程序员看到的是 C/CPP/JAVA 等语言中的数据结构。

        看手册应该支持在 RPC 传输中的 json 编码和解码,不过我喜欢用二进制编码,效率高一些。 http://thrift.apache.org/docs/concepts

        

论坛徽章:
0
发表于 2014-12-12 10:02 |显示全部楼层
xphh2008 发表于 2014-12-11 20:06
有个ngx_lua作为nginx的插件模块,nginx收到http请求后会执行nginx.conf中指定的lua脚本。在脚本中你可 ...


好,我正需要了解下。
你是在lua脚本里去解析http数据包,从http里面,找出Json的数据,然后再操作数据库的吗?http解析是你自己去写代码解析的,还是用的第三方库?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP