Java RPC技术

 

node通过dubbo2.js调用java dubbo服务(rpc)

 

Thrift

Thrift入门  介绍IDL,Thrift传输 & 协议

Thrift不同服务类型的使用探索  对Thrfit不同的服务类型进行整理,并结合代码示例进行说明。还包括Nifty服务类型Facebook还开源了Nifty -- 一种基于netty的thrift服务端和客户端实现。

使用Thrift来实现跨语言的方法调用   演示python/C++跨语言调用

根据Java生成IDL  thrift/swift:对swift2thrift-generator-cli IDL生成工具的改进

 

需求:

系统有WEB端、PC客户端、服务端(微服务架构)组成,WEB端和客户端(跨平台)功能有部分重合,共用一套微服务。Client要求必需使用RPC调用服务,WEB要求使用HTTP调用服务。

 

实现方案

为提高开发效率,WEB采用Vue开发,Client使用Electron打包。前端采用Thrift与微服务通讯。

服务端使用Dubbo框架实现RPC服务,同时支持HTTP调用。

系统交互架构

     B/S: WEB→API Gateway(HTTP)→Mircor Service

    C /S:Client(拦截WEB端HTTP请求转为RPC请求)→Thrift服务端()→Micro Service

 

JavaRPC资料

参考资料:

  spring框架对 remoting 支持的总结

  Dubbo 架构演进:从 RMI 到 Dubbo

       Java SPI(Service Provider Interface)

参考资料

1)Electron+Vue+Thrift实现PC客户端开发

2)将SpringBoot项目改造成dubbo项目

3)Dubbo实现RPC

4)SpringBoot整合Dubbo

5) REST服务,使用Dubbo还是SpringMVC?   

    Dubbo3 配置rest和dubbo两种协议发布应用服务

    在Dubbo中开发REST风格的远程调用(RESTful Remoting)

4) Electron官网   支持跨平台

 

 

问题及处理

1、上下文处理

Dubbo之RpcContext详解

使用Dubbo的RpcContext居然那么多坑    较全面

  详解如何自定义Dubbo Filter(含dubbo2.7.X及以上版本和2.6.X及以下版本两种写法)

       重写第三方jar中SPRING BEAN的方式

2、切面

  切面实现Dubbo请求日志以及全局异常处理

3、在线文档

  dubbo3.x集成dubbo-api-docs文档

4、传递用户信息

  dubbo服务传递用户信息

 

解决方案

微服务最佳实践,零改造实现 Spring Cloud & Apache Dubbo 互通

文档

  dubbo API快速入门

https://cn.dubbo.apache.org/zh-cn/overview/quickstart/

 

Thrift及RPC调用过程介绍

  thrift

      Thrift协议栈

posted @ 2023-12-08 17:55  十二楼C  阅读(47)  评论(0编辑  收藏  举报