最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的遠程方法調(diào)用之RPC使用

 更新時間:2026年05月18日 10:21:33   作者:ktkiko11  
本文介紹了RPC的基本概念、核心思想及其在分布式系統(tǒng)中的作用,重點講解了Java中的三種RPC實現(xiàn)方式:RMI、Hessian和Dubbo,分別從適用場景、核心特點等方面做了對比對比較,并并提供了其基本實現(xiàn)代碼示例,總結(jié)了各框架的優(yōu)缺點,為實際開發(fā)中選擇合適的技術(shù)棧提供了參考

1. 什么是RPC?

RPC基礎(chǔ)介紹

Java中的遠程方法調(diào)用(Remote Procedure Call,RPC)是一種允許一個程序調(diào)用另一臺計算機上方法的技術(shù),就像在本地一樣。RPC的核心思想是簡化分布式計算,讓我們可以跨網(wǎng)絡(luò)調(diào)用遠程服務(wù),而不需要關(guān)心底層網(wǎng)絡(luò)細節(jié)。簡單來說,在它調(diào)用另一臺計算機上的方法的技術(shù)時,效果類似于調(diào)用本地方法。用一個例子來說明:

假設(shè)我們有一個客戶端程序,它需要訪問一個服務(wù)器上的資源,比如用戶信息。使用RPC,客戶端就可以像調(diào)用自己機器上的方法一樣,遠程調(diào)用服務(wù)器上提供的“獲取用戶信息”的方法。在客戶端的角度,它并不知道這個方法實際在另一臺機器上執(zhí)行,一切都像是本地操作。

RPC背后的核心目標

RPC的目標是讓分布式系統(tǒng)中的方法調(diào)用變得簡單。通過RPC,開發(fā)者不必關(guān)心網(wǎng)絡(luò)傳輸、數(shù)據(jù)格式轉(zhuǎn)換等細節(jié),只需要按照調(diào)用本地方法的方式來調(diào)用遠程方法。這種透明性為分布式應(yīng)用程序開發(fā)帶來了極大的便利。

RPC實現(xiàn)了“本地調(diào)用”的效果,但它實際是在網(wǎng)絡(luò)上完成了遠程方法調(diào)用。

2. 為什么使用RPC?

在分布式系統(tǒng)或微服務(wù)架構(gòu)中,應(yīng)用程序通常被分解為多個獨立的服務(wù),每個服務(wù)都可能運行在不同的服務(wù)器上。為了實現(xiàn)這些服務(wù)之間的通信,我們可以使用RPC。以下是使用RPC的幾個主要原因:

1. 解耦服務(wù),提升靈活性

  • RPC允許不同的服務(wù)在不同的機器上獨立運行。每個服務(wù)都可以獨立開發(fā)、部署和擴展。
  • 使用RPC后,服務(wù)之間只通過方法調(diào)用進行交互,而不需要知道彼此的內(nèi)部實現(xiàn)。這樣,服務(wù)的實現(xiàn)方式可以自由改變,而不會影響到依賴它的其他服務(wù)。

2. 簡化網(wǎng)絡(luò)通信

  • 在沒有RPC的情況下,我們需要手動處理網(wǎng)絡(luò)通信,比如套接字編程、序列化/反序列化數(shù)據(jù)、處理網(wǎng)絡(luò)延遲等。
  • RPC將這些網(wǎng)絡(luò)細節(jié)都隱藏在底層,使開發(fā)者可以像調(diào)用本地方法一樣簡單地調(diào)用遠程服務(wù),降低了開發(fā)復(fù)雜度。

3. 提高開發(fā)效率

  • 通過RPC,開發(fā)者不需要學(xué)習(xí)復(fù)雜的網(wǎng)絡(luò)編程知識。這對跨團隊協(xié)作、快速開發(fā)原型等都有幫助,極大地提升了開發(fā)效率。

4. 便于跨語言、跨平臺調(diào)用

  • 現(xiàn)代RPC協(xié)議(例如gRPC)支持不同的編程語言,能使Java客戶端調(diào)用Python或Go編寫的服務(wù)。
  • 這讓服務(wù)能夠運行在不同平臺上,支持多樣化的技術(shù)棧,給系統(tǒng)設(shè)計帶來了更大靈活性。

