yint-tech / sekiro-open

SEKIRO is a multi-language, distributed, network topology-independent service publishing platform. By writing handlers in their respective languages, functionalities can be published to the central API marketplace. Business systems utilize the capabilities of remote nodes through RPC.
https://sekiro.iinti.cn/sekiro-doc/
1.71k stars 513 forks source link

Sekiro English

SEKIRO是一个多语言的、分布式、网络拓扑无关的服务发布平台,通过书写各自语言的handler将功能发布到中心API市场,业务系统通过RPC的方式使用远端节点的能力。

更多介绍,请参考详细文档: http://sekiro.iinti.cn/sekiro-doc/

各语言样例代码: https://github.com/yint-tech/sekiro-samples

安装包下载:iinti sekiro-demo https://oss.iinti.cn/sekiro/sekiro-demo

Sekiro是一个RPC框架

sekiro主要支持多节点的程序调用,所以他归属于RPC(Remote Procedure Call)框架:API管理、鉴权、分布式、负载均衡、跨语言

Sekiro不是常规意义的RPC框架

通常情况下,在后端微服务下RPC框架主要用于拆分复杂业务模块,以及多节点集群提升单机性能瓶颈的能力。他们一般是单个机房下业务机器组,调用其他业务机器组。 Dubbo、springCloud、grpc便是目前市面上具有代表性的RPC解决方案,并且他们都是世界顶级的项目。然而Sekiro并不是解决这种常规RPC能力场景的方案。

Sekiro主要提供的功能是: 受限上下文环境下的功能外放,服务提供者(provider)运行在一个受限环境中,导致这个服务不能作为一个普通的算法方便的转移到内部服务,而此时我们的业务又希望可以使用这种受限环境下的功能。

核心流程

  1. 存在一个中心服务器:sekiro中心服务,他需要服务器端,可以被consumer和provider连接
  2. 存在多种语言的客户端,java、js、python等,并且使用这些语言实现了和sekiro中心服务器的通信和API包装
  3. 用户在各自语言中,使用sekiro客户端API编写handler,用于接受参数并且完成到真实能力的转发调用,连接sekiro服务和本地环境服务
  4. 外部用户调用sekiro中心服务API,被sekiro服务转发到对应的客户端handler,获得调用结果后,原链路返回给用户

构建教程

安装包