伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

java微服務架構有哪些

lhl545545 ? 來源:電子發燒友網 ? 2018-02-09 10:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

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

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

java微服務架構有哪些

微服務是什么?

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

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

微服務能帶來哪些好處?

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

幾個Java微服務框架的例子

這里有幾個可用于Java開發的微服務框架:

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

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

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

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

如何使用DropWizard來創建微服務

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

你可以使用Maven來設置Dropwizard應用程序。怎么做呢?

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

LATEST VERSION

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

io.dropwizard

dropwizard-core

${version}

這將為你設置一個Maven項目。在這里,你可以創建配置類、應用程序類、表現類,資源類或一個健康檢查,還可以構建Fat JARS,然后運行應用程序。

在此鏈接中可以查看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微服務

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

你可以在這里找到所有的Spring Boot工程,你會發現Spring Boot擁有你的應用程序所需的所有基礎架構。無論你是在編寫安全類、配置類或是大數據類的應用程序,總能找到對應的Spring Boot工程。

Spring Boot的工程包括:

- Spring IO Platform:用于版本化應用程序的企業級分發。

- Spring Framework:用于事務管理、依賴注入、數據訪問、消息傳遞和Web應用程序。

- Spring Cloud:用于分布式系統,用于構建或部署你的微服務。

- Spring Data:用于與數據訪問相關的微服務,不管是映射還是歸約,關系型還是非關系型。

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

- Spring Security:用于授權和認證支持。

- Spring REST文檔:用于RESTful服務文檔化。

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

- Spring Mobile:適用于移動網絡應用。

示例代碼:

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規范。Jersey應用程序可以擴展現有的JAX-RS實現,并通過添加功能和實用工具,使得RESTful服務更為簡單,客戶端開發變得更加輕松。

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

關于如何開始使用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容器。然而,它確實很粗魯地依賴注入實現。

Play框架

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

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

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可以幫助開發人員創建遵循RESTful架構模式的快速而又可擴展的Web API。它具有不錯的路由和過濾功能,可用于Java SE/EE、OSGi、Google AppEngine(Google Compute的一部分)、Android和其他主要的平臺。

