进程/服务的代理层到底在封装什么

为什么要代理

客户端1-1

客户端1-多

服务代理:

管理一个客户端要连接的所有服务端的代理

设计模式里的代理模式理念实现

class ServiceProxy

private

unrodered_map<string , void*> services_;

public 

void* getService(name)

如果代理的服务有通用接口 call方法(InputParams outputParams)

class ServiceA:public ServiceBase

如果代理的服务没有通用接口 而且没有必要有

class ServiceA

public:

MethodA(){

//begin 螺丝钉

//end 螺丝钉

}

如果代理服务只有别人 那就相当于外部代理

如果代理也代理自己 自己想实现跨/插件模块调用 那就要增加自己

services_["self"]["DB"]

ervices_["self"]

services_["serviceA"]

services_["serviceB"]

ExternService.h

InternalService.h

外部有可能直接掉到内部,实现了插件级别接口代码服用

进程/服务/外部接口

插件/内部接口

服务代理=外部服务代理+self代理

头文件导出:只含有业务头文件 屏蔽第三方库比如opcua grpc thrift MQTT/Client 头疼 该采用什么技术呢?

代理使用步骤:

1、脚本隐藏式接口代码生成

2、服务端业务逻辑coding(同步/异步)

3、client 代理侧add Service实例

4、getService

5: Serivice接口调用

为什么要代理

该进程所有对接服务一目了然

屏蔽开源IPC方法书写过程

对外对内数据流清晰

屏蔽服务理念,业务人员甚至不需要知道自己调用什么服务了

ProcessPlugin.ini

producer.so

cache.so

cosumer.so

opcua的Call方法

UNO的方法调用

别人做opcua代理封装做了4-5个月 

你猜我做RPC代理封装需要多久

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值