JHipster入门,第2部分
所以你回來了! 在本系列的最后一部分中 ,我們采用了單片路線創(chuàng)建了一個(gè)JHipster應(yīng)用程序。 這是紅色藥丸路線; 生活與您習(xí)慣的差不多。
但是也許您喜歡挑戰(zhàn)。 也許您想超越紅色藥丸并嘗試藍(lán)色藥丸。 在這種情況下,Blue Pill是微服務(wù)JHipster方法。
在本博客中,我們將使用JHipster的可用選項(xiàng)來創(chuàng)建微服務(wù)架構(gòu)。 這種方法還有很多工作要做,但是最后,我認(rèn)為它是有回報(bào)的。 獲得您最喜歡的飲料并預(yù)留一些時(shí)間。 這將非常密集。
微服務(wù)概述
這些東西到底是什么?
“微服務(wù)”架構(gòu)將前端和后端分開,因此您的應(yīng)用程序更易于擴(kuò)展和解決基礎(chǔ)架構(gòu)問題。
這里的想法是盡可能使事物分離。 您可以創(chuàng)建后端并運(yùn)行它們,而不必與前端上的任何東西綁定在一起,反之亦然。 每個(gè)實(shí)例都可以有多個(gè)實(shí)例,并且可以上下旋轉(zhuǎn)而不會影響最終用戶。 可能消除應(yīng)用程序的停機(jī)時(shí)間。
它使它具有隨時(shí)間而增長和擴(kuò)展的能力,而只需很少的架構(gòu)工作。 后端變得越來越消耗東西,而前端則是向世界展示的輸出。 前端幾乎可以是任何您想要的東西。 傳統(tǒng)網(wǎng)站,移動應(yīng)用程序或其他您能想到的。
微服務(wù)路徑
藍(lán)丸
因此,您已決定大吃一口并吞下藍(lán)色藥丸。 您想挑戰(zhàn)自己嗎? 讓我們開始吧。
網(wǎng)關(guān)
網(wǎng)關(guān)是JHipster生成的應(yīng)用程序(生成時(shí)使用應(yīng)用程序類型微服務(wù)網(wǎng)關(guān)),用于處理Web流量并為AngularJS應(yīng)用程序提供服務(wù)。 如果要遵循“后端為前端”模式,可以有幾種不同的網(wǎng)關(guān),但這不是強(qiáng)制性的。
這幾乎將成為所有活動的中心。 它具有前端,因此您可以查看呼叫,內(nèi)存等。您可以添加/刪除用戶,以及所有有趣的內(nèi)容。 這些東西都打包好了,您可以自己查看。 我們在這里不會涉及太多。
登記處
JHipster注冊表是使用常規(guī)JHipster結(jié)構(gòu)的運(yùn)行時(shí)應(yīng)用程序,所有應(yīng)用程序都在該結(jié)構(gòu)上進(jìn)行注冊并從中獲取其配置。 我們將不僅僅涉及將其拉下并使用它。 在大多數(shù)情況下,它只是“配置”的故鄉(xiāng)。 只需克隆存儲庫并繼續(xù)。 有關(guān)此的更多信息,請參見下文。
https://jhipster.github.io/microservices-architecture/#registry_overview
克隆: https : //github.com/jhipster/jhipster-registry
微服務(wù)
微服務(wù)是JHipster生成的應(yīng)用程序(生成它們時(shí)使用應(yīng)用程序類型的微服務(wù)應(yīng)用程序),用于處理REST請求。 它們是無狀態(tài)的,可以并行啟動它們的多個(gè)實(shí)例以處理重負(fù)載。
我們開工吧
網(wǎng)關(guān)
在本練習(xí)中,我們將非常關(guān)注JHipster的微服務(wù)指南 。
1.從yo jhipster開始
2.選擇“微服務(wù)網(wǎng)關(guān)”
3.回答所有問題 4 。 咖啡時(shí)間!!!
該應(yīng)用程序幾乎是一個(gè)帶有配置以處理所有Web流流量的整體式應(yīng)用程序
登記處
如果尚未復(fù)制, 請克隆https://github.com/jhipster/jhipster-registry 。 添加到您的項(xiàng)目空間。 繼續(xù)并啟動它。
查找具有@SpringBootApplication批注的Java文件,并將其作為Java應(yīng)用程序運(yùn)行。 這適用于下面的每個(gè)步驟。
微服務(wù)應(yīng)用
第一件事是創(chuàng)建一個(gè)新目錄。 隨便叫它,然后進(jìn)入該目錄。 現(xiàn)在輸入yo jhipster 。 在這里看到那個(gè)圖案嗎?
不過,這次,我們將選擇“微服務(wù)應(yīng)用程序”。 回答問題。
這次,只要搖動一下狗的尾巴,就可以使用微服務(wù)!
微服務(wù)實(shí)戰(zhàn)
登記處
如果尚未啟動注冊表,請繼續(xù)運(yùn)行它。 它應(yīng)該在http:// localhost:8761上運(yùn)行 。 訪問它,并查看它為您提供的基本信息。 然后單擊“應(yīng)用程序”鏈接。 請注意它是空白。
網(wǎng)關(guān)
現(xiàn)在是時(shí)候旋轉(zhuǎn)網(wǎng)關(guān)了。 您將在控制臺中看到此輸出。
----------------------------------------------------------Application 'ExtendedDayGateway' is running! Access URLs:Local: http://127.0.0.1:8080External: http://192.168.1.4:8080 ---------------------------------------------------------- 2016-09-13 14:19:29.643 INFO 10856 --- [ restartedMain] c.wwc.extendedday.ExtendedDayGatewayApp : ----------------------------------------------------------Config Server: Connected to the JHipster Registry config server! ----------------------------------------------------------請注意,它是如何顯示URL的,它還顯示了它是從JHipster Registry獲得的配置。 我們還來看一下該應(yīng)用程序。 http://本地主機(jī):8080
另外,再次在注冊表應(yīng)用程序中查看“應(yīng)用程序”頁面。 http:// localhost:8761 /#/ applications 。
請注意,我們的網(wǎng)關(guān)現(xiàn)在顯示。 它是自注冊的。
微服務(wù)應(yīng)用
現(xiàn)在,我們有三分之二的項(xiàng)目正在運(yùn)行。 我認(rèn)為,現(xiàn)在該是該情況的絕對動力了。 我們將添加微服務(wù)應(yīng)用程序,它將為任何請求提供“后端”。
1.創(chuàng)建一個(gè)Java類作為我們的“ api”端點(diǎn)。 在我們的例子中,我們只有一個(gè)返回靜態(tài)數(shù)據(jù)集的對象。 十分簡單。
@RestController @RequestMapping("/api") public class DemoResource {...2.添加一種方法來返回我們的“學(xué)生”。
/*** GET /students : get all the students.** @return the ResponseEntity with status 200 (OK) and the list of students in body*/@JsonView(Student.Info.class)@RequestMapping(value = "/demostudents",method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)@Timedpublic List<Student> getAllStudents() {log.debug("REST request to get all Students");List<Student> userStudents = new ArrayList<Student>();Student student = new Student();student.setFirstName("Joe");student.setLastName("Smith");student.setSex(0);student.setGrade(3);userStudents.add(student);return userStudents;}3.保存并啟動微服務(wù)。 它看起來應(yīng)該像這樣:
----------------------------------------------------------Application 'extendedDayAPI' is running! Access URLs:Local: http://127.0.0.1:8081External: http://192.168.1.4:8081 ---------------------------------------------------------- 2016-09-14 11:36:13.927 INFO 13980 --- [ restartedMain] com.wwc.extendedday.ExtendedDayApiApp : ----------------------------------------------------------Config Server: Connected to the JHipster Registry config server! ----------------------------------------------------------4.再次重新訪問http:// localhost:8761 /#/ applications或刷新視圖。 請注意我們的微服務(wù)如何注冊自己。
5.轉(zhuǎn)到瀏覽器,然后輸入http://localhost:8080/yourappapiname/api/demostudents 。 請注意,即使您已登錄,也將被禁止。
6.注銷localhost:8080 ,然后在打開Chrome的情況下重新登錄。
然后檢查登錄呼叫并在“授權(quán)”中獲取令牌。 它應(yīng)該以“ Bearer…”開頭,然后是一堆編碼的東西。 全部選擇。
您必須在請求中傳遞此令牌。 有許多不同的方法可以通過您的代碼來執(zhí)行此操作。 在我們的測試場景中,
- 郵差足以向您顯示輸出。
- 開放郵遞員
- 從上方輸入您的API調(diào)用
- 在“標(biāo)題”下,添加“授權(quán)”密鑰,然后粘貼您獲取的令牌。
您應(yīng)該會看到以下內(nèi)容:
嗚嗚! 你完成了! 您已經(jīng)使用jHipster創(chuàng)建了微服務(wù)。
結(jié)論
我們已經(jīng)逐步使用JHipster的可用選項(xiàng)創(chuàng)建微服務(wù)來創(chuàng)建微服務(wù)體系結(jié)構(gòu)。 我希望您發(fā)現(xiàn)此信息對您有所幫助。
在這一點(diǎn)上,我們可以添加任意數(shù)量的微服務(wù)。 每個(gè)端口都有其自己的端口號和功能。 在分布式環(huán)境中,當(dāng)我們對它們進(jìn)行更改時(shí),會有許多實(shí)例可以啟動/關(guān)閉。 希望您能看到將我們架構(gòu)的不同層分離的好處和靈活性。 每一層都不依賴于另一層來運(yùn)行。
微服務(wù),網(wǎng)關(guān),注冊表以及使用不同前端的主題的確開始超出使用JHipster的基本方法。 有關(guān)這些主題的更多信息,請查看免費(fèi)的Keyhole博客和白皮書 。
使用JHipster時(shí),請回頭看第3部分,其中包括技巧,竅門和陷阱。 祝您有美好的一天并繼續(xù)保持“嘻哈”。
翻譯自: https://www.javacodegeeks.com/2016/10/getting-started-jhipster-part-2.html
總結(jié)
以上是生活随笔為你收集整理的JHipster入门,第2部分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: es安卓和ios数据一样吗(es安卓)
- 下一篇: jHipster入门,第1部分