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++开发,使用时不用安装任何组件,直接调用库文件即可,
这个项目不属于公司项目,个人业余创作,关于前景,希望大家谈谈自己看法,谢谢。
封装的越简单 局限性越高
前景: 如果讲盈利, 可能性接近0.
如果讲应用, 也许有部分人会下载瞅一眼, 其中的少数人研究参考一下, 这其中的极少人用一用, 然后发现有些要求满足不了, 自己去写另一个框架.
不过框架设计的思路都考虑得挺周全了, 自己写出来能显著提升内功.
最后问一句, 看上去是线程池同步处理?不是异步模型?如果是异步, 支持协程么?
把时间花在有用的地方吧 回复 3# hanxin83
利用队列处理消息当然是异步的,但是其他进程调用服务发送消息可阻塞固定时间接收消息。 目前公司项目计费平台就采用这个架构,每天几千万的交易额,不过是基于ACE的,安装比较麻烦,也有很多局限性,
但是已经运行了十多年了。 有附件吗?能不能看看源码?:sleepy:
页:
[1]