人工智慧 人臉識別 springcloud redis rabbitMQ
阿新 • • 發佈:2018-12-18
這一節就是把之前提到的rabbitMQ以及redis綜合起來運用,這個架構基本可以滿足目前微服務高可用,實現資料最後一致性等大部分業務需求。現在就來配置說明一下
1.配置中心服務在git或者開源中國上配置好yml檔案或者properties檔案,然後在在依賴到配置中心服務的其他服務配置好配置服務名,如下圖CONFIG服務,環境為dev。
2.配置起步依賴,在消費端以及生產端配置好訊息佇列的依賴以及配置中心依賴,如spring-cloud-config-client以及spring-boot-starter-amqp
3.在單張入庫的controller層接收到演算法庫的返回的人臉token值,進行入庫操作,演算法服務通過mq接收到需要識別的人臉資料,進行消費,消費之後返回識別結果給單張入庫的服務。
通過@AutoWired 注入AmqpTemplate 在人臉資料入庫後進行返回資訊
4.消費端使用@RabbitListener(queueToDeclare = “faceTokenQueue”)動態的建立佇列進行消費生產端服務的訊息
5.記錄存到redis,使用docker映象到伺服器,docker -run -d -p 6379:6379 redis
當人臉識別的結果返回,人臉識別的服務可以把資料存到redis中,需要在yml配置redis,可以在git上配置
使用redis存資料只需要@AutoWired StringRedisTemplate 注入,使用它set方法 完整的語法 stringRedisTemplate.opsForValue().set()
整個人臉特徵識別到演算法庫消費返回訊息,人臉資訊存到redis的過程已經完成,但是這裡的細節還是有點問題,譬如,人臉的資訊是多張圖片,如果在一個for迴圈裡面處理這個資訊的時候,如果識別到的特徵已經存到庫裡面就會返回異常,但是訊息已經在第一次迴圈的時候已經發送,這時候需要處理這裡的bug ,後面的章節介紹如何處理這裡的bug。