1、http协议通信
主要通过post,get方式提交,通信较耗时,至少几百毫秒,但是如果采用线程池做,在初次建立连接时,耗时,建立连接后,通信挺快的,十几毫秒可以搞定。httpClinet要使用4.5.7及以上,版本低的线程多了,容易把线程异常。很好用。从消息确认上,比tcp好用,http可以同步返回消息成功或失败,业务逻辑处理更简单。
2、tcp协议通信
tcp通信效率较高,主流框架使用较多的时netty框架,mina框架用的少了,netty框架主流的时4.*版本,5.*版本的不是很受欢迎。netty框架使用较多,非常优秀的,使用时,要注意消息的结束标识,和消息设定大小,否则可能消息部分缺失或收不到。
3、webservice通信
webservice使用的较少,通信写起来比较复杂,老系统还会用,主要写接口生成类时,对方接口必须时写好了,可以调用通,才可以在本地生成使用的类。也有优点,以前跨系统,跨语言的解决方案,现在很少用了。
4、mq通信
通过mq消息中间件,分成了消息的消费方和生产方,将二者解耦合,只要消息的报文内容格式没有变化,无论双方怎么变,都对对方没有影响,使用较多。