spring web thrift 项目搭建开发过程中遇到的问题总结

领导需要做一个大数据采集功能,使用thrift RPC 架构进行跨语言通信,先期只做服务端的接收报文,然后发往下游kafka,

因为考虑到需要附加控制模块,告警模块功能,综合考虑搭建一个web工程。

1、技术调研阶段写了个thrift server端,模拟客户端发送报文,压力测试,单机tps能达到一万三

2、既然要放到web工程中,需要将thrift 集成到spring中,这里我直接用spring配置中初始化方法init-method加载启动thrift server(后来遇到个问题,thirft server 是线程堵塞的,主线程启动会影响web服务的启动,所以init方法中单独开启了一个线程来启动),初始化消费线程一定要放在server.serve()方法之前执行,因为thrift server开启时时阻塞其他线程的运行(其实运行起来后面就不会影响了)

这也导致了我的习惯性思维认为后面出现的问题:队列消费线程不起效果,一直以为是thrift server 开启堵塞后面所有的线程运行,纠结了很久,后来找到了原因(队列是全局变量,中间有new了一个新对象,导致新队列一直没有数据,所以不会进行消费逻辑)

3、由于公司有很多环境,为了避免配置文件来回切换,需要在pom.xml中加配置来根据不同的环境打不同的包,但log4j是不用替换的,下图画红线部分忘记加了,导致编译的时候target下没有生成log4j文件,所以一直打不了日志,这边踩了一个坑!

4、报文收发解析功能写完后,本地启tomcat测试没问题,由于公司服务器用的jboss,所以开始用jboss启动测试,第一次用jboss启动过程中遇到很多问题:

一、jboss启动直接报错,

显示我的spring配置文件无法实例化加载bean,百度很多jboss相关的信息太少了,

后来无意中发现一条帖子,tomcat项目迁移到jboss后出现的问题,豁然开朗,又踩了两个坑:

jboss启动,web.xml加载spring配置文件需要绝对名称,不能:spring-*.xml,读取properties配置文件jboss启动识别

不了getClassLoader().getResource,要换通用方法

二、终于解决可以正常启动了,但是jboss控制台不打印详细日志,这可咋办嘞?查了相关资料,

原因是JBoss WildFly 8 自带了日志功能,其中包含了log4j。

解决办法:

第一步:在standalone\configuration\standalone.xml 中找到如下配置信息

<profile>
        <subsystem xmlns="urn:jboss:domain:logging:2.0">
            <console-handler name="CONSOLE">
                <level name="INFO"/>
                <formatter>
                    <named-formatter name="COLOR-PATTERN"/>
                </formatter>
            </console-handler>

在<subsystem xmlns="urn:jboss:domain:logging:2.0">下面添加 <use-deployment-logging-config value="false"/>

第二步:在Web应用下添加WEB-INF/classes/jboss-deployment-structure.xml 部署文件,内容如下

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure
    xmlns="urn:jboss:deployment-structure:1.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <deployment>
        <exclusions>
            <module name="org.apache.log4j"></module>
        </exclusions>
    </deployment>
</jboss-deployment-structure>

重新启动JBoss WildFly 8,日志按WEB-INF/classes/log4j.properties 中自定义的格式输出了。

接着控制台打印信息中文乱码了,参考别人博客成功解决:

https://blog.csdn.net/nan_cheung/article/details/79337273

三、终于没问题了,开心的发布,本地发报文,kafka发送失败,拿别人的工具类单发居然成功,肯定是我的topic,key,msg三个参数有问题,debug一下...饿的各神啊...真想打死自己,配置文件居然多了个双引号。就此问题全部解决,感觉有点累,晚上不想加班,下班就跑路...

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值