一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

java微服務(wù)架構(gòu)有哪些

lhl545545 ? 來源:電子發(fā)燒友網(wǎng) ? 2018-02-09 10:34 ? 次閱讀

前言

本文首先簡單介紹了微服務(wù)的概念以及使用微服務(wù)所能帶來的優(yōu)勢,然后結(jié)合實例介紹了幾個常見的Java微服務(wù)框架。

微服務(wù)在開發(fā)領(lǐng)域的應(yīng)用越來越廣泛,因為開發(fā)人員致力于創(chuàng)建更大、更復(fù)雜的應(yīng)用程序,而這些應(yīng)用程序作為微小服務(wù)的組合能夠更好地得以開發(fā)和管理。這些微小的服務(wù)可以組合在一起工作,并實現(xiàn)更大、應(yīng)用更廣泛的功能。現(xiàn)在出現(xiàn)了很多的工具來滿足使用逐段法而不是一次性地設(shè)計和構(gòu)建應(yīng)用程序的所有需求。今天,我們來看一下什么是微服務(wù)、使用微服務(wù)的好處,以及幾個代碼示例。

java微服務(wù)架構(gòu)有哪些

微服務(wù)是什么?

微服務(wù)是一種面向服務(wù)的架構(gòu)風(fēng)格(Java開發(fā)人員最重要的技能之一),其中,應(yīng)用程序被構(gòu)建為多個不同的小型服務(wù)的集合而不是單個應(yīng)用程序。與單個程序不同的是,微服務(wù)讓你可以同時運行多個獨立的應(yīng)用程序,而這些獨立的應(yīng)用程序可以使用不同的編碼或編程語言來創(chuàng)建。龐大而又復(fù)雜的應(yīng)用程序可以由多個可自行執(zhí)行的簡單而又獨立的程序所組成。這些較小的程序組合在一起,可以提供龐大的單程序所具備的所有功能。

微服務(wù)捕獲了你的業(yè)務(wù)場景,回答了“你想要試著解決什么問題”這個問題。微服務(wù)的開發(fā)團隊的成員數(shù)量比較少,而且可以用任何語言、任何框架進行開發(fā)。每個相關(guān)的程序都是獨立地版本化、執(zhí)行和擴展。這些微服務(wù)可以與其他微服務(wù)進行交互,并且具有唯一的URL或名字,同時,即使遇到故障,也能始終保持可用性和一致性。

微服務(wù)能帶來哪些好處?

使用微服務(wù)能帶來多個好處,其中有一個好處是,由于這些較小的應(yīng)用程序無需使用相同的編程語言,因此,開發(fā)人員可以使用他們最熟悉的語言。這有助于開發(fā)人員用更低的成本和更少的錯誤來開發(fā)程序。靈活性和低成本這兩個特點也表現(xiàn)在可以將這些較小的程序重用在其他項目中,從而使其更有效率。

幾個Java微服務(wù)框架的例子

這里有幾個可用于Java開發(fā)的微服務(wù)框架:

Spring Boot:這可能是最好的Java微服務(wù)框架了,它適用于控制反轉(zhuǎn)、面向切面編程等等。

Jersey:這個開源框架支持Java的JAX-RS API,使用起來非常容易。

Swagger:在為你提供開發(fā)門戶網(wǎng)頁的同時,能幫助你生成API文檔,以允許用戶測試你的API。

你也可以考慮使用其他一些框架,包括:Dropwizard、Ninja Web框架、Play框架、RestExpress、Restlet、Restx和Spark Framework。

如何使用DropWizard來創(chuàng)建微服務(wù)

DropWizard將成熟穩(wěn)定的Java庫集成在一個輕量級的包中,你可以在自己的應(yīng)用程序中使用這個包。它使用了Jetty for HTTP、Jersey for REST和Jackson for JSON,以及Metrics、Guava、Logback、Hibernate Validator、Apache HttpClient、Liquibase、Mustache、Joda Time和Freemarker。

你可以使用Maven來設(shè)置Dropwizard應(yīng)用程序。怎么做呢?

在你的POM文件中,添加一個dropwizard.version屬性,值為DropWizard的最新版本。

LATEST VERSION

<--Then list the dropwizard-core library:-->

io.dropwizard

dropwizard-core

${version}

這將為你設(shè)置一個Maven項目。在這里,你可以創(chuàng)建配置類、應(yīng)用程序類、表現(xiàn)類,資源類或一個健康檢查,還可以構(gòu)建Fat JARS,然后運行應(yīng)用程序。

在此鏈接中可以查看Dropwizard用戶手冊,這個鏈接是GitHub庫。

示例代碼:

package com.example.helloworld;

import com.yammer.dropwizard.config.Configuration;

import com.fasterxml.jackson.annotation.JsonProperty;

import org.hibernate.validator.constraints.NotEmpty;

public class HelloWorldConfiguration extends Configuration {

@NotEmpty

@JsonProperty

private String template;

@NotEmpty

@JsonProperty

private String defaultName = “Stranger”;

public String getTemplate() {

return template;

}

public String getDefaultName() {

return defaultName;

}

}

Spring Boot微服務(wù)

Spring Boot讓你可以通過嵌入式服務(wù)器將它提供的Java應(yīng)用程序與你自己的應(yīng)用程序一起使用。它使用了Tomcat,因此你不必使用其他的Java EE容器。Spring Boot的教程示例可以訪問這里。

你可以在這里找到所有的Spring Boot工程,你會發(fā)現(xiàn)Spring Boot擁有你的應(yīng)用程序所需的所有基礎(chǔ)架構(gòu)。無論你是在編寫安全類、配置類或是大數(shù)據(jù)類的應(yīng)用程序,總能找到對應(yīng)的Spring Boot工程。

Spring Boot的工程包括:

- Spring IO Platform:用于版本化應(yīng)用程序的企業(yè)級分發(fā)。

- Spring Framework:用于事務(wù)管理、依賴注入、數(shù)據(jù)訪問、消息傳遞和Web應(yīng)用程序。

- Spring Cloud:用于分布式系統(tǒng),用于構(gòu)建或部署你的微服務(wù)。

- Spring Data:用于與數(shù)據(jù)訪問相關(guān)的微服務(wù),不管是映射還是歸約,關(guān)系型還是非關(guān)系型。

- Spring Batch:用于高級別的批量操作。

- Spring Security:用于授權(quán)和認證支持。

- Spring REST文檔:用于RESTful服務(wù)文檔化。

- Spring Social:用于連接社交媒體API。

- Spring Mobile:適用于移動網(wǎng)絡(luò)應(yīng)用。

示例代碼:

import org.springframework.boot.*;

import org.springframework.boot.autoconfigure.*;

import org.springframework.stereotype.*;

import org.springframework.web.bind.annotation.*;

@RestController

@EnableAutoConfiguration

public class Example {

@RequestMapping(“/”)

String home() {

return “Hello World!”;

}

public static void main(String[] args) throws Exception {

SpringApplication.run(Example.class, args);

}

}

Jersey

Jersey RESTful框架是開源的,它基于JAX-RS規(guī)范。Jersey應(yīng)用程序可以擴展現(xiàn)有的JAX-RS實現(xiàn),并通過添加功能和實用工具,使得RESTful服務(wù)更為簡單,客戶端開發(fā)變得更加輕松。

Jersey最好的一點是,它的文檔很詳細,有很多例子。它的速度很快,路由也非常簡單。

關(guān)于如何開始使用Jersey的文檔在這里,而更多的文檔可以在這里找到。

你可以嘗試運行下面的示例代碼:

package org.glassfish.jersey.examples.helloworld;

import javax.ws.rs.GET;

import javax.ws.rs.Path;

import javax.ws.rs.Produces;

@Path(“helloworld”)

public class HelloWorldResource {

public static final String CLICHED_MESSAGE = “Hello World!”;

@GET

@Produces(“text/plain”)

public String getHello() {

return CLICHED_MESSAGE;

}

}

Jersey可以很容易地與其他庫一起使用,如Netty或Grizzly,它支持異步連接。它不需要servlet容器。然而,它確實很粗魯?shù)匾蕾囎⑷雽崿F(xiàn)。

Play框架