RPC為分布式系統(tǒng)提供了強大的跨服務(wù)、跨語言通信能力,簡化了復(fù)雜的網(wǎng)絡(luò)編程工作,使得多服務(wù)協(xié)作變得更加自然。

3. RPC的基本原理

RPC的工作過程看似簡單,但它其實包含了多個步驟。在概念上,可以將RPC分為客戶端請求服務(wù)器響應(yīng)兩個部分,我們先簡要了解流程,再詳細拆解每一步的工作機制。

RPC的基本流程

  1. 客戶端請求:客戶端調(diào)用一個“本地代理方法”,這個方法會將請求傳遞給遠程服務(wù)器。
  2. 網(wǎng)絡(luò)傳輸:客戶端將請求的數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到遠程服務(wù)器。
  3. 服務(wù)器處理:服務(wù)器接收到請求,找到相應(yīng)的服務(wù)方法,執(zhí)行并將結(jié)果返回。
  4. 結(jié)果返回:服務(wù)器將結(jié)果傳回客戶端,客戶端接收并使用結(jié)果,完成調(diào)用。

關(guān)鍵組成部分

要實現(xiàn)這一流程,RPC通常需要以下幾個關(guān)鍵組成部分:

  • 客戶端代理(Client Stub):客戶端的“本地代理方法”,它偽裝成一個本地方法調(diào)用,背后卻是將請求打包并發(fā)送給服務(wù)器。
  • 服務(wù)器代理(Server Stub):服務(wù)器上的代理,它負責(zé)接收客戶端請求,解包請求參數(shù)并調(diào)用實際的遠程方法。
  • 網(wǎng)絡(luò)傳輸:負責(zé)在客戶端和服務(wù)器之間傳輸數(shù)據(jù),通常采用TCP/IP協(xié)議。
  • 序列化與反序列化:將方法參數(shù)轉(zhuǎn)換成可以傳輸?shù)母袷剑ū热鏙SON、XML等),并在接收到數(shù)據(jù)后反向還原成對象。

流程拆解

我們再來看一下具體每一步發(fā)生了什么:

方法調(diào)用(客戶端代理)

  • 客戶端調(diào)用一個本地的“代理方法”,這個方法看似本地,但會觸發(fā)遠程調(diào)用。
  • 代理會把調(diào)用的方法名稱參數(shù)打包,并交給下一個環(huán)節(jié)(序列化)。

序列化(客戶端代理)

  • 代理將方法名稱和參數(shù)序列化為一種通用的格式(如JSON、XML),方便跨網(wǎng)絡(luò)傳輸。
  • 序列化后的數(shù)據(jù)包被發(fā)送到服務(wù)器。

數(shù)據(jù)傳輸(網(wǎng)絡(luò)傳輸)

  • 序列化數(shù)據(jù)包通過網(wǎng)絡(luò)(一般是TCP/IP)傳輸?shù)侥繕朔?wù)器。
  • 這部分由RPC框架負責(zé)封裝,使調(diào)用方無須處理底層網(wǎng)絡(luò)操作。

解包與方法執(zhí)行(服務(wù)器代理)

  • 服務(wù)器代理接收到數(shù)據(jù)包后,先進行反序列化,將其還原為方法名稱和參數(shù)。
  • 然后,代理找到相應(yīng)的方法,并傳入?yún)?shù)執(zhí)行。

返回結(jié)果

  • 方法執(zhí)行完畢后,結(jié)果數(shù)據(jù)被序列化,打包并通過網(wǎng)絡(luò)返回給客戶端。
  • 客戶端收到結(jié)果后,代理將數(shù)據(jù)反序列化,還原成方法調(diào)用結(jié)果,調(diào)用完成。

RPC通過客戶端代理、服務(wù)器代理和網(wǎng)絡(luò)傳輸?shù)呐浜?,模仿?ldquo;本地調(diào)用”的效果。每一個步驟背后都由RPC框架完成復(fù)雜的底層工作,讓開發(fā)者無需關(guān)注復(fù)雜的網(wǎng)絡(luò)細節(jié)。

4. Java中的RPC實現(xiàn)方式

RMI(Remote Method Invocation)

簡介

RMI是Java內(nèi)置的RPC實現(xiàn),它允許Java應(yīng)用程序之間調(diào)用遠程對象,類似于本地調(diào)用。RMI只支持Java語言,因此在Java應(yīng)用之間通信時相對方便,但只能用于Java環(huán)境,限制了跨語言調(diào)用。

特點

  • 單一語言:只支持Java,無法在其他語言環(huán)境中使用。
  • 序列化機制:基于Java自帶的序列化機制,傳輸Java對象較為方便,但序列化性能相對較慢。
  • 簡單實現(xiàn):因為是Java自帶的API,開發(fā)和部署相對簡單,不需要額外的第三方依賴。
  • 同步調(diào)用:通常采用同步的調(diào)用方式,不適合高并發(fā)環(huán)境。

使用場景

RMI適用于小型Java系統(tǒng)之間的簡單遠程調(diào)用,例如在單一Java環(huán)境中做分布式處理、調(diào)用Java應(yīng)用中的服務(wù)等。但是,由于其性能和跨語言局限性,它并不適合復(fù)雜的大規(guī)模微服務(wù)架構(gòu)。

Hessian

簡介

Hessian是一個輕量級的二進制RPC協(xié)議,支持Java與多種其他語言間的跨語言調(diào)用。Hessian使用二進制格式來傳輸數(shù)據(jù),相較于文本協(xié)議(如JSON、XML)具有更好的傳輸性能。

特點

  • 跨語言支持:Hessian提供多種語言實現(xiàn),支持Java與Python、PHP等其他語言之間的通信。
  • 二進制序列化:采用二進制格式,傳輸數(shù)據(jù)體積小,序列化與反序列化性能較高。
  • 輕量級:Hessian實現(xiàn)較為簡單,適合快速集成到應(yīng)用中。
  • 較好的兼容性:不依賴復(fù)雜的第三方組件,適合與微服務(wù)架構(gòu)結(jié)合。

使用場景

Hessian適合跨語言、輕量級分布式系統(tǒng),尤其是在服務(wù)間傳遞大量數(shù)據(jù)時,Hessian的二進制傳輸可以減少網(wǎng)絡(luò)開銷。常用于內(nèi)部微服務(wù)通信,如Java與其他語言服務(wù)的接口調(diào)用,適合數(shù)據(jù)傳輸量較大的應(yīng)用場景。

Dubbo

簡介

Dubbo是阿里巴巴開源的高性能Java RPC框架,提供了更加完整的分布式服務(wù)治理功能。Dubbo不僅僅是RPC,還支持服務(wù)注冊與發(fā)現(xiàn)、負載均衡、容錯機制、監(jiān)控等特性,適合構(gòu)建復(fù)雜的微服務(wù)架構(gòu)。

特點

  • 支持服務(wù)治理:內(nèi)置服務(wù)注冊、發(fā)現(xiàn)、負載均衡、容錯處理等功能,支持多種注冊中心(如Zookeeper、Nacos)。
  • 高性能:Dubbo采用了高效的網(wǎng)絡(luò)協(xié)議和線程模型,能支持高并發(fā)和低延遲。
  • 豐富的協(xié)議支持:Dubbo支持多種傳輸協(xié)議(如Dubbo協(xié)議、RMI、Hessian等),開發(fā)者可以根據(jù)需求選擇。
  • 支持異步調(diào)用:Dubbo支持異步調(diào)用,能夠處理高并發(fā)場景。

使用場景

Dubbo適合大型微服務(wù)架構(gòu)和分布式系統(tǒng),特別是需要服務(wù)治理和負載均衡的復(fù)雜系統(tǒng)。它廣泛應(yīng)用于企業(yè)級分布式應(yīng)用,例如電商系統(tǒng)的訂單服務(wù)、支付服務(wù)等,支持服務(wù)的快速擴展和高性能需求。

三者對比與選擇

特性RMIHessianDubbo
語言支持僅支持Java支持Java和其他語言主要支持Java
序列化方式Java內(nèi)置序列化二進制序列化支持多種協(xié)議和序列化
性能較低較高高(適合高并發(fā))
服務(wù)治理有,支持注冊、發(fā)現(xiàn)、負載均衡等
適用場景簡單的Java遠程調(diào)用跨語言輕量級RPC大型分布式系統(tǒng)、微服務(wù)架構(gòu)
  • RMI:適合簡單、輕量的Java系統(tǒng)間調(diào)用,不需要復(fù)雜的服務(wù)治理。
  • Hessian:適合跨語言、輕量級服務(wù)調(diào)用,有較好的傳輸效率,適用于小型分布式系統(tǒng)。
  • Dubbo:適合需要服務(wù)治理的大規(guī)模Java微服務(wù)架構(gòu),性能高、功能豐富,是企業(yè)級分布式系統(tǒng)的優(yōu)選。

如果對多語言支持需求高,選Hessian;如果是單一Java微服務(wù)場景,選Dubbo。

5.RMI、Hessian、Dubbo的實現(xiàn)詳解

RMI(Remote Method Invocation)

RMI是Java內(nèi)置的RPC實現(xiàn)方式,適合Java-to-Java的遠程調(diào)用。在RMI中,服務(wù)器端的遠程對象可以被客戶端遠程調(diào)用,像在本地調(diào)用一樣。下面,我們通過四個步驟來實現(xiàn)RMI的基本過程。

實現(xiàn)步驟

  1. 定義遠程接口:指定哪些方法可以被遠程調(diào)用。
  2. 實現(xiàn)遠程接口:服務(wù)器端實現(xiàn)遠程接口中的方法。
  3. 啟動RMI服務(wù)器:將遠程對象注冊到RMI注冊表中,以便客戶端查找。
  4. 客戶端調(diào)用遠程方法:客戶端通過RMI注冊表查找遠程對象,并調(diào)用方法。

代碼示例

Step 1: 定義遠程接口

首先,定義一個遠程接口,繼承java.rmi.Remote,并聲明拋出RemoteException。例如,我們創(chuàng)建一個HelloService接口。

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface HelloService extends Remote {
    String sayHello(String name) throws RemoteException;
}

Step 2: 實現(xiàn)遠程接口

在服務(wù)器端,我們創(chuàng)建HelloService的實現(xiàn)類,并實現(xiàn)其中的方法。

import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;

public class HelloServiceImpl extends UnicastRemoteObject implements HelloService {

    protected HelloServiceImpl() throws RemoteException {
        super();
    }

    @Override
    public String sayHello(String name) throws RemoteException {
        return "Hello, " + name + "!";
    }
}

Step 3: 啟動RMI服務(wù)器