由于它的社區是封閉的,因此Restlet的學習曲線比較陡峭,但是你可以從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”;

}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    2022全新版!Java分布式架構設計與開發實戰(完結)

    2022全新版!Java分布式架構設計與開發實戰(完結) 分庫分表實戰:Java海量數據存儲架構設計 在現代互聯網應用中,隨著業務規模的指數級增長,數據庫性能瓶頸已成為制約系統發展的
    發表于 03-30 15:20

    Springboot+SpringData+SpringCloud微服務架構課程

    ? 后端進階必學:SpringCloud 微服務高可用落地實戰 在互聯網技術飛速迭代的今天,單體應用架構已逐漸難以承載億級流量的重擔。對于渴望突破瓶頸、邁向架構師行列的后端開發者而言,掌握微服
    的頭像 發表于 03-19 16:08 ?230次閱讀

    光伏四可裝置軟件系統架構微服務化設計與容器化部署方案

    ,某一模塊升級需整體停機,無法適配光伏場景對實時性與連續性的要求;物理機部署模式則導致環境一致性差,跨場景遷移成本高。為此,基于微服務化設計與容器化部署的軟件架構應運而生,通過“功能解耦、彈性部署、高效
    的頭像 發表于 03-03 15:47 ?480次閱讀

    基于OpenTelemetry的全鏈路追蹤微服務可觀測性實踐

    微服務拆分到第三年,我們的服務數量從最初的5個膨脹到了47個。一個用戶下單請求要經過API Gateway -> 用戶服務 -> 商品服務 -> 庫存
    的頭像 發表于 02-26 15:43 ?476次閱讀

    Istio服務網格的核心原理與部署實戰

    微服務拆分之后,服務間調用關系變得復雜。一個請求從網關進來,經過認證服務、用戶服務、訂單服務、庫存服務
    的頭像 發表于 02-26 09:49 ?286次閱讀

    Istio服務網格生產環境性能調優的最佳實踐

    隨著微服務架構的普及,服務間通信的復雜度呈指數級增長。傳統的應用層負載均衡和服務發現方案已經無法滿足現代云原生應用的需求。Istio作為目前最成熟的
    的頭像 發表于 01-20 15:40 ?326次閱讀

    Java開發者必看:Tomcat、Jetty、WildFly 三大主流應用服務器選型指南(附效率工具Perforce JRebel推薦)

    Java應用服務器怎么選?Tomcat輕量高效,Jetty靈活嵌入,WildFly企業級全能。無論是微服務還是復雜系統,選對服務器事半功倍。文末還有開發神器推薦,助你告別漫長部署,即刻
    的頭像 發表于 12-26 11:16 ?479次閱讀
    <b class='flag-5'>Java</b>開發者必看:Tomcat、Jetty、WildFly 三大主流應用<b class='flag-5'>服務</b>器選型指南(附效率工具Perforce JRebel推薦)

    華納云VPS容器服務網格流量管理:實現微服務高效路由

    在云計算和微服務架構日益普及的今天,華納云香港VPS憑借其優越的地緣優勢和網絡自由,成為眾多企業部署容器化應用的熱門選擇。復雜的微服務架構帶來了流量管理的巨大挑戰。本文將深入探討如何利
    的頭像 發表于 10-16 17:09 ?630次閱讀

    基于RFID與微服務架構的智能倉庫管理系統:實現倉儲數據的全鏈路精準采集與管控

    針對傳統倉儲管理中普遍存在的賬實不符、流程效率低下及信息孤島等問題,本文介紹一套基于RFID射頻識別技術與微服務軟件架構的智能倉庫管理系統。系統通過“一物一碼”的電子身份標識,實現了對物資從入庫
    的頭像 發表于 10-13 11:18 ?910次閱讀
    基于RFID與<b class='flag-5'>微服務</b><b class='flag-5'>架構</b>的智能倉庫管理系統:實現倉儲數據的全鏈路精準采集與管控

    如何基于Nginx構建微服務網關

    今天,我將分享我們團隊如何基于Nginx構建了一個日均處理10億+請求的微服務網關,以及踩過的那些坑。這套方案已經穩定運行2年+,經歷過多次大促考驗。
    的頭像 發表于 09-02 16:29 ?937次閱讀

    Jtti海外VPS微服務架構下的日志采集與分析優化方案

    隨著跨境業務和分布式應用的普及,越來越多的企業在海外VPS上構建微服務架構,以提升系統擴展性和靈活性。然而,微服務化帶來了一個新的挑戰:日志數據分散在多個服務和節點中,若缺乏統一采集與
    的頭像 發表于 08-27 17:13 ?673次閱讀

    深入剖析RabbitMQ高可用架構設計

    微服務架構中,消息隊列故障導致的系統不可用率高達27%!如何構建一個真正可靠的消息中間件架構?本文將深入剖析RabbitMQ高可用設計的核心要點。
    的頭像 發表于 08-18 11:19 ?1062次閱讀

    電商API的微服務架構優化策略

    ? 隨著電子商務的快速發展,API(應用程序編程接口)已成為電商平臺的核心組件,負責連接用戶、商家和后臺系統。微服務架構通過將應用拆分為獨立、可擴展的服務單元,顯著提升了系統的靈活性和可維護性。然而
    的頭像 發表于 07-23 14:30 ?701次閱讀
    電商API的<b class='flag-5'>微服務</b><b class='flag-5'>架構</b>優化策略

    蔡司“微服務”——全能在線售后管家,24小時守護您的設備!

    還在為設備故障煩惱? 急需技術支援卻找不到人? 想快速獲取用戶手冊或軟件升級? 現在 只需微信掃一掃設備上的藍色標簽二維碼 蔡司“微服務”一鍵觸達! 9大功能板塊 全方位解決您的售后需求 服務更高
    發表于 07-10 16:44 ?1660次閱讀
    蔡司“<b class='flag-5'>微服務</b>”——全能在線售后管家,24小時守護您的設備!

    企業使用NVIDIA NeMo微服務構建AI智能體平臺

    已發布的 NeMo 微服務可與合作伙伴平臺集成,作為創建 AI 智能體的構建模塊,使用商業智能與強大的邏輯推理模型 (包括 NVIDIA Llama Nemotron) 處理更多任務。
    的頭像 發表于 04-27 15:05 ?1443次閱讀