Play框架可以讓你很方便地使用Scala和Java來構(gòu)建、創(chuàng)建和部署Web應(yīng)用程序。對于需要并行處理遠程調(diào)用的RESTful應(yīng)用程序來說,Play框架是理想的選擇。它是模塊化的,支持異步。Play框架的社區(qū)也是所有微服務(wù)框架中最大的社區(qū)之一。

你可以嘗試運行下面的示例代碼:

package controllers;

import play.mvc.*;

public class Application extends Controller {

public static void index() {

render();

}

public static void sayHello(String myName) {

render(myName);

}

}

Restlet

Restlet可以幫助開發(fā)人員創(chuàng)建遵循RESTful架構(gòu)模式的快速而又可擴展的Web API。它具有不錯的路由和過濾功能,可用于Java SE/EE、OSGi、Google AppEngine(Google Compute的一部分)、Android和其他主要的平臺。

由于它的社區(qū)是封閉的,因此Restlet的學(xué)習(xí)曲線比較陡峭,但是你可以從StackOverflow上獲得幫助。

示例代碼:

package firstSteps;

import org.restlet.resource.Get;

import org.restlet.resource.ServerResource;

/**

* Resource which has only one representation.

*/

public class HelloWorldResource extends ServerResource {

@Get

public String represent() {

return “hello, world”;

}

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關(guān)推薦

    微服務(wù)架構(gòu)幾種典型的基礎(chǔ)框架,你了解嗎?

    SpringCloud、Dubbo、Dropwizard、Akka等是常見微服務(wù)框架。SpringCloud基于SpringBoot,生態(tài)豐富;Dropwizard輕量且繼承SpringBoot優(yōu)點
    的頭像 發(fā)表于 03-04 11:05 ?259次閱讀

    微服務(wù)容器化部署好處多嗎?

    微服務(wù)容器化部署好處很多,包括環(huán)境一致性、資源高效利用、快速部署與啟動、隔離性與安全性、版本控制與回滾以及持續(xù)集成與持續(xù)部署。這些優(yōu)勢助力應(yīng)用可靠穩(wěn)定運行,提升開發(fā)運維效率,是現(xiàn)代軟件架構(gòu)的優(yōu)質(zhì)選擇。UU云小編認為
    的頭像 發(fā)表于 01-17 10:22 ?234次閱讀

    容器化能替代微服務(wù)嗎?兩者何區(qū)別

    容器化不能替代微服務(wù),但它是微服務(wù)的解決方案之一。微服務(wù)架構(gòu)的核心在于將大型應(yīng)用程序拆分為一系列小型、獨立的服務(wù),每個
    的頭像 發(fā)表于 01-13 10:40 ?284次閱讀

    如何使用Java語言快速開發(fā)一套智慧工地系統(tǒng)(源碼)

    使用Java語言快速開發(fā)一套智慧工地系統(tǒng),可以遵循以下步驟和策略: 1、確定系統(tǒng)架構(gòu) 微服務(wù)架構(gòu):采用Spring Cloud構(gòu)建微服務(wù),每
    的頭像 發(fā)表于 01-09 17:39 ?532次閱讀

    Java微服務(wù)中如何確保安全性?

    Java微服務(wù)架構(gòu)中確保安全性,可以采取以下措施: 身份驗證與授權(quán): 使用OAuth 2.0和OpenID Connect框架進行身份驗證和授權(quán)。OAuth2允許用戶在不分享憑證的情況下授權(quán)第三方
    的頭像 發(fā)表于 01-02 15:21 ?433次閱讀

    寶藏級微服務(wù)架構(gòu)工具合集

    寶藏級熱門微服務(wù)架構(gòu)工具包含Spring Boot、Eclipse Vert.X、Kubernetes、Tyk、RabbitMQ、Apache Kafka等。其中,Spring Boot簡化了微服務(wù)
    的頭像 發(fā)表于 12-21 16:33 ?491次閱讀

    k8s微服務(wù)架構(gòu)就是云原生嗎?兩者是什么關(guān)系

    k8s微服務(wù)架構(gòu)就是云原生嗎?K8s微服務(wù)架構(gòu)并不等同于云原生,但兩者之間存在密切的聯(lián)系。Kubernetes在云原生架構(gòu)中扮演著核心組件的
    的頭像 發(fā)表于 11-25 09:39 ?397次閱讀

