原文:Netty框架问题记录1--多线程下批量发送消息导致消息被覆盖

业务背景 项目是基于Netty实现的实时课堂项目,课堂中老师需要对试卷进行讲解,则老师向服务器发送一个打开试卷信息的请求,服务器获取试卷信息,将试卷信息发送给所有的客户端 学生和老师 。 发送给学生的时候需要在试卷信息中加上本人得分的信息。 实现方式大致如下: 结果:学生A收到的得分是学生B的得分,也就是发送给clientA的paper数据被发送给clientB的paper数据给覆盖了,因为pap ...

2019-07-29 18:12 4 670 推荐指数:

查看详情

如何解决netty发送消息截断问题

   在netty开发过程中我遇到过长的消息被分割成多个小消息问题。如下图所示: 其实这两条消息应该是一条消息,它们两个才是一个完整的json字符串。查看代码原来是客户端与服务器端都没有考虑TCP粘包与拆包机制。业界主流的解决方案包括 ...

Tue Dec 01 02:16:00 CST 2015 0 4061
Java使用多线程发送消息

  在后台管理用户信息的时候,经常会用到批量发送提醒消息,首先想到的有: (1)、循环发送列表,逐条发送。优点是:简单,如果发送列表很少,而且没有什么耗时的操作,是比较好的一种选择,缺点是:针对大批量发送列表,不可取,耗时,程序会出现严重的阻塞问题。 (2)、使用队列 ...

Wed Oct 28 00:24:00 CST 2015 0 10104
ActiveMQ实例1--简单的发送和接收消息

一、环境准备 1,官网http://activemq.apache.org/下载最新版本的ActiveMQ,并解压 2,打开对应的目录,在Mac环境,一般可以运行命令:   cd /Users/***/Downloads/apache-activemq-***/bin/macosx ...

Wed Jun 08 04:27:00 CST 2016 0 1983
C++多线程框架--------- 消息队列

之前,多线程一些基本的东西,包括线程创建,互斥锁,信号量,我们都已经封装,下面来看看消息队列 我们尽量少用系统自带的消息队列(比如Linux的sys/msgqueue),那样移植性不是很强,我们希望的消息队列,在消息打包和提取都是用的标准的C++数据结构,当然,你也可以用 ...

Tue Dec 26 21:41:00 CST 2017 0 3305
基于Netty的程序主动发送消息

开发中希望基于netty开发的客户端可以既能在启动时与服务器通讯,又能在指定时间点或事件与服务器通讯,比如主动发送注销信息。 1. 在启动时与服务器通讯可以在ChannelHandler的channleActive方法中实现。当客户端与服务端TCP链路建立成功时,Netty的NIO线程会调 ...

Thu Oct 15 05:29:00 CST 2020 0 2425
Netty——发送消息流程&高低水位

相关概念 SO_SEND_BUF和SO_REC_BUFF SO_SEND_BUF是操作系统内核的写缓冲区,所有应用程序需要发送到对端的信息,都会放到该缓冲区中,等待发往对端 SO_REC_BUFF是操作系统内核的读缓冲区,所有对端发过来的数据都会放到该缓冲区中,等待应用程序取走 ...

Sun May 23 02:50:00 CST 2021 0 204
Java多线程分批发送消息的小例子

需求: 假设有10万个用户,现在节假日做活动,需要给每个用户发送一条活动短信,为了提高程序的效率,建议使用多线程分批发送. 这里值得注意的是: 每开一个线程都会占用CPU的资源,所以线程根据所需要的条数来决定就好,避免浪费,我们用的是一个小例子,只是说明了多线程处理提高了效率 ...

Mon Sep 16 05:49:00 CST 2019 0 354
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM