1. 程式人生 > >微服務體系下如何快速構建一個服務

微服務體系下如何快速構建一個服務

近兩三年的時間,微服務是熱度陡增,作為舊有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對持續整合是這樣定義的:持續整合是一種軟體開發實踐,即團隊開發成員經常整合他們的工作,通常每個成員每天至少整合一次,也就意味