目录
最近在离职交接,发现了mr这个消息队列整理了这么多,也是需要在做个笔记了;
为什么用消息中间件呢,在我看来就是缓解请求压力的。
常规http或者socket请求,服务方收到请求后,新增一个线程或者使用已有的空闲的线程,就要开始使用服务器资源,开始请求消费了;
一旦tps骤增,服务器当前线程数不够用时,线程切换,共同进行使用服务器资源,竞争使用资源,高压力情况下使用,但是要注意的时,就算服务器能承受住,由于各请求,竞争使用线程,也会导致响应时间超长,或者超时,用户体验也不好。
而消息队列呢,请求进去后,因为是个队列,先进先出,所有的请求在里面排队,每个请求可以设置队列里面的等待时间(超出了就销毁请求);
而服务方可以以固定的速度从队列中获取请求,保证服务器入口的速度,讲到这里,就感觉和限流的一个策略类似了,
注:固定的速度从队列中获取请求:
例如服务器从消息队列里拿到一个请求后,消费完返回报文后,10ms后在拿下一个请求(拿不到就不消费)。
一:简单理解mr这个概念
mr我们的俗称,一般也可以吧他叫做深证通消息传递中间件,是一个程序,部署在服务器里,启动完成后,后续,你的Java服务可以从这个启动起来exe程序里,获取对应的请求信息;
据前辈说明,这个作为券商和银行的多数消息传递中间件,一个完整的请求流程,
券商端程序 --》券商mr -- >深证通中枢 --》服务费mr -->Java网关程序
注:不管是券商端程序还是java网关程序,都可以通过一系列api,接收mr里面的请求,往mr里发请求,以及检查当前连接是否正常,自动重连等操作;
深证通官网提供的文档,也有demo,观看怎么操作这些api
1.一份官方说明文档,讲究mr相关概念,安装、运维等
2.一份java api操作文档,以及一个简单的demo,其次官方有qq群,api操作有问题,也可以联系,真的挺方便的
安装完成后,
二:登录方式
远程桌面登录
例如,根据ip和用户名密码
录入,IP,账号密码,登录完成后,进去
三:目录结构
3.1bsmr:
ini文件时mr的配置
配置文件有相关备注,可以参考配置,也可以联系深证通技术老师支持一下;
log日志文件
bsmr时本地mr连接中枢以及相关定时检查的日志;
sxdata是,请求的相关日志,根据配置文件配置日志文件的翻新策略
3.2mxterm
下面的exe程序是客户端启动程序,不启动也不影响交易
四:启动、检查mr是否配置成功
4.1后台启动,
bsmr文件夹下,bsmr。exe程序启动即可,此程序和mr中枢进行连接
4.2客户端启动检查实时状态
mxterm目录下,点击exe程序
录入配置文件配置的账号密码,登录即可
4.3 实时检查mr状态;
也可以从bsmr日志检查mr连接,查看关键字即可,此处不扩展了;
a:客户端右上角,是否显示小账号并且显示已连接,
不是,则表明配置文件有问题
b:客户端左上角,检查本地mr和中枢是否连接正常,并且多台mr是否共享单元配置成功
红色,连接中枢失败
绿色,连接正常
白色,未启动或者启动失败
c:左下角,检查本地mr和客户端(券商端)mr是否连接正常
绿色:连接正常
白色:未连接
五:常规问题
5.1mr日志分析
例如,券商发往我们,mr会打印三行日志;查看关键字info
1.info=recv msg,save to local bug
表明,本地mr已经收到了对方券商的请求了;
2.info=recv away msg by linkid[89000000]
表明,此请求,已经被第三方服务(网关)取走了,89000000可查看客户端左上角,看看是哪个ip取走的请求
3.info = switch msg to su ok
表明,请求已经被我们消费好了,返回报文已经发送给中枢了
4.额外备注,如果请求超时或者请求没有被从队列中拿走,会有info=deleet销毁的日志
到时候根据,是到了哪个阶段,进行判断、解决即可