你的位置:首页 > 软件开发 > Java > RPC实现原理(HSF、dubbo) 从头开始(一)

RPC实现原理(HSF、dubbo) 从头开始(一)

发布时间:2016-11-27 11:00:10
前言 阔别了很久博客园,虽然看了以前写的很多东西感觉好幼稚,但是还是觉得应该把一些自己觉得有用的东西和大家分享。废话不多说,现在开始进入正题。之前的六年工作经验,呆过了一些大公司,每个在大公司呆过的人应该知道,在一个大型应用中不断的增加业务和功能,还有基于性能的考虑,使得很多 ...

前言

 

阔别了很久博客园,虽然看了以前写的很多东西感觉好幼稚,但是还是觉得应该把一些自己觉得有用的东西和大家分享。废话不多说,现在开始进入正题。

之前的六年工作经验,呆过了一些大公司,每个在大公司呆过的人应该知道,在一个大型应用中不断的增加业务和功能,还有基于性能的考虑,使得很多基础服务必须进行模块化,从而让各子系统方便使用而不是每个系统重新再实现一套,也可以使可能成为瓶颈的基础功能可以单独进行扩展,比如(以电商系统举例)用户信息管理、交易管理中心、商品管理中心等等。  在rpc发展最初,服务进行模块块以后,各个子系统、模块实现的技术五花八门,如:hessian、WebService、Socket、http等进行互相调用,各个子系统之间的交互方式和方法不统一,使得各系统间很难很好的整合。并且这些方式还涉及超时、加密解密、参数的传递等各种问题。  在这种情况下,hsf、dubbo这种高性能rpc中间件出现了。  现在我就已最简单的方式从头开始讲起其中的原理。

我将分为一个系列为大家进行解剖

一、RPC实现原理(HSF、dubbo) 从头开始(一)

二、RPC实现原理(HSF、dubbo)发布一个服务与订阅一个服务(三)

三、RPC实现原理(HSF、dubbo)zookeeper进行集群配置管理(二)

四、RPC实现原理(HSF、dubbo)netty替换java socket(四)

五、待补充

NO.1  TCP传输协议

为什么选择TCP作为传输协议?HTTP在TCP的上一层,位于应用层,TCP位于网络层,以越往底层越快的原理,我就不过多解释为什么选择tcp作为传输协议了。 那么在项目中我们怎么使用tcp进行调用呢?直接上个例子代码:

socket服务端:

 

import java.net.*;import java.io.*;/** * socket编程之:简单socket server * * @author chengwei.lcw 2016-11-27 */public class SocketServer {  private ServerSocket serverSocket;  private Socket socket;  private BufferedReader in;  private PrintWriter out;  public SocketServer() {    try {      serverSocket = new ServerSocket(9999);      while (true) {        // 此处会阻塞,后面会讲到nio的作用         socket = serverSocket.accept();        in = new BufferedReader(new InputStreamReader(            socket.getInputStream()));        out = new PrintWriter(socket.getOutputStream(), true);        String line = in.readLine();        // 打印出来看看结果        System.out.println("line:" + line);                // 返回给client端,通知我已收到数据        out.println("you input is :" + line);        out.close();        in.close();        socket.close();      }    } catch (IOException e) {      e.printStackTrace();    }  }  public static void main(String[] args) {    new SocketServer();  }}

原标题:RPC实现原理(HSF、dubbo) 从头开始(一)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录