当前位置: 首页 > Linux

项目小结

时间:2023-04-06 20:52:36 Linux

项目名称:后勤保障指挥系统项目部署环境:银河麒麟系统+myEclipse+mySql5.6+tomcat7+rabbitmq+基于ssm的公司框架+sip协议启动方式:Qigongsip服务器:cd/home/wisdom/build_mpms/bin,./start.sh脚本完全一键激活,第一次激活需要chmod+x+脚本/文件名授权。需要配置cd/home/wisdom/build_mpms/bin路径下的配置文件,把所有..log日志:tail-f/tmp/sc.log打开日志,里面有注册信息(绿色字体)。启动rabbitmq:cd/usr/local/rabbitmq-3.5.2/sbin,运行./rabbitmq-server-detachedps-ef|greprabbitmq查看是否有rabbitmq进程。启动mysql:cd/usr/local/mysql/bin,运行当前路径下的./mysqld_safe&文件,符号表示后台运行。启动服务:cd/usr/local/JavaApp/wd_msg_center/run./run.shdebugcd/usr/local/JavaApp/wd_mw_dal(数据访问)。./run.shdebugcd/usr/local/JavaApp/wd_svc_resource(source-dir)./run.shdebugcd/usr/local/JavaApp/wd_svc_authz(auth-service)./run.shdebugcd/usr/local/JavaApp/wd_svc_session(session-manager)./run.shdebugcd/usr/local/JavaApp/wd_agent_sip(sip-agent)./run.shdebugcd/usr/local/tomcat/bin在当前路径下运行./catalina.shrun这一段是用来调试的,实际部署时在后台启动即可。输入网址,http://+ip地址如果tomcat启动成功,可以看到登录界面,更改服务资源和当前服务节点(与你连接的服务器ip一致)如果一切顺利,安装技术支持终端和vs2015补丁即可登录,(windows10安装补丁错误导致我重装系统)注意银河麒麟桥接模式需要用户和服务器同频带连接。本人负责系统中的指挥业务模块,包括指挥组管理、命令调用、临时添加非指挥组成员(指挥过程中,下同)、命令组成员强制退出、命令提醒、暂停命令、专用命令、协作命令、授权命令、后继命令、越级命令、临时命令、呼叫组外人员、设置组播、访问视频等。先说说我个人认为的技术难点和“坑”:第一个难点在于对??业务流程的理解,比如接管指挥、授权指挥,因为指挥组的成员结构就是数据在我的缓存,所以业务发起后的成员结构是怎么组成的,需要慢慢理解(文档上的语言写的太过了,理解的时候半猜半懂,需要及时沟通)。了解业务后,你应该时刻考虑系统的状态,你的缓存变化,以及写入过程中接收或发送通知后的变化。任何更改都可能是您模块中的错误。如果你不考虑如果。例如,当一个成员被强制退出时,我们改变该成员的某个状态字段,而不是直接从缓存中删除该成员。因此,停止命令时,我们需要恢复原来的成员结构。需要在他的用户列表中查看他所在的原始命令组。这时候在判断的时候(我需要和数据库中原来的表进行对比来判断这个会员是增加了还是减少了),需要判断这个会员的状态。如果该状态是移除状态,需要重新把他放入一个集合中,通过处理判断当前用户是否是原命令组的成员。1.for(SimpleUsersimpleUser:members){//代表删除的会员状态if(!"2".equals(simpleUser.getBizStatus())){simpleIdList.add(simpleUser.getId());}2.//求差异集,这个不重要memberId:memberIdsByData){//在缓存中添加群组信息addGroupCache(memberId,groupWithMembers);}}simpleIdList.removeAll(changedIdList);if(simpleIdList.size()!=0){for(StringmemberId:simpleIdList){//删除本缓存组信息deleteGroupCache(memberId,directGroup.getId());}}维护缓存没有什么难度,但是逻辑一定要清晰,细节很重要,不然有的bug真的让人欣喜若狂,调试的时候叫个酸爽。。。有个坑就是我印象非常深刻,因为第三方测试忙了一晚上,系统服务已经部署到生产环境。大家都很紧张,但是我的业务(就是强退会员)实现不了,报了异常(json转换异常,很奇怪),但是我们跑的时候业务没有问题我们自测时的本地测试。接口没用,但是考虑到以后的扩展,没有注释掉,但是它的uri地址和强制退出会员接口的uri是一模一样的,所以我的强制退出会员接口在生产环境根本没有扫描到,并报告了异常。已经不奇怪了。我把那个扩展接口注释掉后,系统就正常了。下面说说本项目的动态信息同步和静态信息同步策略。先说动态信息同步。采用订阅-发布级联模型实现动态信息同步。在SIP标准规范中,PUBLISH和SUBSCRIBE/NOTIFY是两个不同的事务。在动态信息同步中,必须按照订阅-发布级联模型的时序图来实现。在使用PUBLISH事务之前需要SUBSCRIBE订阅。本项目中,第一次订阅的节点需要全量同步(NOTIFY和PUBLISH都是full),后续需要增量同步(NOTIFY和PUBLISH都是增量)。静态信息同步(路由信息同步)使用LDAP,即静态信息管理(LDAP)中的节点信息可以实现路由信息同步,生成全局路由表,支持更新。总之,这个项目比较大,很高兴能有这样的机会参与这样的项目。这个项目的技术并不新鲜,但是比较考验个人的基础知识和对细节的把握。对接程序让我对整个系统有了全面的了解,纠正了很多以前不规范的编程习惯。先写这么多,有补充的话会继续更新。

猜你喜欢