同步异步,阻塞非阻塞区别:
同步:调用者发出请求后,一直等待被调用者返回结果或通知,才进行下一步操作。
异步:调用者发出请求后,不等待被调用者返回结果或通知,就进行下一步操作。
阻塞:调用者发出请求后,被调用者不返回结果或通知,调用者就一直等待,不能进行其他操作。
非阻塞:调用者发出请求后,被调用者不返回结果或通知,调用者可以继续进行其他操作。
总之,同步异步是针对当前或其他的线程或者进程(多线程),阻塞非阻塞是针对一个线程里面需不需要等待。
rabbitmq原理:RabbitMQ是一个开源的消息代理软件,它实现了AMQP(Advanced Message Queuing Protocol)协议。RabbitMQ使用消息队列来 实现异步通信,可以将消息发送到队列中,然后由消费者从队列中取出消息进行处理。
RabbitMQ消息持久化的方法是在发送消息时设置消息的持久化属性,这样当RabbitMQ服务器重启时,消息仍然存在。还可以设置队列的持久化属性,这样当RabbitMQ服务器重启时,队列仍然存在。
RabbitMQ支持多种消息确认机制,包括自动确认、手动确认(ACK机制)和批量确认。自动确认是指RabbitMQ在消息发送到队列后自动确认消息,不需要消费者手动确认。手动确认是指消费者在处理完消息后手动确认消息,这样RabbitMQ才会将消息从队列中删除。