微服務體系下如何快速構建一個服務
近兩三年的時間,微服務是熱度陡增,作為舊有SOA體系的一下特殊展現,在企業級應用市場上面應用越來越廣泛,越來越多的團隊,開始採用微服務架構來改造現有的架構體系。不管實施的情況如何,至少已經有成形的案例在線上跑。哪我們這些遠未達到微服務架構的產品該如何呢,手癢的話就自己動手鼓搗吧,畢經並不是都有那樣的環境來運用微服務技術。
微服務架構部署運維起來很龐大繁雜,但最終提供服務的還是那些被拆分的很細小的子服務,這些子服務最終是以什麼形式編寫構造出來的?這並不是什麼神祕的東西,大家都知道微服務體系是語言無關的,它可以融合各種語言的服務進來,所以不同的語言提供的那些開箱即用的基本框架也是不一樣的。
本篇主要還是基於JAVA體系來說一說那些讓你分分鐘構建一個WEB服務的基礎框架吧。
Spring Boot
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
從官方給出的定義就不難看出spring boot的雄心壯志,spring cloud全家桶微服務體系就是基於Spring Boot之上構建起來的,可以其戰略地位之高。內建應用伺服器無須部署war,遵從約定優於配置的原則,簡單maven配置,自動化配置spring。引入簡單的jar後,即可輕鬆開啟一個web服務。
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId >
<version>
1.5.7.RELEASE
</version>
</parent>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
</dependencies>
再看Java啟動主類如何編寫
import
org
.
springframework
.
boot
.*;
import
org
.
springframework
.
boot
.
autoconfigure
.*;
import
org
.
springframework
.
stereotype
.*;
import
org
.
springframework
.
web
.
bind
.
annotation
.*;
@Controller
@EnableAutoConfiguration
public
class
SampleController
{
@RequestMapping
(
"/"
)
@ResponseBody
String
home
()
{
return
"Hello World!"
;
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
SpringApplication
.
run
(
SampleController
.
class
,
args
);
}
}
測試時直接以main的方式執行起來。部署時直接以java -jar xxx.jar的方式執行我們的子服務。
Dropwizard
Dropwizard is a Java framework for developing ops-friendly, high-performance, RESTful web services.
Dropwizard pulls together stable, mature libraries from the Java ecosystem into a simple, light-weight package that lets you focus on getting things done.
Dropwizard has out-of-the-box support for sophisticated configuration, application metrics, logging, operational tools, and much more, allowing you and your team to ship a production-quality web service in the shortest time possible.
Dropwizard與spring boot最大的不同一在於,它幫助你離開對Spring的依賴,當下s、Spring幾乎是Java世界的規範,這對於不使用Spring的團隊來說算是一個福音,但有多少這樣的團隊不使用Spring呢? Dropwizard還包含了很多其它非常有幫助的開發庫,如Guava,Jackson,Logback,,sl4j,habernate,Httpclient,Jersey,Freemaker,Joda等等來幫助我們快速構建服務。 從其官網提供的入門教程來看,相比Spring Boot來講還是稍顯複雜,但相較於傳統的框架整合而言還是相當簡捷的。
Wildfly Swarm
簡單做個歷史回顧:
知道Wildfly的朋友估計不多,但提起JBoss的話熟識度應該是很高的。06年,JBoss被Redhat公司收購,收購後不久Redhat宣佈,將JBoss Application Server(JBoss AS)正式更名為WildFly。 新名稱WildFly反映了伺服器“非常靈活、輕量、不羈、自由”的特性。
Wildfly-swarm是一個基於Wildfly-core的微服務專案,和Wildfly應用伺服器共同使用相同的核心元件MSC,擁有相似的架構和開發/構建方法。
基礎元件對比如下:
- 注入服務: Weld CDI容器
- Web容器: 嵌入式的Undertow(Undertow 是紅帽公司(RedHat)的開源產品,是 WildFly8(JBoos) 預設的 Web 伺服器。)
- Restful: RestEasy
- 持久層:採用JPA、Hibernate作為實現
- 嵌入式的資料庫:HsqlDB和H2資料庫
- 基於Maven、Gradle構建的方式
play
Play Framework makes it easy to build web applications with Java & Scala.Play is based on a lightweight, stateless, web-friendly architecture.
Built on Akka, Play provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications.
Play是一個開源的現代web框架,用於編寫Java和Scala的可擴充套件Web應用程式。它通過自動過載變化來提高生產力,由於設計的就是一個無狀態、無阻塞的架構,所以用Play框架來編寫橫向擴充套件Web應用程式是很容易的。
對於不在Java體系下開發微服務的話,相信其它語言也有對應的開箱即可的腳手架,來幫助你開發細粒度的服務體系,再結合相應的中介軟體如服務註冊、發現,監控,服務熔斷、降級等等,快速的上手一個微服務的案例。
歪脖貳點零 ∣ 回首過往 · 架構未來。程式設計師,除了編碼,生活還應該有沉澱!
相關推薦
微服務體系下如何快速構建一個服務
近兩三年的時間,微服務是熱度陡增,作為舊有SOA體系的一下特殊展現,在企業級應用市場上面應用越來越廣泛,越來越多的團隊,開始採用微服務架構來改造現有的架構體系。不管實施的情況如何,至少已經有成形的案例在線上跑。哪我們這些遠未達到微服務架構的產品該如何呢,手癢的話
Kubernetes實戰 - 從零開始搭建微服務 1 - 使用kind構建一個單層架構Node/Express網路應用程式
# 使用kind構建一個單層架構Node/Express網路應用程式 > Kubernetes實戰-從零開始搭建微服務 1 ![k8s structure](https://d33wubrfki0l68.cloudfront.net/152c845f25df8e69dd24dd7b0836a28974
CentOS 6.5下快速搭建ftp服務器[轉]
input eve 開機 sco 關閉 ftp用戶 指向 reject from CentOS 6.5下快速搭建ftp服務器 1、用root 進入系統 2、使用命令 rpm -qa|grep vsftpd 查看系統是否安裝了ftp,若安裝了vsftp,使用這個命令會
玩轉Windows服務系列——使用Boost.Application快速構建Windows服務
Boost.Application簡介 Boost.Application 是一個開源的C++庫,主要用於構建跨平臺的服務,包括Windows、Unix、Linux、MaxOS等。沒錯,這個庫可以用來做跨平臺的服務。Boost.Application 使用開源協議 Boost Software Lice
Spring boot 快速構建 Eureka 服務
使用的Spring旗下的STS作為開發IDE,Eureka是Spring Cloud微服務元件的一部分,是用於實現服務註冊和發現的工具。 在STS中直接new 一個Spring starter Project 預設配置 選擇 eureka Server 新增元件 建
設定只允許在微信裡開啟,做一個服務讚賞評價系統,提升服務質量,讓員工更積極參與工作
因為是微信讚賞,又需要老闆來監管每天每月打賞了多少錢。所以用員工自己的胸牌不合適,這時就需要第三方開發。function is_wechat(){ if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !==
快速構建一個 Springboot
pan -1 conf tomcat one feature 添加 自動配置 span 快速構建一個 Springboot 官網:http://projects.spring.io/spring-boot/ Spring Boot可以輕松創建可以“運行”的獨立的,生產級的
07 React+Ant Design學習(一)——快速構建一個主頁
通過對React.js一週左右的學習後,就想著自己寫一個主頁,在這一週的學習中雖然對react元件化開發的思想有了較深的理解,但自己還是很迫切的希望能動手結合Ant Design寫出來一個主頁。因為當初學react的目的就是為了學習怎樣使用Ant Des
教你用 100 行 Node.js 程式碼,快速構建一個靜態網站生成器!
近日,我的一位同事向我尋求建議,她打算為自己構建一個部落格。於是,我對靜態網站生成器和部落格引擎進行了一番研究,發現 Hugo 是一個很不錯的選擇。但是,我的同事還有一些特殊要求,比如,她想要一個自定義的部落格網址和 CSS 主題。儘管這些 Hugo 都可以實現,但我並不打算花時間來學習它。我想自己
使用 Apollo Client 快速構建一個支援 GraphQL 的 React App
這篇文章主要介紹 GraphQL 在 Client 的使用,為了方便,本文會直接使用 React 建立一個 Web demo 去介紹 Apollo 在 React 中的使用方法,當然在 ReactNative 中用法幾乎一模一樣。Apollo Client 是一個 GraphQL C
在Linux環境下快速搭建一個javaweb專案網站(阿里雲ubuntu)
前言: 完成一個web專案或者完成了自己部落格的編輯之後,迫切想釋出都網際網路上,展示自己一下。 這裡主要介紹javaweb專案如何快速放在伺服器上,並且釋出至網際網路。 1、前期裝備。 主要是申請伺服器,配置ftp\ssh環境,配置tomcat伺服
springboot(基礎篇):快速構建一個springboot專案
前言: springboot作為springcloud的基礎,學會springboot是必不可少的技能,所以這個系列教程一是記錄自己的學習過程,二是作為一份分享教程,幫助新手
本地服務CURL請求本地另一個服務API返回超時/或無返回
入職之後一直在忙,終於有時間整理一波最近踩到的坑。 起因: 專案是微服務架構,一個專案對外提供API,新的專案呼叫API獲得資料。於是就在本地搭建了兩個服務。配置了兩個虛擬域名,指向兩個專案,當然我本地是windows+nginx。意外就在這個時候發生了,我在新開發的專案中,呼叫另一個專案的
《Spring Boot揭祕:快速構建微服務體系》讀書筆記
第一章 瞭解微服務 火車模型:交付的服務就像一輛火車,這個服務相關的所有功能對應的專案成果,就是要裝上火車車廂的一件件貨物,交付的列車只有等到所有專案都開發測試完成之後才可以裝車觸發,完成這個服務的交付。 微服務的益處:獨立,進而可擴充套件性;多語言生態;
微服務架構下使用Spring Cloud Zuul作為網關將多個微服務整合到一個Swagger服務上
turn 接口文檔 vid 使用方法 數據操作 prefix opera tor font 註意: 如果你正在研究微服務,那必然少不了服務之間的相互調用,哪麽服務之間的接口以及api就必須生成系統的管理文檔了。如果你希望更好的管理你的API,你希望有一個工具能一站式地解
Maven安裝 &快速構建微服務項目
maven3 成功 open ext mis 創建 根目錄 unable 安裝 Maven安裝手冊 1、準備安裝包 安裝包: apache-maven-3.5.4-bin.zip (最好JDK 1.7及以上版本) 集成包: eclipse-maven3-plugi
如何快速搭建一個微服務架構-咕泡學院Java架構VIP試聽視訊
如何快速搭建一個微服務架構-咕泡學院Java架構VIP試聽視訊https://pan.baidu.com/s/1I4fs5juFNY_sV8yc_zwcYQ 密碼:bsvl 咕泡學院Java架構師每日錄播視訊索取加QQ群:788692365咕泡學院Java架構師往期視訊
JAVAEE——SpringBoot入門:簡介、微服務、環境準備、helloworld與探究、快速構建專案
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <ver
如何快速搭建一個微服務架構
何謂微服務架構的簡單模式? 相對於大型網際網路平臺動輒幾萬併發的訪問量,或者每天多次的線上版本釋出,絕大多數企業和專案並沒有這樣的需求。他們關注的是如何更好地提高開發效率,如何更快地實現新需求,如何更便利地運維,等等。 微服務架構的簡單模式就是可以滿足以上需求的軟體架構方
微服務的持續整合,四步“構建”一個程式碼世界
本文轉自微訊號EAWorld。掃描下方二維碼,關注成功後,回覆“普元方法+”,將會獲得熱門課堂免費學習機會!大師Martin Fowler對持續整合是這樣定義的:持續整合是一種軟體開發實踐,即團隊開發成員經常整合他們的工作,通常每個成員每天至少整合一次,也就意味