All Projects → smallnest → Rpcx Java

smallnest / Rpcx Java

Licence: apache-2.0
rpcx implementation in Java for server side and client side

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Rpcx Java

Hprose Java
Hprose is a cross-language RPC. This project is Hprose 2.0 for Java
Stars: ✭ 542 (+663.38%)
Mutual labels:  rpc, rpc-framework, rpc-client
Rpcx
Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱!
Stars: ✭ 6,516 (+9077.46%)
Mutual labels:  microservice, rpc, dubbo
hprose-as3
Hprose for ActionScript 3.0
Stars: ✭ 18 (-74.65%)
Mutual labels:  rpc, rpc-client, rpc-framework
Getty
a netty like asynchronous network I/O library based on tcp/udp/websocket; a bidirectional RPC framework based on JSON/Protobuf; a microservice framework based on zookeeper/etcd
Stars: ✭ 532 (+649.3%)
Mutual labels:  microservice, rpc, rpc-framework
Joyrpc
high-performance, high-extensibility Java rpc framework.
Stars: ✭ 290 (+308.45%)
Mutual labels:  microservice, rpc, dubbo
hrpc
Common interface definition based rpc implementation
Stars: ✭ 21 (-70.42%)
Mutual labels:  rpc, rpc-client, rpc-framework
Brpc Java
Java implementation for Baidu RPC, multi-protocol & high performance RPC.
Stars: ✭ 647 (+811.27%)
Mutual labels:  microservice, rpc, dubbo
Whatsmars
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ + Elasticsearch)🔥🔥🔥🔥🔥
Stars: ✭ 1,389 (+1856.34%)
Mutual labels:  rpc, dubbo, rpc-framework
Go Zero
go-zero is a web and rpc framework written in Go. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity.
Stars: ✭ 13,156 (+18429.58%)
Mutual labels:  microservice, rpc, rpc-framework
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+4677.46%)
Mutual labels:  rpc, rpc-framework, rpc-client
Jupiter
Jupiter是一款性能非常不错的, 轻量级的分布式服务框架
Stars: ✭ 1,372 (+1832.39%)
Mutual labels:  microservice, rpc, rpc-framework
Hprose Golang
Hprose is a cross-language RPC. This project is Hprose for Golang.
Stars: ✭ 1,143 (+1509.86%)
Mutual labels:  rpc, rpc-framework, rpc-client
Hprose Php
Hprose is a cross-language RPC. This project is Hprose 3.0 for PHP
Stars: ✭ 1,952 (+2649.3%)
Mutual labels:  rpc, rpc-framework, rpc-client
nodejs grpc
GRPC based API CRUD using Nodejs at both server and client side
Stars: ✭ 17 (-76.06%)
Mutual labels:  rpc, rpc-client, rpc-framework
Hprose Js
Hprose is a cross-language RPC. This project is Hprose 2.0 RPC for JavaScript
Stars: ✭ 133 (+87.32%)
Mutual labels:  rpc, rpc-framework, rpc-client
rony
Fast and Scalable RPC Framework
Stars: ✭ 41 (-42.25%)
Mutual labels:  rpc, rpc-client, rpc-framework
Rsf
已作为 Hasor 的子项目,迁移到:http://git.oschina.net/zycgit/hasor
Stars: ✭ 77 (+8.45%)
Mutual labels:  rpc, dubbo, rpc-framework
Hprose Delphi
Hprose is a cross-language RPC. This project is Hprose 2.0 for Delphi and FreePascal
Stars: ✭ 100 (+40.85%)
Mutual labels:  rpc, rpc-framework, rpc-client
Saluki
Spring Boot starter module for gRPC framework.
Stars: ✭ 267 (+276.06%)
Mutual labels:  microservice, rpc, rpc-framework
Hprose Nodejs
Hprose is a cross-language RPC. This project is Hprose 2.0 for Node.js
Stars: ✭ 297 (+318.31%)
Mutual labels:  rpc, rpc-framework, rpc-client

rpcx-java

Unmaintained: 目前没有资源维护这个项目。欢迎有时间的开发者接手。

example

assume you have started a Go rpcx server:

package main

import (
	"context"
	"flag"

	"github.com/smallnest/rpcx/server"
)

var (
	addr = flag.String("addr", "192.168.31.82:8997", "server address")
)

type Echo int

func (t *Echo) Echo(ctx context.Context, args []byte, reply *[]byte) error {
	*reply = []byte("hello" + string(args))
	return nil
}

func main() {
	flag.Parse()

	s := server.NewServer()
	s.RegisterName("echo", new(Echo), "")
	s.Serve("tcp", *addr)
}

You can run it as:

go run main.go

Then you can write the java client:

    @Test
        public void testSendMsg() throws Exception {
            Message req = new Message("Echo", "Echo");
            req.setVersion((byte) 0);
            req.setMessageType(MessageType.Request);
            req.setHeartbeat(false);
            req.setOneway(false);
            req.setCompressType(CompressType.None);
            req.setSerializeType(SerializeType.SerializeNone);
            req.setSeq(123);
            req.metadata.put("test", "1234");
            req.payload = "world".getBytes("UTF-8");

            NettyClient client = new NettyClient(null);
            Message res = client.call("192.168.31.82:8997", req);
            System.out.println(new String(res.payload));
        }

借鉴项目

  • dubbo
  • rocketmq

feature

  • 支持和spring-boot的集成
  • 支持服务发现和注册
  • 支持扩展(client 和 server都可扩展)
  • 支持多语言调用
  • 支持qps限流
  • 支持accesslog记录
  • 支持泛化调用
  • 支持同步 异步 oneway调用
  • 支持token调用
  • 支持client端重试
  • 支持调用数据采集
  • 支持结果缓存
  • 支持热更新
  • 支持http gateway访问模式
  • 调用失败支持(FailFast Failover Failtry)
  • 支持select模式(RandomSelect RoundRobin WeightedRoundRobin SelectByUser)
  • 支持优雅关机
  • 支持服务治理(通过rpcx-ui)
  • 支持服务分组
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].