近兩三年的時間,微服務是熱度陡增,做爲舊有SOA體系的一下特殊展示,在企業級應用市場上面應用愈來愈普遍,愈來愈多的團隊,開始採用微服務架構來改造現有的架構體系。無論實施的狀況如何,至少已經有成形的案例在線上跑。哪咱們這些遠未達到微服務架構的產品該如何呢,手癢的話就本身動手鼓搗吧,畢經並非都有那樣的環境來運用微服務技術。java
微服務架構部署運維起來很龐大繁雜,但最終提供服務的仍是那些被拆分的很細小的子服務,這些子服務最終是以什麼形式編寫構造出來的?這並非什麼神祕的東西,你們都知道微服務體系是語言無關的,它能夠融合各類語言的服務進來,因此不一樣的語言提供的那些開箱即用的基本框架也是不同的。程序員
本篇主要仍是基於JAVA體系來講一說那些讓你分分鐘構建一個WEB服務的基礎框架吧。web
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
從官方給出的定義就不難看出spring boot的雄心壯志,spring cloud全家桶微服務體系就是基於Spring Boot之上構建起來的,能夠其戰略地位之高。內置應用服務器無須部署war,聽從約定優於配置的原則,簡單maven配置,自動化配置spring。引入簡單的jar後,便可輕鬆開啓一個web服務。sql
<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的方式運行咱們的子服務。服務器
官網地址:http://www.dropwizard.io/1.1.4/docs/架構
Dropwizard is a Java framework for developing ops-friendly, high-performance, RESTful web services.app
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的朋友估計很少,但提起JBoss的話熟識度應該是很高的。06年,JBoss被Redhat公司收購,收購後不久Redhat宣佈,將JBoss Application Server(JBoss AS)正式改名爲WildFly。 新名稱WildFly反映了服務器「很是靈活、輕量、不羈、自由」的特性。
Wildfly-swarm是一個基於Wildfly-core的微服務項目,和Wildfly應用服務器共同使用相同的內核組件MSC,擁有類似的架構和開發/構建方法。
基礎組件對好比下:
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體系下開發微服務的話,相信其它語言也有對應的開箱便可的腳手架,來幫助你開發細粒度的服務體系,再結合相應的中間件如服務註冊、發現,監控,服務熔斷、降級等等,快速的上手一個微服務的案例。
歪脖貳點零 ∣ 回首過往 · 架構將來。程序員,除了編碼,生活還應該有沉澱!