harpc php

Harpc GitHub add:https://github.com/baifendian/harpc

问题:harpc原理?怎么加上php支持?

rpc的全称是remote procedure call,翻译过来就是远程过程调用。远程调用的意思就是程序调用的方法实现不是在程序所在的本地,而是在远程的某个地方。远程调用的好处就是解耦。当server需要对方法内实现修改时,client完全感知不到,不用做任何变更;方法的提供者我们通常称为:服务的暴露。

远程过程调用的原理

比如 A (client) 调用 B (server) 提供的remoteAdd方法:
首先A与B之间建立一个TCP连接;
然后A把需要调用的方法名(这里是remoteAdd)以及方法参数(10,11)序列化成字节流发送出去;
B接受A发送过来的字节流,然后反序列化得到目标方法名,方法参数,接着执行相应的方法调用(可能是localAdd,这个要看服务器的借口函数是怎么写的)并把结果30返回;
A接受远程调用结果,输出21。
RPC框架就是把我刚才说的这几点些细节给封装起来,给用户暴露简单友好的API使用。

RPC框架就是把上面这几点细节给封装起来,对用户暴露出简单友好的API使用。

harpc是什么

HARPC(High Availability RPC)是基于thrift的跨语言、 高可用的RPC框架。

thrift是什么

thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Go,Python, PHP, JavaScript, Node.js这些编程语言间无缝结合的、高效的服务。

harpc底层使用thrift,而thrift又能于Php无缝结合,可以使用php和harpc结合

harpc解决的问题?

问题1:不同语言之间的通信问题
– 实际场景中服务端和客户端往往使用不同的编程语言

问题2:负载均衡和容灾处理
– 如何实现任务的分布式处理?
– 如何实现水平扩展,自动发现新的服务节点? – 如何处理节点的异常down机?

问题3:服务维护成本高
– 服务进程还在吗?
– 服务请求量和性能怎么样? – 我们的服务有谁在调用?

基于thrift开发的方案,底层通信使用thrift来保证高性能和跨语言,然后HARPC来保证高可用和可视化,并且尽量保持简单,来达到轻量级的需求。

harpc的整体架构
这里写图片描述

官方提供了两种方式:看到直连方式
适用于第三方的thrift服务或没有集成HARPC的服务
但是该方法有个缺点:该方式不支持自动发现新的服务节点

因此,我们可以通过自己定制thrift服务,使用harpc进行远程通信。

由于现在要出去面试,暂时先研究这些。


http://diwakergupta.github.io/thrift-missing-guide/ thrift guide
http://www.myexception.cn/software-architecture-design/2020212.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值