A: QMQ使用的是异步刷盘,在配置文件里可以配置刷盘的间隔,QMQ依赖主从同步来提高可靠性,在生产环境上如果配置了从,那么MASTER收到消息后并不会立即返回给Producer,所有消息必须等到SLAVE确认才会回复Producer。
A: QMQ最开始的定位是用于业务中的消息中间件,在业务使用中我们并不推荐将所有数据都通过消息来传递,这往往会导致时序等问题,我们更推荐使用消息传输一些关键信息,而消费方使用这些关键信息查询到最新信息。 举一个例子,假设我们在订单系统中使用消息来发送订单变更事件,如果将订单所有信息都放在消息里,这样消息消费方在收到消息后因为具备所有他需要的消息很有可能就会拿这些消息去做业务处理,而订单可能有多个不同的变更方,这样一来很有可能消费方使用消息里的订单数据时订单已经发生了变更,那么消费方就使用了一个错误的数据来处理,我们这个时候更推荐消费方使用比如订单号去查询到最新版本的订单。所以这种使用key/value的方式设置消息的API是我们有意为之。