在线支付系统和 Confluent Kafka-Go API

问题描述

最近,我想将在线支付服务集成到我的网站。一切都很顺利,直到我有一个关于它的架构的问题。好吧,该服务的工作方式如下。首先,它检查以支付请求的形式推送到 kafka 主题的任何传入消息,然后异步处理这些消息,并再次返回侦听消息。我应该注意到消息是从最新的偏移量中读取的,在我看来,这对于支付系统来说不是正确的方法,因为某些请求可能没有得到完全处理。上述方案中是否存在任何架构问题?顺便说一下,该服务是用 Go 编写的,所有异步操作都由 goroutine 和通道执行。这是一个片段

func (kc *KafkaConsumer) Consume(signalChan chan os.Signal) {
    for{
        select{
        case sig := <-signalChan:
            Sugar.Info("Caught signal %v",sig)
            break
        default:
            message,err := kc.Consumer.ReadMessage(-1)
            if err == nil{
                Sugar.Infof("Got a new message %v",message)
                done := make(chan bool)
                go router.UseMessage(*message,done)
                <-done
            }else{
                Log.Error(err.Error())
            }
        }
    }
}

这里,ReadMessage 例程读取最近的消息,忽略之前发送的消息。这是一个方法吗? 提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)