完美解决各进程间系统库修改之后的弹性扩充,引入技术有多进程共享内存、多进程信号量、dlyopen动态库,具体流程如下:
- 修改DbCfg.cpp,对配置结构TDbCtrl g_DbCtrl进行函数封装为
TDbCtrl *GetTDbCtrl()
{
//初始化g_DbCtrl结构体
return &g_DbCtrl;
}
- 将DbCfg.cpp编译成动态库libDbCfg.so
arm-linux-gnueabi-g++ -fPIC -shared DbCfg.cpp -o libDbCfg.so
- 各进程微应用通过dlopen(/*打开动态库*/),dlsym(/*函数地址:GetTDbCtrl*/)来获取g_DbCtrl结构体;
- 最终调用InitDbLib(&g_DbCtrl)完成系统库初始化。