mirror of
https://gitee.com/sogou/srpc.git
synced 2024-12-21 16:14:54 +08:00
parent
e52cad0cb3
commit
56bab40bfc
@ -19,7 +19,7 @@ Bases on [Sogou C++ Workflow](https://github.com/sogou/workflow), it is an excel
|
||||
|
||||
Its main features include:
|
||||
|
||||
* Support multiple RPC protocols: [`SPRC`](/tutorial/tutorial-01-srpc_pb_server.cc), [`bRPC`](/tutorial/tutorial-05-brpc_pb_server.cc), [`Thrift`](/tutorial/tutorial-07-thrift_thrift_server.cc), [`tRPC`](/tutorial/tutorial-11-trpc_pb_server.cc)
|
||||
* Support multiple RPC protocols: [`SRPC`](/tutorial/tutorial-01-srpc_pb_server.cc), [`bRPC`](/tutorial/tutorial-05-brpc_pb_server.cc), [`Thrift`](/tutorial/tutorial-07-thrift_thrift_server.cc), [`tRPC`](/tutorial/tutorial-11-trpc_pb_server.cc)
|
||||
* Support multiple operating systems: `Linux`, `MacOS`, `Windows`
|
||||
* Support several IDL formats: [`Protobuf`](/tutorial/echo_pb.proto), [`Thrift`](/tutorial/echo_thrift.thrift)
|
||||
* Support several data formats transparently: `Json`, `Protobuf`, `Thrift Binary`
|
||||
|
@ -16,7 +16,7 @@
|
||||
底层基于[Sogou C++ Workflow](https://github.com/sogou/workflow),是高性能、低延迟、轻量级RPC系统的极佳选择。且加入了AOP面向切面的模块,支持Metrics(监控指标)和Trace(链路追踪)功能,可上报到多种云原生系统,包括OpenTelemetry。
|
||||
|
||||
主要功能和示例:
|
||||
* 支持多种RPC协议:[`SPRC`](/tutorial/tutorial-01-srpc_pb_server.cc)、[`bRPC`](/tutorial/tutorial-05-brpc_pb_server.cc)、[`Thrift`](/tutorial/tutorial-07-thrift_thrift_server.cc)、[`tRPC`](/tutorial/tutorial-11-trpc_pb_server.cc)
|
||||
* 支持多种RPC协议:[`SRPC`](/tutorial/tutorial-01-srpc_pb_server.cc)、[`bRPC`](/tutorial/tutorial-05-brpc_pb_server.cc)、[`Thrift`](/tutorial/tutorial-07-thrift_thrift_server.cc)、[`tRPC`](/tutorial/tutorial-11-trpc_pb_server.cc)
|
||||
* 支持多种操作系统:`Linux` / `MacOS` / `Windows`
|
||||
* 支持多种IDL格式:[`Protobuf`](/tutorial/echo_pb.proto)、[`Thrift`](/tutorial/echo_thrift.thrift)
|
||||
* 支持多种数据布局,使用上完全透明:`Json`、`Protobuf`、`Thrift Binary`
|
||||
|
@ -16,7 +16,7 @@
|
||||
- 想像一下,我们也可以从``Example::Service``派生更多的功能的rpc``Echo``不同实现的Service
|
||||
- 想像一下,我们可以在N个不同的端口创建N个不同的RPC Server、代表着不同的协议
|
||||
- 想像一下,我们可以把同一个ServiceIMPL实例``add_service``到不同的Server上,我们也可以把不同的ServiceIMPL实例``add_service``到同一个Server上
|
||||
- 想像一下,我们可以用同一个``ExampleServiceImpl``,在三个不同端口、同时服务于BPRC-STD、SRPC-STD、SRPC-Http
|
||||
- 想像一下,我们可以用同一个``ExampleServiceImpl``,在三个不同端口、同时服务于BRPC-STD、SRPC-STD、SRPC-Http
|
||||
- 甚至,我们可以将1个PB的``ExampleServiceImpl``和1个Thrift的``AnotherThriftServiceImpl``,``add_service``到同一个SRPC-STD Server,两种IDL在同一个端口上完美工作!
|
||||
|
||||
~~~cpp
|
||||
|
@ -1,6 +1,6 @@
|
||||
[English version](/docs/docs-07-srpc-http.md)
|
||||
|
||||
## 07 - 使用SPRC、TRPC、Thrift发送Http
|
||||
## 07 - 使用SRPC、TRPC、Thrift发送Http
|
||||
|
||||
**SRPC**支持**HTTP**协议,只要把**idl**的内容作填到**HTTP**的**body**中,并且在**header**里填上**idl**的类型(**json**/**protobuf**/**thrift**),就可以与其他框架通过**HTTP**协议互通,由此可以实现跨语言。
|
||||
|
||||
|
@ -19,7 +19,7 @@ You can follow the detailed example below:
|
||||
- Imagine that we can also derive more Serivce from `Example::Service`, which have different implementations of rpc `Echo`.
|
||||
- Imagine that we can create N different RPC Servers on N different ports, serving on different network protocols.
|
||||
- Imagine that we can use `add_service()` to add the same ServiceIMPL instance on different Servers, or we can use `add_service()` to add different ServiceIMPL instances on the same server.
|
||||
- Imagine that we can use the same `ExampleServiceImpl`, serving BPRC-STD, SRPC-STD, SRPC-Http at three different ports at the same time.
|
||||
- Imagine that we can use the same `ExampleServiceImpl`, serving BRPC-STD, SRPC-STD, SRPC-Http at three different ports at the same time.
|
||||
- And we can use `add_service()` to add one `ExampleServiceImpl` related to Protobuf IDL and one `AnotherThriftServiceImpl` related to Thrift IDL to the same SRPC-STD Server, and the two IDLs work perfectly on the same port!
|
||||
|
||||
~~~cpp
|
||||
|
@ -140,7 +140,7 @@ You can follow the detailed example below:
|
||||
- Imagine that we can also derive more Serivce from `Example::Service`, which have different implementations of rpc `Echo`.
|
||||
- Imagine that we can create N different RPC Servers on N different ports, serving on different network protocols.
|
||||
- Imagine that we can use `add_service()` to add the same ServiceIMPL instance on different Servers, or we can use `add_service()` to add different ServiceIMPL instances on the same server.
|
||||
- Imagine that we can use the same `ExampleServiceImpl`, serving BPRC-STD, SRPC-STD, SRPC-Http at three different ports at the same time.
|
||||
- Imagine that we can use the same `ExampleServiceImpl`, serving BRPC-STD, SRPC-STD, SRPC-Http at three different ports at the same time.
|
||||
- And we can use `add_service()` to add one `ExampleServiceImpl` related to Protobuf IDL and one `AnotherThriftServiceImpl` related to Thrift IDL to the same SRPC-STD Server, and the two IDLs work perfectly on the same port!
|
||||
|
||||
~~~cpp
|
||||
|
@ -128,7 +128,7 @@ public:
|
||||
- 想像一下,我们也可以从``Example::Service``派生出多个Service,而它们的rpc``Echo``实现的功能可以不同
|
||||
- 想像一下,我们可以在N个不同的端口创建N个不同的RPC Server,代表着不同的协议
|
||||
- 想像一下,我们可以把同一个ServiceIMPL实例``add_service()``到不同的Server上,我们也可以把不同的ServiceIMPL实例``add_service``到同一个Server上
|
||||
- 想像一下,我们可以用同一个``ExampleServiceImpl``,在三个不同端口、同时服务于BPRC-STD、SRPC-STD、SRPC-Http
|
||||
- 想像一下,我们可以用同一个``ExampleServiceImpl``,在三个不同端口、同时服务于BRPC-STD、SRPC-STD、SRPC-Http
|
||||
- 甚至,我们可以将1个Protobuf IDL相关的``ExampleServiceImpl``和1个Thrift IDL相关的``AnotherThriftServiceImpl``,``add_service``到同一个SRPC-STD Server,两种IDL在同一个端口上完美工作!
|
||||
|
||||
~~~cpp
|
||||
|
@ -56,7 +56,7 @@ set(SRPC_GEN_PROGRAM ${SRPC_BIN_DIR}/srpc_generator) %s
|
||||
|
||||
add_custom_target(SRPC_GEN ALL
|
||||
COMMAND ${SRPC_GEN_PROGRAM} ${PROJECT_SOURCE_DIR}/${IDL_FILE} ${PROJECT_SOURCE_DIR} -s
|
||||
COMMENT "sprc generator..."
|
||||
COMMENT "srpc generator..."
|
||||
)
|
||||
|
||||
# Prefer to static link first
|
||||
|
Loading…
Reference in New Issue
Block a user