Java java지도 시간 RPC 프레임워크란 무엇입니까?

RPC 프레임워크란 무엇입니까?

Oct 29, 2020 pm 03:04 PM
RPC 프레임워크

rpc 프레임워크에는 다음이 포함됩니다. 1. RMI, 원격 메서드 호출 2. Hessian, HTTP 기반 원격 메서드 호출 3. Taobao의 오픈 소스 TCP 기반 RPC 프레임워크인 Dubbo.

RPC 프레임워크란 무엇입니까?

RPC 프레임워크에는 다음이 포함됩니다.

RPC는 원격 프로시저 호출의 약어입니다. 이 기능은 대규모 분산 애플리케이션에서 널리 사용됩니다. 시스템 확장이 더 쉽습니다. Java에는 각각 고유한 특성을 가진 많은 RPC 프레임워크가 있으며 널리 사용되는 프레임워크로는 RMI, Hessian, Dubbo 등이 있습니다. RPC의 또 다른 특징은 언어 간 교차가 가능하다는 것입니다. 이 기사에서는 JAVA 언어의 RPC만 예로 들어 보겠습니다.

RMI를 예로 들어 RPC에 대한 논리적 관계 다이어그램이 있습니다.


다른 프레임워크 구조는 객체의 직렬화 방법, 통신 프로토콜에 있습니다. 개체 전송, 등록 센터 관리 및 장애 조치 설계(동물 사육사 사용).

클라이언트와 서버는 서로 다른 JVM에서 실행될 수 있습니다. 클라이언트는 인터페이스 구현과 런타임에 필요한 데이터가 모두 서버 측에 있습니다. RPC는 직렬화를 사용합니다. , 역직렬화 및 JAVA의 전송 프로토콜은 객체의 직렬화, 역직렬화 및 직렬화된 데이터의 전송에 해당합니다. RMI의 직렬화 및 역직렬화는 JAVA에 기본이며 전송 프로토콜은 HTTP이며 다양한 옵션 중에서 선택할 수 있습니다. 전송은 일반적으로 TCP 프로토콜을 사용합니다. 고성능 NIO 프레임워크 Netty. Google의 ProBuffer, JBoss Marshalling, Apache Thrift 등 직렬화에 대해서도 알고 있습니다. ProBuffer

1을 소개하는 블로그 게시물을 작성했습니다. RMI(Remote Method Invocation)

JAVA에는 자체 원격 메서드 호출 도구이지만 결국에는 JAVA 언어의 원래 설계였으며 나중에 RMI의 사용 원칙은 다음과 같습니다. 외부 인터페이스

<span style="font-size:12px;">public interface IService extends Remote {

    public String queryName(String no) throws RemoteException;

}</span>
로그인 후 복사
서비스 구현

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

// 服务实现
public class ServiceImpl extends UnicastRemoteObject implements IService {

    /**
     */
    private static final long serialVersionUID = 682805210518738166L;

    /**
     * @throws RemoteException
     */
    protected ServiceImpl() throws RemoteException {
        super();
    }

    /* (non-Javadoc)
     *
     */
    @Override
    public String queryName(String no) throws RemoteException {
        // 方法的具体实现
        System.out.println("hello" + no);
        return String.valueOf(System.currentTimeMillis());
    }
    
}
로그인 후 복사
RMI 클라이언트
import java.rmi.AccessException;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

// RMI客户端
public class Client {

    public static void main(String[] args) {
        // 注册管理器
        Registry registry = null;
        try {
            // 获取服务注册管理器
            registry = LocateRegistry.getRegistry("127.0.0.1",8088);
            // 列出所有注册的服务
            String[] list = registry.list();
            for(String s : list){
                System.out.println(s);
            }
        } catch (RemoteException e) {
            
        }
        try {
            // 根据命名获取服务
            IService server = (IService) registry.lookup("vince");
            // 调用远程方法
            String result = server.queryName("ha ha ha ha");
            // 输出调用结果
            System.out.println("result from remote : " + result);
        } catch (AccessException e) {
            
        } catch (RemoteException e) {
            
        } catch (NotBoundException e) {
            
        }
    }
}
로그인 후 복사

RMI 서버

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

// RMI服务端
public class Server {

    public static void main(String[] args) {
        // 注册管理器
        Registry registry = null;
        try {
            // 创建一个服务注册管理器
            registry = LocateRegistry.createRegistry(8088);

        } catch (RemoteException e) {
            
        }
        try {
            // 创建一个服务
            ServiceImpl server = new ServiceImpl();
            // 将服务绑定命名
            registry.rebind("vince", server);
            
            System.out.println("bind server");
        } catch (RemoteException e) {
            
        }
    }
}
로그인 후 복사

서비스 등록 관리자는 서버에 작성되어 있습니다. 물론, 다음과 같이 추출할 수도 있습니다. 다른 서비스의 별도 서비스 프레임워크에서 Zookeeper는 등록 관리 역할을 수행하는 데 자주 사용됩니다.

2. Hessian(HTTP 기반 원격 메소드 호출)

은 HTTP 프로토콜 전송을 기반으로 하며, 로드 밸런싱 및 장애 조치는 애플리케이션의 로드 밸런서에 따라 다릅니다. Hessian은 RMI와 유사하지만, 표시된 주소를 통해 호출되며 HessianProxyFactory를 사용하여 구성된 주소를 기반으로 프록시 객체를 생성하고 Hessian의 Jar 패키지를 도입한다는 차이점이 있습니다.


3. Dubbo(Taobao의 오픈소스 TCP 기반 RPC 프레임워크)

Alibaba에서 오픈소스로 제공하는 Netty 기반의 고성능 RPC 프레임워크입니다.

Dubbo를 이해하기 전에 먼저 Zookeeper에 대한 깊은 이해가 있어야 합니다. 일단 Zookeeper를 이해하면 Dubbo에는 비밀이 없습니다.

Dubbo에 대한 자세한 설명은 Taobao Open Source에 매우 자세하게 설명되어 있습니다. Dubbo는 작업 중 많은 제작 프로젝트에 사용되며, 특히 부적절한 구성에 주의가 필요한 사항도 많이 발견했습니다. 문제를 일으키기 때문에 기존 오픈소스 Dubbo를 기반으로 맞춤화하고 최적화하는 것이 가장 좋습니다.

관련 무료 학습 권장사항:

Java 기본 튜토리얼

위 내용은 RPC 프레임워크란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

손으로 쓴 RPC 프레임워크는 실제로 단지 13인 척하기 위한 것이 아닙니다! 손으로 쓴 RPC 프레임워크는 실제로 단지 13인 척하기 위한 것이 아닙니다! Aug 16, 2023 pm 05:01 PM

요청을 받지 않았을 수도 있고, 운이 좋았을 수도 있고, 아직 이 수준에 이르지 못했을 수도 있습니다. 보통 월급이 20만원이 넘는데, 기본적으로 디자인에 대한 질문을 좀 하게 됩니다. 면접관의 관점에서 볼 때: 이러한 유형의 질문을 하는 것은 많은 기술적 사항이 포함된 8부작 에세이를 작성하는 것보다 낫습니다. 예: 디자인 패턴, 통신 프로토콜, 동적 에이전트, 가상화, 스레드 풀 등에 대한 지식

Alibaba 면접관: RPC 프레임워크를 직접 작성해 주세요. Alibaba 면접관: RPC 프레임워크를 직접 작성해 주세요. Aug 17, 2023 pm 04:24 PM

RPC는 컴퓨터 통신 프로토콜입니다. 이 프로토콜을 사용하면 개발자가 이 상호 작용을 추가로 프로그래밍할 필요 없이 한 컴퓨터에서 실행되는 프로그램이 다른 컴퓨터의 서브루틴을 호출할 수 있습니다.

Go 언어의 RPC 프레임워크의 원리와 응용 Go 언어의 RPC 프레임워크의 원리와 응용 Jun 01, 2023 pm 03:01 PM

1. RPC 프레임워크의 개념 분산 시스템에서는 서로 다른 서버와 클라이언트 간에 데이터를 전송해야 하는 경우가 많습니다. RPC(RemoteProcedureCall) 프레임워크는 일반적으로 사용되는 기술적 수단입니다. RPC 프레임워크를 사용하면 응용 프로그램이 원격 메시징을 통해 다른 실행 환경의 함수나 메서드를 호출할 수 있으므로 프로그램이 다른 컴퓨터에서 실행될 수 있습니다. 현재 시중에는 Google의 gRPC, Thrift, Hessian 등 많은 RPC 프레임워크가 나와 있습니다. 이 글에서는 주로 소개합니다.

PHP에서 RPC 프레임워크를 개발하는 방법은 무엇입니까? PHP에서 RPC 프레임워크를 개발하는 방법은 무엇입니까? May 13, 2023 pm 03:22 PM

RPC(RemoteProcedureCall)는 서로 다른 프로세스가 서로 다른 물리적 시스템의 네트워크를 통해 통신하고 협업할 수 있도록 하는 프로세스 간 통신 프로토콜입니다. RPC 프레임워크는 개발자가 분산 시스템 개발을 쉽게 구현하는 데 도움을 줄 수 있다는 점에서 점점 더 주목받고 있습니다. 이 기사에서는 PHP를 사용하여 RPC 프레임워크를 개발하는 방법을 단계별로 소개합니다. 1. RPC 프레임워크란 무엇입니까? RPC 프레임워크는 원격 프로시저 호출을 구현하는 데 사용되는 프레임워크입니다. RPC 기반에서는

어떤 rpc 프레임워크가 있나요? 어떤 rpc 프레임워크가 있나요? Aug 03, 2023 am 10:17 AM

rpc 프레임워크에는 다음이 포함됩니다. 1. Google에서 개발한 고성능 오픈 소스 RPC 프레임워크인 gRPC 2. Facebook에서 개발하고 오픈 소스화한 교차 언어 RPC 프레임워크인 Apache Thrift 대규모 분산 시스템에 적합한 성능, 경량 RPC 프레임워크 4. 웹 서비스 표준 기반 RPC 프레임워크인 Apache Axis2 5. 분산 시스템 구축을 위한 오픈 소스 프레임워크인 Spring Cloud.

Go 언어 RPC 프레임워크 평가: 성능, 사용 편의성, 커뮤니티 지원 비교 Go 언어 RPC 프레임워크 평가: 성능, 사용 편의성, 커뮤니티 지원 비교 Feb 27, 2024 pm 09:12 PM

중요한 현대 프로그래밍 언어로서 Go 언어는 분산 시스템 개발에서 점점 더 많이 사용되고 있습니다. 분산 시스템을 구축할 때 RPC(원격 프로시저 호출) 프레임워크의 선택이 중요한 경우가 많습니다. 이 기사에서는 현재 주류인 Go 언어 RPC 프레임워크에 대한 수평적 평가를 수행하고 성능, 사용 용이성 및 커뮤니티 지원 측면에서 장점과 단점을 비교하고 구체적인 코드 예제를 첨부합니다. 1. 성능 비교 분산 시스템에서 성능은 개발자가 주목하는 주요 지표 중 하나인 경우가 많습니다. 다음은 몇 가지 주요 내용입니다.

Go 언어로 동시성 높은 RPC 프레임워크를 구현하는 방법 Go 언어로 동시성 높은 RPC 프레임워크를 구현하는 방법 Aug 05, 2023 pm 12:49 PM

Go 언어에서 높은 동시성 RPC 프레임워크를 구현하는 방법 소개: 인터넷의 급속한 발전으로 인해 높은 동시성 애플리케이션이 점점 더 많은 주목을 받고 있습니다. RPC(RemoteProcedureCall) 프레임워크를 사용하는 것이 일반적인 솔루션입니다. 이 기사에서는 Go 언어로 동시성이 높은 RPC 프레임워크를 구현하는 방법을 소개하고 코드 예제가 제공됩니다. RPC 프레임워크 소개: RPC는 컴퓨터 프로그램이 다른 주소 공간(일반적으로 원격 컴퓨터에 위치)에서 서브루틴을 호출할 수 있도록 하는 통신 프로토콜입니다.

PHP7.0의 RPC 프레임워크는 무엇입니까? PHP7.0의 RPC 프레임워크는 무엇입니까? May 29, 2023 am 11:10 AM

컴퓨터 기술의 지속적인 발전으로 분산 시스템이 주류가 되었으며, 원격 프로시저 호출(RPC)은 분산 시스템을 구현하는 중요한 수단입니다. 널리 사용되는 웹 프로그래밍 언어인 PHP에는 자체 RPC 프레임워크도 있으며, 그 중 일부 새로운 RPC 프레임워크가 PHP7.0 버전에 도입되었습니다. 이 기사에서는 PHP7.0의 일반적인 RPC 프레임워크와 그 특성을 소개합니다. PHPRemoteProcedureCall(phpRPC)phpRPC는 경량 RP입니다.

See all articles