26 Matching Annotations
  1. Aug 2022
    1. 每次消息过来都要拿着订单号+业务场景这样的唯一标识(比如天猫双十一活动)去流水表查,看看有没有这条流水,有就直接return不要走下面的流程了,没有就执行后面的逻辑。

      如果有事务,则可能不适用。可以用mysql唯一索引

    1. JAVA18中强制使用UTF-8编码(1-4字节变长编码,中文字符都在三字节区),原先两字节的char能显示GBK编码(两字节定长编码)的汉字,但现在不行了,望教程更新(Char的演示里有中文字符“中”)。

      Java对待文件或者外部字节的字符编码是utf-8了,但内部数据的处理依旧是utf-16

    1. 其实MySQL是确认了的。只是在这个语句里面,MySQL认为读出来的值,只有一个确定的 (id=1), 而要写的是(a=3),只从这两个信息是看不出来“不需要修改”的
    1. 五次重试后,消费处于一个未被确认的状态。因为需要你手动 ack!下次服务重启的时候,会继续消费这条消息。
      1. manul模式下,如果没有手工ack/reject,服务器治不会将消息从unack状态变为其他状态(比如抛出异常)。
      2. auto模式正常情况下(即包括抛出异常情况下,除非出现故障)会将消息设置为ack/reject状态。