    SSR與微服務(wù)架構(gòu)的結(jié)合應(yīng)用

    隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,前端技術(shù)棧不斷更新迭代,后端架構(gòu)也經(jīng)歷了從單體應(yīng)用到微服務(wù)的變革。在這個過程中,服務(wù)端渲染(SSR)作為一種提升頁面加載速度和SEO性能的技術(shù),與微服務(wù)
    的頭像 發(fā)表于 11-18 11:34 ?666次閱讀

    架構(gòu)與設(shè)計 常見微服務(wù)分層架構(gòu)的區(qū)別和落地實踐

    架構(gòu)風(fēng)格越傾向于清晰的職責(zé)定位,且讓領(lǐng)域模型成為架構(gòu)的核心。 基于這些架構(gòu)風(fēng)格,在軟件架構(gòu)設(shè)計過程中又有非常多的架構(gòu)分層模型。 傳統(tǒng)三層
    的頭像 發(fā)表于 10-22 15:34 ?518次閱讀
    <b class='flag-5'>架構(gòu)</b>與設(shè)計 常見<b class='flag-5'>微服務(wù)</b>分層<b class='flag-5'>架構(gòu)</b>的區(qū)別和落地實踐

    微服務(wù)架構(gòu)與容器云的關(guān)系與區(qū)別

    微服務(wù)架構(gòu)與容器云密切相關(guān)又有所區(qū)別。微服務(wù)將大型應(yīng)用拆分為小型、獨立的服務(wù),而容器云基于容器技術(shù),為微服務(wù)提供構(gòu)建、發(fā)布和運行的平臺。區(qū)別
    的頭像 發(fā)表于 10-21 17:28 ?451次閱讀

    入門級攻略:如何容器化部署微服務(wù)?

    第一步理解容器化基礎(chǔ),第二步創(chuàng)建Dockerfile,第三步構(gòu)建推送鏡像,第四步部署微服務(wù),第五步管理微服務(wù)、第六步優(yōu)化更新。容器化部署微服務(wù)是現(xiàn)代軟件開發(fā)中的一種高效方法,可提供良好的可移植性、可擴展性和管理性。容器化部署
    的頭像 發(fā)表于 10-09 10:08 ?297次閱讀

    服務(wù)器而言,ARM架構(gòu)與X86架構(gòu)什么區(qū)別?各自的優(yōu)勢在哪里?

    ,x86 架構(gòu)服務(wù)器在市場占主導(dǎo),強大處理能力和廣泛軟件兼容性,廣泛用于企業(yè)數(shù)據(jù)中心。ARM 架構(gòu)服務(wù)器近年崛起,憑借低功耗、高效能優(yōu)勢在
    的頭像 發(fā)表于 09-09 14:05 ?2571次閱讀

    Proxyless的多活流量和微服務(wù)治理

    1. 引言 1.1 項目的背景及意義 在當(dāng)今的微服務(wù)架構(gòu)中,應(yīng)用程序通常被拆分成多個獨立的服務(wù),這些服務(wù)通過網(wǎng)絡(luò)進行通信。這種架構(gòu)的優(yōu)勢在于
    的頭像 發(fā)表于 08-28 16:54 ?1852次閱讀
    Proxyless的多活流量和<b class='flag-5'>微服務(wù)</b>治理

    NVIDIA NIM微服務(wù)帶來巨大優(yōu)勢

    服務(wù)通過熱門 AI 模型為數(shù)百萬開發(fā)者帶來高達 5 倍的 token 效率提升,使他們能夠立即訪問在 NVIDIA DGX Cloud 上運行的 NIM 微服務(wù)
    的頭像 發(fā)表于 08-23 15:20 ?794次閱讀

    采用OpenUSD和NVIDIA NIM微服務(wù)創(chuàng)建精準(zhǔn)品牌視覺

    全球領(lǐng)先的創(chuàng)意和制作服務(wù)機構(gòu)率先采用 OpenUSD 和 NVIDIA NIM 微服務(wù)來創(chuàng)建精準(zhǔn)的品牌視覺。
    的頭像 發(fā)表于 08-01 14:33 ?623次閱讀