您好,登錄后才能下訂單哦!
簡介
微服務是一種架構風格,是以開發一組小型服務的方式來作為一個獨立的應用系統,每個服務都運行在自已的進程中,服務之間采用輕量級的HTTP通信機制 ( 通常是采用HTTP的RESTful API )進行通信。這些服務都是圍繞具體業務進行構建的,并且可以獨立部署到生產環境上。這些服務可以用不同的編程語言編寫,并且可以使用不同的數據存儲技術。對這些微服務我們只需要使用一個非常輕量級的集中式管理來進行協調。
學習目標
使用IBM Cloud Developer Tools CLI生成Spring微服務,為其配置和綁定服務,然后部署到IBM Cloud。 了解所生成的代碼,以及如何為你開始添加自己的代碼提供一個很好的起點。
先決條件
安裝IBM Cloud Developer Tools CLI。
預計時間
閱讀和遵循本操作步驟中的步驟大約需要一個小時。
流程
步驟1.生成代碼
如果你尚未嘗試安裝,則需要按照說明安裝IBM Cloud Developer Tools CLI。 你可以使用如下所示的CLI生成Spring微服務,并將生成的代碼放入當前目錄下的文件夾中。
spring $bx dev create
? Select a pattern:
1. Web App
2. Mobile App
3. Backend for Frontend
4. Microservice
5. MFP
Enter a number> 4
? Select a starter:
1. Basic
Enter a number> 1
? Select a language:
1. Java ? MicroProfile / Java EE
2. Node
3. Python
4. Java ? Spring Framework
Enter a number> 4
? Enter a name for your project> springmsdemo
? Enter a hostname for your project> springmsdemo
? Do you want to add services to your project? y/n
? Select a service:
1. Cloudant NoSQL Database
2. Object Storage
Enter a number> 1
? Select a service plan:
1. Lite
2. Standard
3. Dedicated Hardware
Enter a number> 1
Successfully added service to project.
? Do you want to add another service? y/n
The project, springmsdemo, has been successfully saved into the current directory.
OK
在繼續之前,讓我們看一下我們剛剛選擇的內容和生成的內容。 前兩個選擇確定了我們需要微服務,并且它將使用Spring。 提供服務選項后,事情會變得很有趣。 如果選擇一種服務(在本例中為Cloudant),則不僅會生成綁定到該服務的代碼,而且還可以對其進行調配以供使用。
在docker容器中本地運行應用程序時,將使用生成的其他文件。 自述文件是一個很好的起點,它將提供有關已生成內容的概述以及有關所選服務的更多信息。
步驟2.運行微服務
然后使用CLI在本地構建和運行微服務。 構建階段將創建一個docker容器,該容器提供構建微服務所需的工具,然后使用第二個容器來運行構建的容器。
springmsdemo $bx dev build
Deleting the container named 'bx?dev?springmsdemo?tools' ...
Creating image bx?dev?java?maven?tools based on Dockerfile?tools...
Image will have user added
OK
Creating a container named 'bx?dev?springmsdemo?tools' from that image...
OK
Starting the 'bx?dev?springmsdemo?tools' container...
OK
Building the project in the current directory started at Wed Aug 23 13:49:37 2017
OK
Stopping the 'springmsdemo' container...
The 'springmsdemo' container was not found
Stopping the 'bx?dev?springmsdemo?tools' container...
OK
springmsdemo $bx dev run
Stopping the 'springmsdemo' container...
The 'springmsdemo' container was not found
Creating image springmsdemo based on Dockerfile...
OK
Creating a container named 'springmsdemo' from that image...
OK
Starting the 'springmsdemo' container...
OK
Executing run command started at Wed Aug 23 13:50:17 2017
. _
/\ / ' () \ \ \
( ( )__ | ' | '| | ' \/ ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' |_| .|| ||| |\, | / / / /
=========||==============|__/=///_/
:: Spring Boot :: (v1.5.4.RELEASE)
2017?08?23 12:50:22.167 INFO 17 ??? [ main] application.SBApplication : Starting SBApplication v1.0?SNAPSHOT on d6e23df14534 with PID 17 (/project/springmsdemo?1.0?SNAPSHOT.jar started by root in /project)
...
(output snipped)
你現在可以通過轉至http:// localhost:8080 / v1 / cloudant在本地測試微服務。
真正的好處是,盡管數據庫列表為空,但該列表是從先前提供的Cloudant服務實例中讀取的。
@RestController
public class Example {
@Autowired @ServiceName(name="springmsdemo?cloudantNoSQLDB?4dce")
private CloudantClient client;
@RequestMapping("v1/")
public @ResponseBody ResponseEntity<String> example() {
List<String> list = new ArrayList<>();
//return a simple list of strings
list.add("Some data");
return new ResponseEntity<String>(list.toString(), HttpStatus.OK);
}
@RequestMapping("v1/cloudant")
public @ResponseBody ResponseEntity<String> cloudant(){
List<String> list = new ArrayList<>();
try {
list = client.getAllDbs();
} catch (NullPointerException e) {
return new ResponseEntity<String>("Server Error", HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity<String>("Available databases : " + list.toString(), HttpStatus.OK);
}
}
步驟3.部署到IBM Cloud
最后一步是將微服務部署到IBM Cloud。 只需在命令行中輸入bx dev deploy即可。 然后,你可以在IBM Cloud控制臺(以及創建的服務)中查看微服務。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。