colin8080 发表于 2015-08-20 18:24

Linux C++服务器端开发进程SDK

目标:开发人员在这个SDK的基础上开发,不用关注技术细节,只要开发业务消息的处理函数即可:

1.每个进程包括多个service,可自定义service_id对应各种业务消息,对应业务消息的处理函数需要自定义,

eg:DECL_SVC_MSG(BUSINESS_LOG_MSGID, vWriteLogSvc);

2.每个进程都有一个系统消息队列(自动生成),默认接收系统消息,比如启动,停止等;

3.每个service都有接收和发送业务消息的队列,默认为一个接收线程,一个业务处理并发送线程(根据service_id调用上面的业务消息处理函数),

可自定义多个业务处理并发送线程,这些都由SDK自动生成;

4.队列SDK自带定时器线程,可处理超时消息,可阻塞固定时间接收消息(提前收到消息当然没有问题,超时则退出接收);

5.监控进程相当所有进程的总管,负责发送消息到相关队列启动或者停止业务进程;

6.所有进程写日志通过发送消息到日志队列,日志进程接收消息并写日志,解决多进程写日志的混乱;

7.BBL进程采用共享内存哈希表存储所有service和队列的关联信息,其他进程调用对应的service只要根据service_id找到对应的队列即可发消息;

8.目前只开发主要功能,还有跨机发送消息、告警、集群管理等等相关功能尚未开发,还有比较多的工作量。


基于LINUX 平台纯C++开发,使用时不用安装任何组件,直接调用库文件即可,

这个项目不属于公司项目,个人业余创作,关于前景,希望大家谈谈自己看法,谢谢。

hanzhenlll 发表于 2015-08-21 11:03


封装的越简单 局限性越高

hanxin83 发表于 2015-08-21 13:31

前景: 如果讲盈利, 可能性接近0.
如果讲应用, 也许有部分人会下载瞅一眼, 其中的少数人研究参考一下, 这其中的极少人用一用, 然后发现有些要求满足不了, 自己去写另一个框架.

不过框架设计的思路都考虑得挺周全了, 自己写出来能显著提升内功.
最后问一句, 看上去是线程池同步处理?不是异步模型?如果是异步, 支持协程么?

cokeboL 发表于 2015-08-21 14:29

把时间花在有用的地方吧

colin8080 发表于 2015-08-22 09:28

回复 3# hanxin83


    利用队列处理消息当然是异步的,但是其他进程调用服务发送消息可阻塞固定时间接收消息。

colin8080 发表于 2015-08-22 09:38

目前公司项目计费平台就采用这个架构,每天几千万的交易额,不过是基于ACE的,安装比较麻烦,也有很多局限性,

但是已经运行了十多年了。

wgfxcu 发表于 2016-08-08 15:43

有附件吗?能不能看看源码?:sleepy:
页: [1]
查看完整版本: Linux C++服务器端开发进程SDK