distkv-project / drpc Goto Github PK
View Code? Open in Web Editor NEWA high performance RPC framework for distkv.
A high performance RPC framework for distkv.
Add the protocol concept for drpc: BY_DEFAULT
and PROTOBUF
.
In BY_DEFAULT
protocol, we support users to invoke the remote service as a local method by default.
@zhengrenjie @MrKingHH @senyer @kairbon Any future thoughts on this?
Dependencies:
Support sync and async client.
The related feature is #52
Add a compile tool of drpc to generate a java file from the following proto file.
# proto file
service DstDictService {
rpc put(PutRequest) returns (PutResponse);
}
the auto-generated java file:
// java file
/// Auto-generated file by drpcc
package com.distkv.dst.rpc.service;
import com.distkv.dst.rpc.protobuf.generated.CommonProtocol;
import com.distkv.dst.rpc.protobuf.generated.ListProtocol;
import java.util.concurrent.CompletableFuture;
public interface DstListService {
CompletableFuture<ListProtocol.PutResponse> put(ListProtocol.PutRequest request);
}
And note that we can use antlr4
to write the parser of drpcc
In some cases, the users should maintain the thread model of their apps, so we should provide a options to enable io_threads only.
The option of this could be named enableIOThreadsOnly
, and it should be disabled by default.
Description of method should not care args anymore. A ServerName and MethodName pair could determine which method should be invoked.
Method description map should be established when server has been registered.
We shouldn't expose NettyClient
in APIs.
Better to wrap it with DousiClient
.
Fix exporter in server, make exporter be continuous.
Question:
For example: a: //127.0.0.1: 8082 and b: //127.0.0.1: 8082 can successfully establish a connection.
It is unreasonable that a request can be established for any protocol. The agreement should be judged. If the agreement is incorrect, the corresponding prompt information of the user should be returned.
add dousi client module
Fix reference
in protoctol model, make reference can be continuous.
LongAdder#sum
LongAdder#longValue
Methods above here is not concurrent-safe.
Remove class URL
and replace with a more comprehensible class.
@tortuo
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.