是的,咱們是。讓咱們看看爲何。java
咱們全部的交互都是異步的。它們使用異步和非阻塞的HTTP請求和響應。此外,因爲OpenShift服務,咱們將請求發送到一個虛擬地址,這使您具備彈性。服務在一組吊艙之間平衡負載。咱們能夠經過調整 Pod的數量或使用自動縮放來輕鬆地上下縮放。咱們也有復原力。因爲 health check,咱們有一個故障轉移機制,確保咱們老是有正確數量的 Pod 運行。在消費者方面,咱們可使用各類彈性模式,例如超時、重試或斷路器,以保護微服務不受故障的影響。所以,咱們的系統可以在負載和麪對故障時及時處理請求:咱們是Reactive!react
任何系統使用了 cloud 中異步非阻塞http,提供負載平衡和一些復原特性的就是響應式了嗎?是的,但別忘了付出的代價。Vert.x使用一個事件循環來處理高級別的併發性,而且線程最少,顯示出雲本機特性。當使用依賴線程池的方法時,須要1)調優線程池以找到正確的大小;2)處理代碼中的併發性,這意味着調試死鎖、競賽條件和瓶頸;3)監視性能。雲環境是基於虛擬化的,當您有不少線程時,線程調度可能成爲一個主要問題。安全
有許多非阻塞技術,但並不是全部這些技術都使用相同的執行模型來處理異步性質--咱們能夠將這些技術分爲三類:服務器
1.在後臺使用線程池的方法而後您將面臨調優、調度和併發挑戰,將負擔轉移到操做。微信
2.使用另外一個線程回調方法-您仍然須要管理代碼的線程安全,同時避免死鎖和瓶頸。多線程
3.使用相同線程的方法,如Vert.x--您使用少許線程,並從調試死鎖中解。併發
咱們是否可使用 cloud 中的消息傳遞系統來實現 reacvtive microservice系統?固然了!。咱們可使用在事件總線來構建咱們在OpenShift中的 reacvtive microservice。可是它不會顯示由OpenShift提供的服務虛擬地址和負載平衡,由於它將由Vert.x自己處理。在這裏,咱們決定使用http,設計的實現有不少種可能,用你想要的方式塑造你的系統!異步
Summary微服務
在本章中,咱們在OpenShift中部署了微服務,並瞭解了Vert.x和OpenShift特性是如何結合起來構建reacvtive microservice。將異步HTTP服務器和客戶端、OpenShift服務、負載平衡、故障轉移和消費者端彈性結合在一塊兒,使咱們具有了 reacvtive system 的特色。性能
本報告側重於reactive。然而,當構建一個 microservice 時,須要管理許多其餘問題,如安全性、配置、日誌記錄等。大多數雲平臺,包括OpenShift,都提供服務來處理這些問題。
若是您想了解更多關於這些主題的信息,請查看如下資源:
·OpenShift網站。
·OpenShift核心概念。
·Kubernetes網站。
·OpenShift health check
原文地址:
https://developers.redhat.com/promotions/building-reactive-microservices-in-java/
有什麼討論的內容,能夠加我微信公衆號: