diff --git a/trunk/teaf(isgw)/readme.txt b/trunk/teaf(isgw)/readme.txt index 00f7be5..beb746c 100644 --- a/trunk/teaf(isgw)/readme.txt +++ b/trunk/teaf(isgw)/readme.txt @@ -1,342 +1,344 @@ -编译安装指导(目前主要支持 linux 平台): +缂栬瘧瀹夎鎸囧(鐩墠涓昏鏀寔 linux 骞冲彴)锛 -1 编译:进入 svr 目录(样例程序,依赖于mysql,没安装可以删除vip_db_oper.*再编译),修改makefile依赖的库路径 +1 缂栬瘧锛氳繘鍏 svr 鐩綍(鏍蜂緥绋嬪簭锛屼緷璧栦簬mysql锛屾病瀹夎鍙互鍒犻櫎vip_db_oper.*鍐嶇紪璇)锛屼慨鏀筸akefile渚濊禆鐨勫簱璺緞 - ,执行 make conf; make (make clean可以用来清理) + 聽 濡傛灉makefile涓畾涔変簡娉ㄩ噴浜 #ISGW_USE_DLL = 1锛 鍒欒〃绀洪噰鐢╯tatic缂栬瘧锛屽垯闇瑕佸畨瑁呬互涓嬪寘锛屼互centos涓轰緥锛 yum install glibc-static libstdc++-static zlib-static锛 缁х画锛 + + ,鎵ц make conf; make 聽 聽 (make clean鍙互鐢ㄦ潵娓呯悊) -2 安装(可使用install.sh脚本进行自动安装):建议目录结构为 bin cfg log +2 瀹夎(鍙娇鐢╥nstall.sh鑴氭湰杩涜鑷姩瀹夎)锛氬缓璁洰褰曠粨鏋勪负 bin cfg log -3 启动 :使用 start.sh 脚本进行即可 +3 鍚姩 锛氫娇鐢 start.sh 鑴氭湰杩涜鍗冲彲 -4 测试 :telnet 或者 用 client 目录下的 测试工具 client test.sh 脚本 +4 娴嬭瘯 锛歵elnet 鎴栬 鐢 client 鐩綍涓嬬殑 娴嬭瘯宸ュ叿 client test.sh 鑴氭湰 -5 性能参考:tlinux2.0 8核 intel 2.53G CPU 8G内存 100+客户端并发请求 +5 鎬ц兘鍙傝冿細tlinux2.0 8鏍 intel 2.53G CPU 8G鍐呭瓨 100+瀹㈡埛绔苟鍙戣姹 - 跑单个服务器进程,处理能力在6w qps左右,cpu总占用大概在170%左右(除以8就是21%,网络中断所在的cpu基本上跑满) + 璺戝崟涓湇鍔″櫒杩涚▼锛屽鐞嗚兘鍔涘湪6w qps宸﹀彸锛宑pu鎬诲崰鐢ㄥぇ姒傚湪170%宸﹀彸锛堥櫎浠8灏辨槸21%锛岀綉缁滀腑鏂墍鍦ㄧ殑cpu鍩烘湰涓婅窇婊★級 - 如果跑4个服务器进程,处理能力在23w qps + 濡傛灉璺4涓湇鍔″櫒杩涚▼锛屽鐞嗚兘鍔涘湪23w qps v3.4d100 2017-02 -1 异步连接支持二进制协议 +1 寮傛杩炴帴鏀寔浜岃繘鍒跺崗璁 -2 修复小bug +2 淇灏廱ug v3.3d501 2017-01 -1 优化连接管理器 修复可能的bug等 +1 浼樺寲杩炴帴绠$悊鍣 淇鍙兘鐨刡ug绛 -2 优化转发模块的功能 +2 浼樺寲杞彂妯″潡鐨勫姛鑳 v3.3d500 2016-10 -1 redis管理类优化 +1 redis绠$悊绫讳紭鍖 -2 工作队列支持多队列模型 +2 宸ヤ綔闃熷垪鏀寔澶氶槦鍒楁ā鍨 -3 性能优化,日志优化和bug修复等 +3 鎬ц兘浼樺寲锛屾棩蹇椾紭鍖栧拰bug淇绛 -4 优化异步联接管理器相关的功能 +4 浼樺寲寮傛鑱旀帴绠$悊鍣ㄧ浉鍏崇殑鍔熻兘 -5 路由模块支持多连接等 +5 璺敱妯″潡鏀寔澶氳繛鎺ョ瓑 v3.3d400 2016-04 -1 redis 管理类优化 +1 redis 绠$悊绫讳紭鍖 -2 函数安全梳理 +2 鍑芥暟瀹夊叏姊崇悊 -3 支持连接关闭回调业务函数 +3 鏀寔杩炴帴鍏抽棴鍥炶皟涓氬姟鍑芥暟 v3.3d301 2015-08 -1 增加对象数组池,支持高性能弱锁(或无锁)的对象管理 +1 澧炲姞瀵硅薄鏁扮粍姹狅紝鏀寔楂樻ц兘寮遍攣锛堟垨鏃犻攣锛夌殑瀵硅薄绠$悊 -2 ISGWMgrSvc 消息处理方式优化 +2 ISGWMgrSvc 娑堟伅澶勭悊鏂瑰紡浼樺寲 v3.3d300 2015-06 -1 支持lua脚本,编译时指定 ISGW_USE_LUA 宏 +1 鏀寔lua鑴氭湰锛岀紪璇戞椂鎸囧畾 ISGW_USE_LUA 瀹 -2 优化qmode在大buff时可能core的情况 +2 浼樺寲qmode鍦ㄥぇbuff鏃跺彲鑳絚ore鐨勬儏鍐 -3 增加数据库关键错误(1146,1054等)统计项 +3 澧炲姞鏁版嵁搴撳叧閿敊璇(1146,1054绛)缁熻椤 v3.3d203 2015-03 -1 优化mysql多结果集释放 +1 浼樺寲mysql澶氱粨鏋滈泦閲婃斁 -2 优化异步连接管理器状态判断(解决可能core的bug) +2 浼樺寲寮傛杩炴帴绠$悊鍣ㄧ姸鎬佸垽鏂(瑙e喅鍙兘core鐨刡ug) -3 统计方式优化,不返回消息的请求也需要统计进来 +3 缁熻鏂瑰紡浼樺寲锛屼笉杩斿洖娑堟伅鐨勮姹備篃闇瑕佺粺璁¤繘鏉 - ,并且支持 0 命令字统计(因为修改了统计方式,需要和stat_tool同步更新,否则统计会错位) + 锛屽苟涓旀敮鎸 0 鍛戒护瀛楃粺璁(鍥犱负淇敼浜嗙粺璁℃柟寮忥紝闇瑕佸拰stat_tool鍚屾鏇存柊锛屽惁鍒欑粺璁′細閿欎綅) v3.3d202 2014-11 -1 优化对ACE6.2版本以上的支持,才用notify机制实现ack消息通知 +1 浼樺寲瀵笰CE6.2鐗堟湰浠ヤ笂鐨勬敮鎸侊紝鎵嶇敤notify鏈哄埗瀹炵幇ack娑堟伅閫氱煡 -2 优化目录结构,把老的 easyace 库分解成两部分, +2 浼樺寲鐩綍缁撴瀯锛屾妸鑰佺殑 easyace 搴撳垎瑙f垚涓ら儴鍒嗭紝 - 一部分依赖于ace的代码 放在 isgw/easyace/ 下,并入isgw库 + 涓閮ㄥ垎渚濊禆浜巃ce鐨勪唬鐮 鏀惧湪 isgw/easyace/ 涓嬶紝骞跺叆isgw搴 - 另外一部分跟 ace 无关的继续留下,改名为 comm 库,可以编译成 libcomm.a 使用 + 鍙﹀涓閮ㄥ垎璺 ace 鏃犲叧鐨勭户缁暀涓嬶紝鏀瑰悕涓 comm 搴擄紝鍙互缂栬瘧鎴 libcomm.a 浣跨敤 -3 增加连接管理器使用样例 +3 澧炲姞杩炴帴绠$悊鍣ㄤ娇鐢ㄦ牱渚 -4 优化反应器的连接支持 +4 浼樺寲鍙嶅簲鍣ㄧ殑杩炴帴鏀寔 v3.3d201 2014-11 -1 支持断开空闲连接 +1 鏀寔鏂紑绌洪棽杩炴帴 -2 对memset操作进行了大量优化(去除不必要的) +2 瀵筸emset鎿嶄綔杩涜浜嗗ぇ閲忎紭鍖栵紙鍘婚櫎涓嶅繀瑕佺殑锛 -3 支持透传字段 _seqstr (同步模式) +3 鏀寔閫忎紶瀛楁 _seqstr (鍚屾妯″紡) -4 优化 ack 连接管理 +4 浼樺寲 ack 杩炴帴绠$悊 v3.3d200 2014-07 -1 修复CmdAmntCntrl的一个bug +1 淇CmdAmntCntrl鐨勪竴涓猙ug -2 QModeMsg 支持二进制协议,协议体需要应用层自己解析 +2 QModeMsg 鏀寔浜岃繘鍒跺崗璁紝鍗忚浣撻渶瑕佸簲鐢ㄥ眰鑷繁瑙f瀽 -3 异步连接管理器支持自定义消息id(用于唯一确定一条异步消息)解析函数 +3 寮傛杩炴帴绠$悊鍣ㄦ敮鎸佽嚜瀹氫箟娑堟伅id(鐢ㄤ簬鍞竴纭畾涓鏉″紓姝ユ秷鎭)瑙f瀽鍑芥暟 - ,将来可以支持idip等其他的后端平台或者服务 + 锛屽皢鏉ュ彲浠ユ敮鎸乮dip绛夊叾浠栫殑鍚庣骞冲彴鎴栬呮湇鍔 v3.3d100 2014-06 -1 优化异步连接管理的使用方式,增加ASYTask类(独立线程)及相关代码。 +1 浼樺寲寮傛杩炴帴绠$悊鐨勪娇鐢ㄦ柟寮忥紝澧炲姞ASYTask绫(鐙珛绾跨▼)鍙婄浉鍏充唬鐮併 -2 优化异常日志和增加103指令用于测试 +2 浼樺寲寮傚父鏃ュ織鍜屽鍔103鎸囦护鐢ㄤ簬娴嬭瘯 v3.2d211 2014-03 -1 连接管理类支持毫秒级超时时间,默认超时时间150ms。 +1 杩炴帴绠$悊绫绘敮鎸佹绉掔骇瓒呮椂鏃堕棿锛岄粯璁よ秴鏃舵椂闂150ms銆 -2 优化协议指定的转发功能,根据本地监听端口判断是否终止消息转发。 +2 浼樺寲鍗忚鎸囧畾鐨勮浆鍙戝姛鑳斤紝鏍规嵁鏈湴鐩戝惉绔彛鍒ゆ柇鏄惁缁堟娑堟伅杞彂銆 -3 增加IBCOperFac::create_oper失败时异常处理。 +3 澧炲姞IBCOperFac::create_oper澶辫触鏃跺紓甯稿鐞嗐 v3.2d210 2013-12 -1 优化路由支持功能,支持配置文件[router]段指定路由和内置的协议_appname参数指定路由两种方式。 +1 浼樺寲璺敱鏀寔鍔熻兘锛屾敮鎸侀厤缃枃浠禰router]娈垫寚瀹氳矾鐢卞拰鍐呯疆鐨勫崗璁甠appname鍙傛暟鎸囧畾璺敱涓ょ鏂瑰紡銆 -2 内部协议 QModeMsg 类增加客户端连接端口号 sock_port_ 字段和 get_sock_port 函数。 +2 鍐呴儴鍗忚 QModeMsg 绫诲鍔犲鎴风杩炴帴绔彛鍙 sock_port_ 瀛楁鍜 get_sock_port 鍑芥暟銆 -3 连接管理类 PlatConnMgrEx 的 bug 优化。 +3 杩炴帴绠$悊绫 PlatConnMgrEx 鐨 bug 浼樺寲銆 v3.2d209 2013-09 -1 链接管理类增加新的函数exec_multi_query支持select返回多个结果集 +1 閾炬帴绠$悊绫诲鍔犳柊鐨勫嚱鏁癳xec_multi_query鏀寔select杩斿洖澶氫釜缁撴灉闆 -2 调整新建连接socket读写buffer大小为2*MAX_INNER_MSG_LEN +2 璋冩暣鏂板缓杩炴帴socket璇诲啓buffer澶у皬涓2*MAX_INNER_MSG_LEN -3 IBCMgrSvc批处理内部数据结构增加存储子任务结果的list字段;修改最终返回结果拼接方式,优先处理list字段; +3 IBCMgrSvc鎵瑰鐞嗗唴閮ㄦ暟鎹粨鏋勫鍔犲瓨鍌ㄥ瓙浠诲姟缁撴灉鐨刲ist瀛楁锛涗慨鏀规渶缁堣繑鍥炵粨鏋滄嫾鎺ユ柟寮忥紝浼樺厛澶勭悊list瀛楁锛 v3.2d208 2013-08 -1 连接管理类支持从db中加载server ip配置, 方便运维增加或下架机器. +1 杩炴帴绠$悊绫绘敮鎸佷粠db涓姞杞絪erver ip閰嶇疆, 鏂逛究杩愮淮澧炲姞鎴栦笅鏋舵満鍣. - server ip配置会保存到common节下svrs_file指定的文件中, 若找不到该配置, 默认保存到cfg/svrlist.ini文件中. + server ip閰嶇疆浼氫繚瀛樺埌common鑺備笅svrs_file鎸囧畾鐨勬枃浠朵腑, 鑻ユ壘涓嶅埌璇ラ厤缃, 榛樿淇濆瓨鍒癱fg/svrlist.ini鏂囦欢涓. -2 增加定时器的支持 开发者只需要重新实现 IsgwOperBase::time_out() 函数即可 +2 澧炲姞瀹氭椂鍣ㄧ殑鏀寔 寮鍙戣呭彧闇瑕侀噸鏂板疄鐜 IsgwOperBase::time_out() 鍑芥暟鍗冲彲 - 配置项为 + 閰嶇疆椤逛负 - # 信号处理和定时器的 handle + # 淇″彿澶勭悊鍜屽畾鏃跺櫒鐨 handle [handle] - # 是否使用定时器 0 不使用 默认值 1 使用 + # 鏄惁浣跨敤瀹氭椂鍣 0 涓嶄娇鐢 榛樿鍊 1 浣跨敤 timer = 0 - # 定时器间隔 单位 微秒 + # 瀹氭椂鍣ㄩ棿闅 鍗曚綅 寰 interval = 1000000 -3 实现了内部指令 CMD_SYS_LOAD_CONF = 10 //重新加载配置信息 +3 瀹炵幇浜嗗唴閮ㄦ寚浠 CMD_SYS_LOAD_CONF = 10 //閲嶆柊鍔犺浇閰嶇疆淇℃伅 v3.2d207 2013-05 -1 修复数据库连接的bug +1 淇鏁版嵁搴撹繛鎺ョ殑bug -2 扩大了ip和host结构长度,支持域名访问 +2 鎵╁ぇ浜唅p鍜宧ost缁撴瀯闀垮害锛屾敮鎸佸煙鍚嶈闂 -3 优化udp的协议处理,避免协议异常的问题 +3 浼樺寲udp鐨勫崗璁鐞嗭紝閬垮厤鍗忚寮傚父鐨勯棶棰 -4 增加两个统计项,方便定位连接资源使用的问题 +4 澧炲姞涓や釜缁熻椤癸紝鏂逛究瀹氫綅杩炴帴璧勬簮浣跨敤鐨勯棶棰 - STAT_CODE_DB_CONN_RUNOUT = 20259, //当前没有可用的DB连接 + STAT_CODE_DB_CONN_RUNOUT = 20259, //褰撳墠娌℃湁鍙敤鐨凞B杩炴帴 - STAT_CODE_TCP_CONN_RUNOUT = 20260, //当前没有可用的tcp连接 + STAT_CODE_TCP_CONN_RUNOUT = 20260, //褰撳墠娌℃湁鍙敤鐨則cp杩炴帴 -5 easyace/sys_comm.h 增加一些新的字符串解析函数 +5 easyace/sys_comm.h 澧炲姞涓浜涙柊鐨勫瓧绗︿覆瑙f瀽鍑芥暟 -6 优化部分日志 +6 浼樺寲閮ㄥ垎鏃ュ織 v3.2d206 2012-10 -1 优化udp协议支持,解决在大并发量情况下可能出现的句柄问题 +1 浼樺寲udp鍗忚鏀寔锛岃В鍐冲湪澶у苟鍙戦噺鎯呭喌涓嬪彲鑳藉嚭鐜扮殑鍙ユ焺闂 -2 优化代码,去掉部分snprintf前的多余memset操作 +2 浼樺寲浠g爜锛屽幓鎺夐儴鍒唖nprintf鍓嶇殑澶氫綑memset鎿嶄綔 v3.2d205 2012-09 -1 去掉ace5.4及更早版本的makefile支持 只支持5.6之后的ace版本 +1 鍘绘帀ace5.4鍙婃洿鏃╃増鏈殑makefile鏀寔 鍙敮鎸5.6涔嬪悗鐨刟ce鐗堟湰 -2 增加 comm/isgw_task_base.h 的 IsgwTaskBase 类 支持独立线程组 +2 澧炲姞 comm/isgw_task_base.h 鐨 IsgwTaskBase 绫 鏀寔鐙珛绾跨▼缁 v3.2d204 2012-09 -1 ibc 模块支持int IBCOperBase::end(IBCRValue& rvalue) 回调函数 +1 ibc 妯″潡鏀寔int IBCOperBase::end(IBCRValue& rvalue) 鍥炶皟鍑芥暟 -2 SysConf 支持加载多个配置文件 +2 SysConf 鏀寔鍔犺浇澶氫釜閰嶇疆鏂囦欢 -3 统计模块初始化提前到工作线程池(ISGWMgrSvc)初始化之前 +3 缁熻妯″潡鍒濆鍖栨彁鍓嶅埌宸ヤ綔绾跨▼姹(ISGWMgrSvc)鍒濆鍖栦箣鍓 - 防止出现在ISGWMgrSvc初始化中使用到连接管理类(PlatConnMgrEx), 然后该类默认初始化统计文件为".stat"的情况. + 闃叉鍑虹幇鍦↖SGWMgrSvc鍒濆鍖栦腑浣跨敤鍒拌繛鎺ョ鐞嗙被(PlatConnMgrEx), 鐒跺悗璇ョ被榛樿鍒濆鍖栫粺璁℃枃浠朵负".stat"鐨勬儏鍐. v3.2d203 2012-05 -1 支持tlinux下的编译 +1 鏀寔tlinux涓嬬殑缂栬瘧 -2 数据库连接管理支持存储过程 +2 鏁版嵁搴撹繛鎺ョ鐞嗘敮鎸佸瓨鍌ㄨ繃绋 -3 安全退出功能支持 +3 瀹夊叏閫鍑哄姛鑳芥敮鎸 v3.2d202 2011-09 -1 支持消息单纯的路由转发功能(可配置) +1 鏀寔娑堟伅鍗曠函鐨勮矾鐢辫浆鍙戝姛鑳(鍙厤缃) -2 解决部分bug,去掉多余的工作线程锁等 +2 瑙e喅閮ㄥ垎bug锛屽幓鎺夊浣欑殑宸ヤ綔绾跨▼閿佺瓑 v3.2d201 2011-02 -1 支持21亿以上号码 +1 鏀寔21浜夸互涓婂彿鐮 -2 优化连接管理 +2 浼樺寲杩炴帴绠$悊 -3 动态加载配置抽象接口 +3 鍔ㄦ佸姞杞介厤缃娊璞℃帴鍙 -4 ACK 定时器时间可配置 +4 ACK 瀹氭椂鍣ㄦ椂闂村彲閰嶇疆 v3.2d200 2010-12 -1 增加流量控制 +1 澧炲姞娴侀噺鎺у埗 -2 和外部的接口优化为IsgwOperBase和IsgwOperBase* factory_method(){…} +2 鍜屽閮ㄧ殑鎺ュ彛浼樺寲涓篒sgwOperBase鍜孖sgwOperBase* factory_method(){鈥 v3.2d102 2010-10 -1 增加工作线程放入响应模块队列超过(相对)的统计项 +1 澧炲姞宸ヤ綔绾跨▼鏀惧叆鍝嶅簲妯″潡闃熷垪瓒呰繃(鐩稿)鐨勭粺璁¢」 STAT_CODE_PUT_ACK_TOOLATE = 20232, // -2 支持 ISGWCIntf 的队列大小可配置 +2 鏀寔 ISGWCIntf 鐨勯槦鍒楀ぇ灏忓彲閰嶇疆 [isgw_cintf] - # 单位字节 + # 鍗曚綅瀛楄妭 quesize = 10485760 -3 调整系统的一些默认配置 +3 璋冩暣绯荤粺鐨勪竴浜涢粯璁ら厤缃 - 超时时间 连接数等 + 瓒呮椂鏃堕棿 杩炴帴鏁扮瓑 v3.2d101 2010-09-06 -1 支持 服务器启动时 自动获取本机 ip 进行监听 (同时支持udp协议) +1 鏀寔 鏈嶅姟鍣ㄥ惎鍔ㄦ椂 鑷姩鑾峰彇鏈満 ip 杩涜鐩戝惉 (鍚屾椂鏀寔udp鍗忚) - 优先获取系统的配置,获取配置失败才获取本机 eth1 的ip + 浼樺厛鑾峰彇绯荤粺鐨勯厤缃紝鑾峰彇閰嶇疆澶辫触鎵嶈幏鍙栨湰鏈 eth1 鐨刬p [system] ip = 172.25.40.94 -2 优化 *intf* 接口处理部分的日志内容(ip) 方便问题定位 +2 浼樺寲 *intf* 鎺ュ彛澶勭悊閮ㄥ垎鐨勬棩蹇楀唴瀹(ip) 鏂逛究闂瀹氫綅 v3.2d100 2010-08-25 -1 支持异步连接处理 +1 鏀寔寮傛杩炴帴澶勭悊 - 增加了 PlatConnMgrAsy 异步连接管理类 使用方式保持跟之前类似 + 澧炲姞浜 PlatConnMgrAsy 寮傛杩炴帴绠$悊绫 浣跨敤鏂瑰紡淇濇寔璺熶箣鍓嶇被浼 - 增加了 ISGWCIntf 处理后端的异步连接响应 + 澧炲姞浜 ISGWCIntf 澶勭悊鍚庣鐨勫紓姝ヨ繛鎺ュ搷搴 - 增加了 异常统计项 STAT_CODE_ISGWC_ENQUEUE = 20261 // isgwcintf 模块入自身消息队列失败 + 澧炲姞浜 寮傚父缁熻椤 STAT_CODE_ISGWC_ENQUEUE = 20261 // isgwcintf 妯″潡鍏ヨ嚜韬秷鎭槦鍒楀け璐 -2 修复了一个 mysql db 连接默认多结果集的 bug +2 淇浜嗕竴涓 mysql db 杩炴帴榛樿澶氱粨鏋滈泦鐨 bug -3 ISGWAck 使用新的 send_n 发送方式 不使用 ACE_Message_Block +3 ISGWAck 浣跨敤鏂扮殑 send_n 鍙戦佹柟寮 涓嶄娇鐢 ACE_Message_Block -4 增加了 ISGWAck 回送消息的各种异常统计 +4 澧炲姞浜 ISGWAck 鍥為佹秷鎭殑鍚勭寮傚父缁熻 - STAT_CODE_ACK_DISCONN = 20252, // 回送消息时对端关闭 + STAT_CODE_ACK_DISCONN = 20252, // 鍥為佹秷鎭椂瀵圭鍏抽棴 - STAT_CODE_ACK_BLOCK = 20253, // 回送消息时对端阻塞 + STAT_CODE_ACK_BLOCK = 20253, // 鍥為佹秷鎭椂瀵圭闃诲 - STAT_CODE_ACK_ABNOR = 20254, // 回送消息时异常 + STAT_CODE_ACK_ABNOR = 20254, // 鍥為佹秷鎭椂寮傚父 - STAT_CODE_ACK_UNCOMP = 20255, // 回送消息时不完全 + STAT_CODE_ACK_UNCOMP = 20255, // 鍥為佹秷鎭椂涓嶅畬鍏 -5 修复了框架可能内存泄漏的问题(ACE_Reactor_Notification_Strategy 的问题) +5 淇浜嗘鏋跺彲鑳藉唴瀛樻硠婕忕殑闂(ACE_Reactor_Notification_Strategy 鐨勯棶棰) v3.1d204 2010-08-02 -1 去掉 PlatConnMgr 类 使用 PlatConnMgrEx 替代 并进行了优化 +1 鍘绘帀 PlatConnMgr 绫 浣跨敤 PlatConnMgrEx 鏇夸唬 骞惰繘琛屼簡浼樺寲 -2 调整 QModeMsg::get_result(...) 的实现,如果协议内容字段不存在则返回这个值 +2 璋冩暣 QModeMsg::get_result(...) 鐨勫疄鐜帮紝濡傛灉鍗忚鍐呭瀛楁涓嶅瓨鍦ㄥ垯杩斿洖杩欎釜鍊 ERROR_NO_FIELD = -123456789 @@ -344,9 +346,9 @@ v3.1d204 2010-08-02 v3.1d203 2010-07-20 -1 无符号 uin 支持 +1 鏃犵鍙 uin 鏀寔 -2 IBCMgrSvc 结果集的数量可配置 +2 IBCMgrSvc 缁撴灉闆嗙殑鏁伴噺鍙厤缃 [ibc_mgr_svc] @@ -356,31 +358,31 @@ v3.1d203 2010-07-20 v3.1d202 2010-05-20 -1 统一通过 stat 模块进行统计,统计项的分配如下: +1 缁熶竴閫氳繃 stat 妯″潡杩涜缁熻锛岀粺璁¢」鐨勫垎閰嶅涓嬶細 - 1-10000 为对应的指令操作返回结果为0(即成功)的统计量 + 1-10000 涓哄搴旂殑鎸囦护鎿嶄綔杩斿洖缁撴灉涓0锛堝嵆鎴愬姛锛夌殑缁熻閲 - 10001-10240 可以留给业务自定义的统计项(正常异常都行) + 10001-10240 鍙互鐣欑粰涓氬姟鑷畾涔夌殑缁熻椤癸紙姝e父寮傚父閮借锛 - 10241-20240 为对应的指令操作返回结果不为0(即失败)的统计量,规则为 cmd+10240(偏移量) + 10241-20240 涓哄搴旂殑鎸囦护鎿嶄綔杩斿洖缁撴灉涓嶄负0锛堝嵆澶辫触锛夌殑缁熻閲忥紝瑙勫垯涓 cmd+10240锛堝亸绉婚噺锛 - 20241 - 20480 为框架内部的异常统计项段 + 20241 - 20480 涓烘鏋跺唴閮ㄧ殑寮傚父缁熻椤规 -2 Qmode 类增加获取 cmd 和 uin 的接口(cmd和uin从消息体中解析获得) +2 Qmode 绫诲鍔犺幏鍙 cmd 鍜 uin 鐨勬帴鍙(cmd鍜寀in浠庢秷鎭綋涓В鏋愯幏寰) v3.1d201 2010-05-12 -1 增加 PlatConnMgrEx 类 支持以下特性 (总连接数 = ip数量 * 每个ip的连接数) +1 澧炲姞 PlatConnMgrEx 绫 鏀寔浠ヤ笅鐗规 (鎬昏繛鎺ユ暟 = ip鏁伴噺 * 姣忎釜ip鐨勮繛鎺ユ暟) - a 支持多个ip配置 + a 鏀寔澶氫釜ip閰嶇疆 - b 并根据传入的 uin 均匀分配 或者 随机路由(不传uin) + b 骞舵牴鎹紶鍏ョ殑 uin 鍧囧寑鍒嗛厤 鎴栬 闅忔満璺敱(涓嶄紶uin) - c 如果某个ip有问题,则使用他它的下一个ip的连接 + c 濡傛灉鏌愪釜ip鏈夐棶棰橈紝鍒欎娇鐢ㄤ粬瀹冪殑涓嬩竴涓猧p鐨勮繛鎺 - 配置方式,在 svr 的配置段下面配置如下 : + 閰嶇疆鏂瑰紡锛屽湪 svr 鐨勯厤缃涓嬮潰閰嶇疆濡備笅 : ip_num = 2 @@ -388,33 +390,33 @@ v3.1d201 2010-05-12 ip_1 = 172.16.197.19 -2 前端请求过大,导致后台无法处理的时候主动断开连接,减少连接的资源占用时间,起到过载保护作用 +2 鍓嶇璇锋眰杩囧ぇ锛屽鑷村悗鍙版棤娉曞鐞嗙殑鏃跺欎富鍔ㄦ柇寮杩炴帴锛屽噺灏戣繛鎺ョ殑璧勬簮鍗犵敤鏃堕棿锛岃捣鍒拌繃杞戒繚鎶や綔鐢 v3.1d200 2010-04-30 -1 ISGWMgrSvc 增加超时判断 可以通过以下配置选项进行设置 +1 ISGWMgrSvc 澧炲姞瓒呮椂鍒ゆ柇 鍙互閫氳繃浠ヤ笅閰嶇疆閫夐」杩涜璁剧疆 [isgw_mgr_svc] -# 默认超时不丢弃 +# 榛樿瓒呮椂涓嶄涪寮 discard_flag = 0 -# 默认的超时时间 10 S +# 榛樿鐨勮秴鏃舵椂闂 10 S discard_time = 10 -2 支持动态库加载,试用版本,编译时需要使用 -DISGW_USE_DLL 开关,并定义 ISGW_USE_DLL=1 +2 鏀寔鍔ㄦ佸簱鍔犺浇锛岃瘯鐢ㄧ増鏈紝缂栬瘧鏃堕渶瑕佷娇鐢 -DISGW_USE_DLL 寮鍏筹紝骞跺畾涔 ISGW_USE_DLL=1 -并且配置文件进行如下配置 +骞朵笖閰嶇疆鏂囦欢杩涜濡備笅閰嶇疆 [isgw_mgr_svc] -# 指定动态库的名称 +# 鎸囧畾鍔ㄦ佸簱鐨勫悕绉 dllname = oper @@ -422,95 +424,95 @@ dllname = oper v3.1r100 2010-04-15 -1 PlatConnMgr send.. 增加重发机制 避免存在连接被防火墙等断开的情况 +1 PlatConnMgr send.. 澧炲姞閲嶅彂鏈哄埗 閬垮厤瀛樺湪杩炴帴琚槻鐏绛夋柇寮鐨勬儏鍐 -2 QModeMsg 协议(构造函数)增加时间字段 通过 get_time() 函数获取 +2 QModeMsg 鍗忚锛堟瀯閫犲嚱鏁帮級澧炲姞鏃堕棿瀛楁 閫氳繃 get_time() 鍑芥暟鑾峰彇 -v3.0r100 正式版本 2010-03-24 +v3.0r100 姝e紡鐗堟湰 2010-03-24 -1 增加了 ibc 模块的异常处理 日志信息等等 +1 澧炲姞浜 ibc 妯″潡鐨勫紓甯稿鐞 鏃ュ織淇℃伅绛夌瓑 -2 在好友和动态功能上验证试用过 +2 鍦ㄥソ鍙嬪拰鍔ㄦ佸姛鑳戒笂楠岃瘉璇曠敤杩 -3 如果需要使用 ibc 模块请使用 -DISGW_USE_IBC 编译,并 把配置文件开关设置为 ibc_svc_flag=1 +3 濡傛灉闇瑕佷娇鐢 ibc 妯″潡璇蜂娇鐢 -DISGW_USE_IBC 缂栬瘧锛屽苟 鎶婇厤缃枃浠跺紑鍏宠缃负 ibc_svc_flag=1 -v3.0d100 试用版本 2010-03-20 +v3.0d100 璇曠敤鐗堟湰 2010-03-20 -1 增加了ibc模块,可以支持批量处理功能,比较适合于好友关系链等需要批量操作的数据查询功能 +1 澧炲姞浜唅bc妯″潡锛屽彲浠ユ敮鎸佹壒閲忓鐞嗗姛鑳斤紝姣旇緝閫傚悎浜庡ソ鍙嬪叧绯婚摼绛夐渶瑕佹壒閲忔搷浣滅殑鏁版嵁鏌ヨ鍔熻兘 -2 优化了部分代码,比如 减少 strncpy 使用 +2 浼樺寲浜嗛儴鍒嗕唬鐮侊紝姣斿 鍑忓皯 strncpy 浣跨敤 v2.0d210 2010-03-09 -1 支持透传 _prot 可以支持多种协议的异步模式 +1 鏀寔閫忎紶 _prot 鍙互鏀寔澶氱鍗忚鐨勫紓姝ユā寮 v2.0d200 2010-03-03 -1 支持透传 _sockfd _sock_seq _msg_seq 可以用来支持前端的异步模式调用 +1 鏀寔閫忎紶 _sockfd _sock_seq _msg_seq 鍙互鐢ㄦ潵鏀寔鍓嶇鐨勫紓姝ユā寮忚皟鐢 v2.0d101 2010-03-02 -1 调整ISGWUIntf,ISGWIntf,ISGWAck的相关日志,保持intf和ack模块日志格式和字段名称的一直性 +1 璋冩暣ISGWUIntf,ISGWIntf,ISGWAck鐨勭浉鍏虫棩蹇楋紝淇濇寔intf鍜宎ck妯″潡鏃ュ織鏍煎紡鍜屽瓧娈靛悕绉扮殑涓鐩存 -2 修复 PlatConnMgr 可能有之前遗留的垃圾数据的问题 +2 淇 PlatConnMgr 鍙兘鏈変箣鍓嶉仐鐣欑殑鍨冨溇鏁版嵁鐨勯棶棰 -3 增加 PlatConnMgr 里面的 send_recv_ex 扩展接口 +3 澧炲姞 PlatConnMgr 閲岄潰鐨 send_recv_ex 鎵╁睍鎺ュ彛 v2.0d100 2010-01-29 -1 增加回送消息的定时器触发机制,避免 notify 可能失效的情况 +1 澧炲姞鍥為佹秷鎭殑瀹氭椂鍣ㄨЕ鍙戞満鍒讹紝閬垮厤 notify 鍙兘澶辨晥鐨勬儏鍐 -2 对系统的性能和稳定性有很大的优化 +2 瀵圭郴缁熺殑鎬ц兘鍜岀ǔ瀹氭ф湁寰堝ぇ鐨勪紭鍖 v1.6d107 2010-01-25 -1 优化对象池回收机制,尽早进行对象回收,不等到网络数据发送完成, +1 浼樺寲瀵硅薄姹犲洖鏀舵満鍒讹紝灏芥棭杩涜瀵硅薄鍥炴敹锛屼笉绛夊埌缃戠粶鏁版嵁鍙戦佸畬鎴愶紝 - 尽早减少内存占用,能减少 "dequeue failed" 出现的次数 + 灏芥棭鍑忓皯鍐呭瓨鍗犵敤锛岃兘鍑忓皯 "dequeue failed" 鍑虹幇鐨勬鏁 v1.6d106 2010-01-23 -1 对象池的返回bug处理:请求和响应对象池资源耗尽之后,动态分配内存的对象把内存占尽之后进行异常处理,避免进程异常退出 +1 瀵硅薄姹犵殑杩斿洖bug澶勭悊锛氳姹傚拰鍝嶅簲瀵硅薄姹犺祫婧愯楀敖涔嬪悗锛屽姩鎬佸垎閰嶅唴瀛樼殑瀵硅薄鎶婂唴瀛樺崰灏戒箣鍚庤繘琛屽紓甯稿鐞嗭紝閬垮厤杩涚▼寮傚父閫鍑 -2 AceSockHdrBase 回送消息加上超时机制,避免消息对象被长时间占用不释放 +2 AceSockHdrBase 鍥為佹秷鎭姞涓婅秴鏃舵満鍒讹紝閬垮厤娑堟伅瀵硅薄琚暱鏃堕棿鍗犵敤涓嶉噴鏀 -3 加入 Stat 类(stat.cpp stat.h) 方便系统按业务或者指令做流量统计,并输出到外部 映射的内存文件中 +3 鍔犲叆 Stat 绫(stat.cpp stat.h) 鏂逛究绯荤粺鎸変笟鍔℃垨鑰呮寚浠ゅ仛娴侀噺缁熻锛屽苟杈撳嚭鍒板閮 鏄犲皠鐨勫唴瀛樻枃浠朵腑 v1.6d105 2009-12-29 -1 mysql数据库连接管理类和网络连接管理类增加连接策略机制,连接策略功能如下: +1 mysql鏁版嵁搴撹繛鎺ョ鐞嗙被鍜岀綉缁滆繛鎺ョ鐞嗙被澧炲姞杩炴帴绛栫暐鏈哄埗锛岃繛鎺ョ瓥鐣ュ姛鑳藉涓嬶細 - 每个连接管理的配置段支持配置以下参数 + 姣忎釜杩炴帴绠$悊鐨勯厤缃鏀寔閰嶇疆浠ヤ笅鍙傛暟 - use_strategy = 1 # 是否使用连接策略,不配置默认不使用 + use_strategy = 1 # 鏄惁浣跨敤杩炴帴绛栫暐锛屼笉閰嶇疆榛樿涓嶄娇鐢 - max_fail_times = 3 # 最大允许的连续失败次数,超过则发到这个连接上的消息自动告知发送失败,不会尝试发送,直到超过重连间隔 + max_fail_times = 3 # 鏈澶у厑璁哥殑杩炵画澶辫触娆℃暟锛岃秴杩囧垯鍙戝埌杩欎釜杩炴帴涓婄殑娑堟伅鑷姩鍛婄煡鍙戦佸け璐ワ紝涓嶄細灏濊瘯鍙戦侊紝鐩村埌瓒呰繃閲嶈繛闂撮殧 - recon_interval = 20 # 重连间隔,单位 s + recon_interval = 20 # 閲嶈繛闂撮殧锛屽崟浣 s v1.6d104 2009-12-07 -1 对接收和发送消息模块的日志进行了细分,可以通过 log_mask 字段的 -p~NOTICE 或者 -pNOTICE 进行关闭或者开通,涉及到的日志有 +1 瀵规帴鏀跺拰鍙戦佹秷鎭ā鍧楃殑鏃ュ織杩涜浜嗙粏鍒嗭紝鍙互閫氳繃 log_mask 瀛楁鐨 -p~NOTICE 鎴栬 -pNOTICE 杩涜鍏抽棴鎴栬呭紑閫氾紝娑夊強鍒扮殑鏃ュ織鏈 1 ISGWIntf putq msg to ISGWMgrSvc ... @@ -524,37 +526,37 @@ v1.6d104 2009-12-07 v1.6d103 2009-11-20 -1 对 PlatConnMgr 类进行优化 +1 瀵 PlatConnMgr 绫昏繘琛屼紭鍖 - 1 增加备机连接功能,每个连接管理器,支持配置备用 ip + 1 澧炲姞澶囨満杩炴帴鍔熻兘锛屾瘡涓繛鎺ョ鐞嗗櫒锛屾敮鎸侀厤缃鐢 ip - 2 优化代码直接把ip和端口信息读入类的成员变量 + 2 浼樺寲浠g爜鐩存帴鎶奿p鍜岀鍙d俊鎭鍏ョ被鐨勬垚鍛樺彉閲 - 3 优化连接池管理,支持线程和连接不绑定,而是查找空闲的连接,解决suse版本的问题 + 3 浼樺寲杩炴帴姹犵鐞嗭紝鏀寔绾跨▼鍜岃繛鎺ヤ笉缁戝畾锛岃屾槸鏌ユ壘绌洪棽鐨勮繛鎺ワ紝瑙e喅suse鐗堟湰鐨勯棶棰 - 4 增加send_recv接口,避免同步模式中单独的recv使用导致连接使用错乱的问题 + 4 澧炲姞send_recv鎺ュ彛锛岄伩鍏嶅悓姝ユā寮忎腑鍗曠嫭鐨剅ecv浣跨敤瀵艰嚧杩炴帴浣跨敤閿欎贡鐨勯棶棰 v1.6d102 2009-11-06 -1 修改 PlatDbAccess 类,连接池模式支持两种模式: +1 淇敼 PlatDbAccess 绫伙紝杩炴帴姹犳ā寮忔敮鎸佷袱绉嶆ā寮忥細 - 1 连接和线程绑定 通过 THREAD_BIND_CONN 控制 + 1 杩炴帴鍜岀嚎绋嬬粦瀹 閫氳繃 THREAD_BIND_CONN 鎺у埗 - 2 连接池在线程间共享 默认情况 + 2 杩炴帴姹犲湪绾跨▼闂村叡浜 榛樿鎯呭喌 -2 修改 PlatDbAccess 类的 exec_query 和 exec_update 接口 返回 mysql 的内部错误码 +2 淇敼 PlatDbAccess 绫荤殑 exec_query 鍜 exec_update 鎺ュ彛 杩斿洖 mysql 鐨勫唴閮ㄩ敊璇爜 v1.6d101 2009-08-25 -1 加入版本说明文件,具体框架的介绍请参考 《商城svr框架设计和使用说明书.doc》 +1 鍔犲叆鐗堟湰璇存槑鏂囦欢锛屽叿浣撴鏋剁殑浠嬬粛璇峰弬鑰 銆婂晢鍩巗vr妗嗘灦璁捐鍜屼娇鐢ㄨ鏄庝功.doc銆 -打包命令 : +鎵撳寘鍛戒护 : tar -czvf isgw_v3.3d502.tar.gz isgw