TARS was developed using C++ initially, and accomplished C++/JAVA/PHP/NodeJS/Go servers and clients through the development.
Tars could also be called as a service leveraging other programming language such as python as a client.
Services and clients of others languages including C# is under active development continually.
Different languages achieve basic RPC capabilities through contract agreement with .
At the same time, TARS will develop different functionality based on different language features.
High performance is the one of the main focus while developing .As for now, high throughput in production environment has been test through,and it aligned with our requirements of high concurrency and high availability.
First of all, microservices could be built by TARS rapidly.
And thanks to multi-language support by TARS, it has high compatibility between difference technology stack.
For some scenarios requiring fast iteration, developers can choose PHP to build microservices easily.
And for other scenarios requiring extreme performance, developers build micorservices based on C++.
Last but not least, TARS is equipped with automatic code generation tools for server and client for different language implementation.
Using TARS:
Service caller can easily generate the calling code according to the protocol and calls remote service like a local function.
Service providers can quickly generate the skeleton of the code and then develop inside it efficiently.
TARS provides a series of basic services to ensure high availability effectively.
These basic services includes:
In addition, in order to ensure high availability, each language will cache the available services list for a period of time. If there is some thing wrong within the Tars-Registry, service can fallback to the available services list locally stored.
Some languages have implemented the function that automatically tagging and rejecting a service when its IP is unavailable.
TARS provides non-destructive options similar to Nginx reload when shipping code.
Due to the different language frameworks, the implementation of non-destructive publishing is also different.
Batches of non-destructive service reboot which ensures services available all the time, is the standard choice for most high availability releases.
In addition, TARS is more powerful than a simple RPC framework because of its operation platform.
Users can finish these works easily using operation platform: