RPC: Remote process call:
Several more typical RPC implementation and invocation frameworks (note: not a development framework) :
1: RMI: Implemented using the Java.RMI package, based on Java remote Method protocol and native Java serialization implementation.
2: hession: altogether lightweight remoting onhttp tool that provides RMI functionality with a simple approach based onhttp protocol.
3: Thrift: Thrift is a framework for scalable cross-language services.
Implementation principle of RPC framework:
There are three main roles in the framework, provider, Consumer, and Registry.

The techniques used in RPC:
1: Dynamic proxy: Java dynamic proxy technology is required to generate Client stub and Server stub. You can use the JDK’s native dynamic proxy mechanism. You can also use open source bytecode tools such as Cglib, Javassist.
2: Serialization: To be able to transfer and receive Java objects over the network, serialization and deserialization operations are required. Serialization is the process of converting Java objects to Byte [], and thus encoding. Deserialization is the process of converting a Byte [] into a Java object, or decoding. Java’s native serialization mechanism is available but inefficient, and it is recommended to use open source mature serialization technologies such as Protobuf, Thrift, and Hessian.
Nio: Many RPC frameworks use netty directly.
Service Registry: Redis, ZK, Elling, EtCD
Several more typical RPC implementation and invocation frameworks (note: not a development framework) :
1: RMI: Implemented using the Java.RMI package, based on Java remote Method protocol and native Java serialization implementation.
2: hession: altogether lightweight remoting onhttp tool that provides RMI functionality with a simple approach based onhttp protocol.
3: Thrift: Thrift is a framework for scalable cross-language services.
Implementation principle of RPC framework:
There are three main roles in the framework, provider, Consumer, and Registry.

The techniques used in RPC:
1: Dynamic proxy: Java dynamic proxy technology is required to generate Client stub and Server stub. You can use the JDK’s native dynamic proxy mechanism. You can also use open source bytecode tools such as Cglib, Javassist.
2: Serialization: To be able to transfer and receive Java objects over the network, serialization and deserialization operations are required. Serialization is the process of converting Java objects to Byte [], and thus encoding. Deserialization is the process of converting a Byte [] into a Java object, or decoding. Java’s native serialization mechanism is available but inefficient, and it is recommended to use open source mature serialization technologies such as Protobuf, Thrift, and Hessian.
Nio: Many RPC frameworks use netty directly.
Service Registry: Redis, ZK, Elling, EtCD
Read More:
- Execution error, return code 1 from org.apache.hadoop . hive.ql.exec .DDLTask.
- [How to Fix] org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader.
- Java lossy conversion
- The spring boot set appears in the stand-alone version of redis Servlet.service () for servlet [dispatcherServlet] in context with path [] thr
- Aidl learning
- Nginx 502 Error: Failed to load resource: the server responded with a status of 502 (Bad Gateway)
- The difference between classnotfoundexception and NoClassDefFoundError
- Exception in thread “main“ java.lang.ClassCastException: com.sun.proxy.$Proxy8 cannot be cast to XXX
- Java — one of Apollo configuration centers — Introduction to Apollo
- Failed: execution error, return code 1 from org.apache.hadoop . hive.ql.exec .DDLTask…
- Failed to obtain JDBC Connection
- NPM err! Code enotfound (2020-07-03)
- Git bash error, version 2.16.2-64-bit
- Running setup.py install for sasl … error
- MySQL installation error. Netframeword installation failed
- How to Fix error performing isolated work; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarE
- Spring boot problem solving record (1)
- Error: opening registry key ‘Software\JavaSoft\Java Runtime Environment’
- Error an unexpected error occurred: * * * etimedout
- Springbatch failed to execute commandlinerunner