turn协议的工作原理

turn协议的工作原理,第1张

JavaBean在WEB编程中一直被当作模型层对象来使用,不存在作用范围的说法,它是MVC模式的M,使用JavaBean存放数据可以有效的避免频繁的将数据存入或取出某个作用范围。
例如:当我们需要将用户的注册信息通过请求转发传递到新的页面,如果不使用JavaBean我们就得频繁的将用户属性保存到request对象中,在下一个页面又需要一个一个从request对象中取出,这样做相当麻烦,使用JavaBean将用户属性全部封装在一个User对象中我们就可以只存取request对象一次就可以了。
JavaBean早期出现在Java的图形界面编程中(Swing),这也是Java最早开始使用MVC模式,在图形界面Swing编程中的JavaBean有四大属性(根据需要,不必同时存在),而现在WEB编程中我们只需要考虑其中的Simple属性和Index属性就可以了。
page内置对象是Object类的一个实例,它是处理当前请求的JSP页面实现类的实例。page对象在页面的正文中可以被比作是this关键字,它的作用范围仅限于当前page页面。实际开发过程中使用较少。
request内置对象是>队列的两种存储方式分为消息投递实时性:使用短轮询方式,实时性取决于轮询间隔时间:使用长轮询,同写入实时性一致,消息的写入延时通常在几个毫秒。总结:短轮询:周期性的向服务提供方发起请求,获取数据优点:前后端程序编写比较容易。缺点:请求中有大半是无用,难于维护,浪费带宽和服务器资源;响应的结果没有顺序(因为是异步请求,当发送的请求没有返回结果的时候,后面的请求又被发送。而此时如果后面的请求比前面的请 求要先返回结果,那么当前面的请求返回结果数据时已经是过时无效的数据了)。长轮询:客户端向服务器发送请求,服务器接到请求后保持住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。优点:在无消息的情况下不会频繁的请求,耗费资源小。缺点:服务器hold连接会消耗资源,难于管理维护。消费失败重试Kafka:消费失败不支持重试RocketMQ:消费失败支持定时重试,每次重试间隔时间顺延总结:kafka也可以通过编写代码来实现写入和消费失败的重试机制,这种要求需要用户来编写代码实现,kafka只是提供了这种方式,但并不是他推荐的使用方式,他的设计模式上只是兼顾了这种情况,并不是重点。RocketMQ在设计上就考虑了这种情况,在提供的官方api中提供了重试的设置,用户可以选择多种模式的重试机制,以及自定义的重试逻辑,简单场景下用户只用设置一下参数即可。关于需要重试的场景例如充值类应用,当前时刻调用运营商网关,充值失败,可能是对方压力过多,稍后在调用就会成功,如支付宝到银行扣款也是类似需求。这里的重试需要可靠的重试,即失败重试的消息不因为Consumer宕机导致丢失。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13070721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存