微服务系列:MicroProfile和Apache TomEE
介紹
MicroProfile是一項由知名供應商于2016年9月發起的舉措,目的是基于JEE平臺構建微服務架構。 任務是針對微服務架構優化Enterprise Java 。 開發人員可以利用這種體系結構,通過Enterprise Java平臺以標準化的方式構建和開發微服務應用程序。
API構建將成為JCP程序的一部分。 MicroProfile當前基于最小占用空間技術堆棧構建,該技術堆棧包括JAX-RS,CDI和JSONP。 未來將添加更多功能,以構建更強大的微服務平臺。 MicroProfile項目仍在開發中,其當前版本1.2基于Apache 2.0許可下的Eclipse Foundation。 可以在https://microprofile.io/上找到更多信息。
在本文中,我們將探索如何使用一個名為Apache TomEE的MicroProfile運行時來構建和部署基于JEE的Microservices RESTful端點。 Apache TomEE是一個開源項目,催生了Tomitribe公司,該公司是MicroProfile項目的主要供應商之一。
Apache TomEE Microprofile
這里的示例將集中于構建RESTful端點,該端點將檢索特定客戶的所有客戶費用。 讓我們快速跳轉到代碼:
@ApplicationScoped @Produces({MediaType.APPLICATION_JSON}) @Path("/expenses") public class ExpenseEndpoint {private Map<String, List<Expense>> expenses;@GET@Path("{customerId}")public List<Expense> getExpenses(@PathParam("customerId") String customerId) throws Exception {expenses = loadExpenses();return expenses.get(customerId);} ...上面的代碼是一個簡單的JAX-RS ExpenseEndpoint端點,它使您可以根據id檢索客戶費用。 我們將使用Tomee運行時來構建和發布此終結點。 構建敘述是使用TomEE maven插件的POM文件的一部分,該插件使我們能夠構建和部署ExpenseEndpoint微服務。
....<dependencies><dependency><groupId>org.apache.tomee</groupId><artifactId>javaee-api</artifactId><version>7.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.8.7</version></dependency></dependencies><build><finalName>tomeeweb</finalName><plugins>...<plugin><groupId>org.apache.tomee.maven</groupId><artifactId>tomee-maven-plugin</artifactId><version>7.0.1</version><configuration><tomeeClassifier>webprofile</tomeeClassifier></configuration><executions><execution><phase>package</phase><goals><goal>exec</goal></goals></execution></executions></plugin> ....上面的POM文件利用了package階段的exec目標來構建jar文件。 事實上,我們的端點將是一個獨立的微服務,應該能夠獨立部署和運行,它需要與服務器運行時程序包一起嵌入,更多的是作為胖子。 另一種選擇是將其構建為docker映像。 要構建我們的代碼,請運行以下命令:
mvn package上面的maven命令將運行TomEE maven插件的exec目標并構建胖罐。 胖子罐將在內部包含我們的微型Web應用程序運行時,這可以看作是微型配置文件。 要運行我們的應用程序,請使用以下命令:
java -jar target\<buildname>-exec.jar這將啟動TomEE運行時,部署我們的ExpenseEndpoint RESTful服務。 您可以轉到瀏覽器并使用以下URL測試終結點: http:// localhost:8080 / expenses / C001 ,它將帶您返回帶有客戶ID C001的所有費用詳細信息的JSON字符串。
如前所述,MicroProfile仍在開發中。 以上只是Apache TomEE的一個微概要文件,它基于JAX-RS,JSON和CDI作為最小的API堆棧。 MicroProfle項目將通過開發人員社區內的開放式協作和討論來繼續其發展。 我們有一個更大的消息:JEE在這里留下來!
可以在https://github.com/rhathi/microprofile上找到本文的代碼
翻譯自: https://www.javacodegeeks.com/2017/03/microservices-series-microprofile-apache-tomee.html
總結
以上是生活随笔為你收集整理的微服务系列:MicroProfile和Apache TomEE的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 进程调度linux(进程调度 linux
- 下一篇: 新买的电脑如何检验是否原装及真实配置情况