將實現(xiàn)類實例化,并將其注冊到RMI注冊表中。這樣,客戶端可以通過注冊表找到這個遠程對象。

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class RMIServer {
    public static void main(String[] args) {
        try {
            HelloService service = new HelloServiceImpl();
            Registry registry = LocateRegistry.createRegistry(1099);
            registry.bind("HelloService", service);
            System.out.println("RMI server is running...");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Step 4: 客戶端調(diào)用遠程方法

在客戶端,連接到RMI注冊表,查找遠程對象,并調(diào)用方法。

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class RMIClient {
    public static void main(String[] args) {
        try {
            Registry registry = LocateRegistry.getRegistry("localhost", 1099);
            HelloService service = (HelloService) registry.lookup("HelloService");
            String response = service.sayHello("Alice");
            System.out.println("Response from server: " + response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Hessian

Hessian是一個輕量級的二進制協(xié)議,支持跨語言調(diào)用,適用于Java與其他語言間的通信。Hessian實現(xiàn)簡單,傳輸數(shù)據(jù)體積小,序列化效率高。以下是Hessian的服務(wù)端與客戶端實現(xiàn)步驟。

實現(xiàn)步驟

  1. 添加Hessian依賴:引入Maven依賴。
  2. 定義遠程接口和實現(xiàn):編寫接口和實現(xiàn)類。
  3. 配置HessianServlet:暴露服務(wù)接口。
  4. 客戶端調(diào)用遠程服務(wù):客戶端通過Hessian代理調(diào)用服務(wù)。

代碼示例

Step 1: 添加Hessian依賴

在Maven項目的pom.xml中加入以下依賴。

<dependency>
    <groupId>com.caucho</groupId>
    <artifactId>hessian</artifactId>
    <version>4.0.63</version>
</dependency>

Step 2: 定義遠程接口和實現(xiàn)

定義遠程接口HelloService并實現(xiàn)它:

public interface HelloService {
    String sayHello(String name);
}
public class HelloServiceImpl implements HelloService {
    @Override
    public String sayHello(String name) {
        return "Hello, " + name + "!";
    }
}

Step 3: 配置HessianServlet

在Web應(yīng)用中使用HessianServlet,將接口 暴露為遠程服務(wù)。

<!-- web.xml -->
<servlet>
    <servlet-name>helloService</servlet-name>
    <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
    <init-param>
        <param-name>home-api</param-name>
        <param-value>com.example.HelloService</param-value>
    </init-param>
    <init-param>
        <param-name>home-class</param-name>
        <param-value>com.example.HelloServiceImpl</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>helloService</servlet-name>
    <url-pattern>/helloService</url-pattern>
</servlet-mapping>

Step 4: 客戶端調(diào)用遠程服務(wù)

客戶端通過Hessian的HessianProxyFactory代理遠程服務(wù)。

import com.caucho.hessian.client.HessianProxyFactory;

public class HessianClient {
    public static void main(String[] args) {
        try {
            String url = "http://localhost:8080/helloService";
            HessianProxyFactory factory = new HessianProxyFactory();
            HelloService service = (HelloService) factory.create(HelloService.class, url);
            String result = service.sayHello("Alice");
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Dubbo

Dubbo是一個高性能Java RPC框架,廣泛應(yīng)用于企業(yè)級微服務(wù)架構(gòu)中。Dubbo提供了服務(wù)治理功能,支持負載均衡、服務(wù)發(fā)現(xiàn)、熔斷等,適合大規(guī)模分布式系統(tǒng)。

實現(xiàn)步驟

  1. 添加Dubbo和Zookeeper依賴:引入Dubbo和Zookeeper依賴。
  2. 定義遠程接口和實現(xiàn):編寫服務(wù)接口和實現(xiàn)類。
  3. 配置Dubbo注冊中心和服務(wù):使用Zookeeper等注冊中心管理服務(wù)。
  4. 客戶端調(diào)用遠程服務(wù):通過Dubbo動態(tài)代理調(diào)用服務(wù)。

代碼示例

Step 1: 添加Dubbo和Zookeeper依賴

在Maven項目的pom.xml中加入以下依賴:

<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.7.8</version>
</dependency>
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.5.7</version>
</dependency>

Step 2: 定義遠程接口和實現(xiàn)

和前面類似,定義HelloService接口和實現(xiàn)類。

public interface HelloService {
    String sayHello(String name);
}
import org.apache.dubbo.config.annotation.Service;

@Service // Dubbo的Service注解
public class HelloServiceImpl implements HelloService {
    @Override
    public String sayHello(String name) {
        return "Hello, " + name + "!";
    }
}

Step 3: 配置Dubbo注冊中心和服務(wù)

Dubbo支持服務(wù)注冊與發(fā)現(xiàn),通常使用Zookeeper作為注冊中心。

<!-- Dubbo配置 -->
<dubbo:application name="HelloServiceProvider"/>
<dubbo:registry address="zookeeper://localhost:2181"/>
<dubbo:protocol name="dubbo" port="20880"/>
<dubbo:service interface="com.example.HelloService" ref="helloService"/>

Step 4: 客戶端調(diào)用遠程服務(wù)

客戶端通過Dubbo的動態(tài)代理機制來調(diào)用遠程服務(wù)。

import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;

public class DubboClient {
    public static void main(String[] args) {
        ReferenceConfig<HelloService> reference = new ReferenceConfig<>();
        reference.setApplication(new ApplicationConfig("HelloServiceConsumer"));
        reference.setRegistry(new RegistryConfig("zookeeper://localhost:2181"));
        reference.setInterface(HelloService.class);
        
        HelloService service = reference.get();
        String result = service.sayHello("Alice");
        System.out.println(result);
    }
}

總結(jié)

  1. RMI適合簡單Java-to-Java調(diào)用。
  2. Hessian支持跨語言、輕量級的遠程調(diào)用。
  3. Dubbo適合大規(guī)模分布式系統(tǒng),提供服務(wù)治理功能。

每種實現(xiàn)方式都有獨特的使用場景,選擇時可根據(jù)系統(tǒng)需求靈活決定。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java_Spring之XML?的?AOP?配置

    Java_Spring之XML?的?AOP?配置

    這篇文章主要介紹了Java_Spring中基于XML的AOP配置,上篇講到的是基于注解的AOP配置,對XML感興趣的同學(xué)可以參考閱讀本文
    2023-04-04
  • Java中讀寫鎖ReadWriteLock的原理與應(yīng)用詳解

    Java中讀寫鎖ReadWriteLock的原理與應(yīng)用詳解

    Java并發(fā)編程提供了讀寫鎖,主要用于讀多寫少的場景,今天我們就重點來講解讀寫鎖ReadWriteLock的原理與應(yīng)用場景,感興趣的可以了解一下
    2022-09-09
  • Spring Boot ActiveMQ連接池配置過程解析

    Spring Boot ActiveMQ連接池配置過程解析

    這篇文章主要介紹了Spring Boot ActiveMQ連接池配置過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 關(guān)于SpringBoot2.7.6連接nacos遇到的一些問題

    關(guān)于SpringBoot2.7.6連接nacos遇到的一些問題

    這篇文章主要介紹了關(guān)于SpringBoot2.7.6連接nacos遇到的一些問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java 重寫時應(yīng)當遵守的 11 條規(guī)則

    Java 重寫時應(yīng)當遵守的 11 條規(guī)則

    這篇文章主要介紹了Java 重寫時應(yīng)當遵守的 11 條規(guī)則,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • mybatis實現(xiàn)批量修改-xml方式

    mybatis實現(xiàn)批量修改-xml方式

    這篇文章主要介紹了mybatis實現(xiàn)批量修改-xml方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 在Java中判斷兩個Long對象是否相等

    在Java中判斷兩個Long對象是否相等

    這篇文章主要介紹了在Java中判斷兩個Long對象是否相等的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 解決IDEA中Maven項目中JSTL標簽無效問題

    解決IDEA中Maven項目中JSTL標簽無效問題

    這篇文章主要介紹了關(guān)于IDEA中Maven項目中JSTL標簽無效問題的解決方法,需要的朋友可以參考下
    2018-09-09
  • SpringCloud Eureka自我保護機制原理解析

    SpringCloud Eureka自我保護機制原理解析

    這篇文章主要介紹了SpringCloud Eureka自我保護機制原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • Java?shiro安全框架使用介紹

    Java?shiro安全框架使用介紹

    安全管理是軟件系統(tǒng)必不可少的的功能。根據(jù)經(jīng)典的“墨菲定律”——凡是可能,總會發(fā)生。如果系統(tǒng)存在安全隱患,最終必然會出現(xiàn)問題,這篇文章主要介紹了SpringBoot安全管理Shiro框架的使用
    2022-08-08

最新評論

大理市| 迭部县| 灵石县| 武宣县| 台州市| 瑞金市| 无极县| 武川县| 广灵县| 泰顺县| 兴城市| 进贤县| 阳东县| 武汉市| 漳平市| 兴隆县| 鲜城| 灌云县| 江达县| 南召县| 胶南市| 武邑县| 如皋市| 许昌市| 宿迁市| 五河县| 邵阳市| 巴彦淖尔市| 招远市| 鲜城| 民权县| 盐亭县| 六枝特区| 夏津县| 邵武市| 上犹县| 扶风县| 精河县| 安吉县| 景洪市| 凤台县|