目录
1、在MyBatis中,当实体类中的属性名和表中的字段名不一样,除了( )都可以实现属性和数据的映射。
2、下列数组定义及赋值,错误的是( )
3、关于会话跟踪以下说法错误的( )
4、假设页面的form表单中有如下代码片断:
5、以下关于Servlet生命周期说法错误的是( )
6、延迟队列插件的名字叫做
7、在JavaScript中,代码: 5/2 结果是( )
8、分析下面的JavaScript代码段,输出的结果是( )let emp = new Array(5);emp[1]=1;emp[10]=2;console.log(emp.length);
9、下面哪一个是用来追加到指定元素的末尾的?( )
10、用于监听 DOM 事件的指令是( )
11、用new FileOutputStream(“data.txt”,true)创建一个FileOutputStream实例对象,则下面说法是正确的是( )。
12、下列关于SQL说法中不正确的是( )
13、关于Method中的invoke方法说法不正确的是( )
14、RabbitMQ没有采用以下哪项措施保证数据的可靠性()
15、下列哪些是RabbitMQ的特点( )
16、下面哪个Java语句声明了一个适合于创建50个字符串对象数组的变量?
17、下列哪些操作会使线程释放锁资源?
18、下列关于消息队列消息长度说法正确的是
19、rabbitMQ中的死信队列的应用场景?哪些消息会放到到死信队列中?
20、JWT 和 session 的区别是什么?
21、RabbitMQ如何保证消息可靠性
1、在MyBatis中,当实体类中的属性名和表中的字段名不一样,除了( )都可以实现属性和数据的映射。
2、下列数组定义及赋值,错误的是( )
3、关于会话跟踪以下说法错误的( )
4、假设页面的form表单中有如下代码片断:
<input type=”checkbox” value=”music” name=”interest”>音乐
<input type=”checkbox” value=”trip” name=”interest”>旅游
<input type=”checkbox” value=”game” name=”interest”>游戏
<input type=”checkbox” value=”sport” name=”interest”>运动
可以正确获取用户选择的值的选项是( )
5、以下关于Servlet生命周期说法错误的是( )
6、延迟队列插件的名字叫做
插件名为rabbitmq_delayed_message_exchange
7、在JavaScript中,代码: 5/2 结果是( )
2.5
8、分析下面的JavaScript代码段,输出的结果是( )
let emp = new Array(5);
emp[1]=1;
emp[10]=2;
console.log(emp.length);
结果:11
9、下面哪一个是用来追加到指定元素的末尾的?( )
appendTo()
10、用于监听 DOM 事件的指令是( )
v-on
11、用new FileOutputStream(“data.txt”,true)创建一个FileOutputStream实例对象,则下面说法是正确的是( )。
如果文件"data.txt"存在,则将在文件的末尾开始添加新内容
12、下列关于SQL说法中不正确的是( )
HAVING子句用来从FROM的结果中筛选行
13、关于Method中的invoke方法说法不正确的是( )
14、RabbitMQ没有采用以下哪项措施保证数据的可靠性()
解题思路: RabbitMQ为了保证消息能够可靠的从生产者发送到消费者主要采用了持久化、传输确认、发布确认等方式,而并没有提供消息跟踪,同时工作模式并不是用来保证数据可靠性的方式。
15、下列哪些是RabbitMQ的特点( )
解题思路: RabbitMQ特点主要包含:可靠性(Reliablity)、灵活的路由(Flexible Routing)、消息集群(Clustering)、高可用(Highly Avaliable Queues)、多种协议(Multi-protocol)、多种语言客户端(Many Clients)、跟踪机制(Tracing)、插件机制(Plugin System)等
16、下面哪个Java语句声明了一个适合于创建50个字符串对象数组的变量?
17、下列哪些操作会使线程释放锁资源?
18、下列关于消息队列消息长度说法正确的是
19、rabbitMQ中的死信队列的应用场景?哪些消息会放到到死信队列中?
参考答案:
RabbitMQ中的死信队列(Dead Letter Exchange,简称DLX)是指当消息无法被消费或者消息被拒绝(reject、nack)时,将这些消息重新路由到一个指定的Exchange中,这个Exchange就是DLX。通过DLX可以将这些不能被消费的消息存放到死信队列中,然后再进行后续处理。
下面是死信队列的应用场景和常见的消息类型:
消息超时:如果消息在指定的时间内未被消费,则将其转发到死信队列中。
消息被拒绝:当消息被消费者拒绝时,可以将其放入死信队列中,以便进行后续处理。
消息过期:在消息中设置过期时间,在消息过期后将其放入死信队列中。
队列长度限制:如果队列中的消息数量超过了指定的最大数量,则将最早的消息转发到死信队列中。
消息大小限制:如果消息的大小超过了指定的最大值,则将该消息转发到死信队列中。
总之,通过死信队列可以将那些不能被正常消费的消息放入到指定的队列中,从而方便进行后续的处理和分析。
20、JWT 和 session 的区别是什么?
JWT 和 session 都是用于身份认证和授权的机制,但它们的实现方式不同。session 是服务器存储用户状态的一种方式,通常通过在服务器上创建一个唯一的会话 ID,将用户的身份信息保存在会话中,然后将会话 ID 发送给客户端,客户端在后续请求中携带会话 ID,服务器通过会话 ID 来获取用户的身份信息。
JWT 则是通过在客户端和服务器之间传递一个加密的、自包含的 Token 来实现身份认证和授权,避免了服务器存储用户状态的问题,同时也降低了网络传输和服务器负载等问题。
21、RabbitMQ如何保证消息可靠性
参考答案:
消息生产者,发送消息,消息可靠性保障:
1、先确保消息能够到达交换机
1.1、消息生产者,开启消息确认机制:spring.rabbit.publisher-confirm-type: correlated
1.2 通过setConfirmCallback回调函数,获取消息是否到达交换机应答状态:ack
ack = false 消息未到达交换机
ack = true 消息成功发送到达交换机
2、消息无法从交换机路由到队列时候执行消息回退
2.1、配置setReturnCallback()回调方法,在回调方法中,保存发送失败的消息到mysql中。
2.2 需要在回调前执行: rabbitTemplate.setMandatory(true); 开启消息回退确认