Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package org.apache.dubbo.demo;

import org.apache.dubbo.common.stream.StreamObserver;
import org.apache.dubbo.demo.hello.GreeterService;
import org.apache.dubbo.demo.hello.HelloReply;
import org.apache.dubbo.demo.hello.HelloRequest;

Expand All @@ -36,9 +37,11 @@ public HelloReply sayHello(HelloRequest request) {
}

@Override
public CompletableFuture<String> sayHelloAsync(String name) {
LOGGER.info("Received sayHelloAsync request: {}", name);
return CompletableFuture.supplyAsync(() -> "Hello " + name);
public CompletableFuture<HelloReply> sayHelloAsync(HelloRequest request) {
LOGGER.info("Received sayHelloAsync request: {}", request.getName());
HelloReply.newBuilder().setMessage("Hello " + request.getName());
return CompletableFuture.supplyAsync(() ->
HelloReply.newBuilder().setMessage("Hello " + request.getName()).build());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,33 @@
*/
package org.apache.dubbo.demo;

import org.apache.dubbo.demo.hello.GreeterWrapperService;
import org.apache.dubbo.demo.hello.HelloReply;
import org.apache.dubbo.demo.hello.HelloRequest;

import java.util.concurrent.CompletableFuture;

public class GreeterWrapperServiceImpl implements GreeterWrapperService {

@Override
public String sayHello(String request) {
StringBuilder responseBuilder = new StringBuilder(request);
public HelloReply sayHello(HelloRequest request) {
StringBuilder responseBuilder = new StringBuilder(request.getName());
for (int i = 0; i < 20; i++) {
responseBuilder.append(responseBuilder);
}
return responseBuilder.toString();
return HelloReply.newBuilder().setMessage(responseBuilder.toString()).build();
}

@Override
public CompletableFuture<HelloReply> sayHelloAsync(HelloRequest request) {
return CompletableFuture.supplyAsync(() -> {
StringBuilder responseBuilder = new StringBuilder(request.getName());
for (int i = 0; i < 20; i++) {
responseBuilder.append(responseBuilder);
}
return HelloReply.newBuilder()
.setMessage(responseBuilder.toString())
.build();
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.demo.GreeterService;
import org.apache.dubbo.demo.hello.GreeterService;
import org.apache.dubbo.demo.hello.HelloReply;
import org.apache.dubbo.demo.hello.HelloRequest;
import org.apache.dubbo.rpc.Constants;
Expand Down Expand Up @@ -60,7 +60,8 @@ public static void main(String[] args) throws InterruptedException {
System.out.println("sayHello reply: " + reply.getMessage());

System.out.println("Call sayHelloAsync");
CompletableFuture<String> sayHelloAsync = greeterService.sayHelloAsync("triple");
CompletableFuture<HelloReply> sayHelloAsync = greeterService.sayHelloAsync(
HelloRequest.newBuilder().setName("triple").build());
sayHelloAsync.thenAccept(value -> System.out.println("sayHelloAsync reply: " + value));

StreamObserver<HelloReply> responseObserver = new StreamObserver<HelloReply>() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.demo.GreeterWrapperService;
import org.apache.dubbo.demo.hello.GreeterWrapperService;
import org.apache.dubbo.demo.hello.HelloReply;
import org.apache.dubbo.demo.hello.HelloRequest;
import org.apache.dubbo.rpc.Constants;

import java.io.IOException;
Expand Down Expand Up @@ -50,9 +52,10 @@ public static void main(String[] args) throws IOException {
final GreeterWrapperService greeterWrapperService = referenceConfig.get();
System.out.println("dubbo referenceConfig started");
long st = System.currentTimeMillis();
String reply = greeterWrapperService.sayHello("haha");
HelloReply reply = greeterWrapperService.sayHello(
HelloRequest.newBuilder().setName("haha").build());
// 4MB response
System.out.println("Reply length:" + reply.length() + " cost:" + (System.currentTimeMillis() - st));
System.out.println("Reply Message:" + reply.getMessage() + " cost:" + (System.currentTimeMillis() - st));
System.in.read();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,13 @@
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.demo.GreeterService;
import org.apache.dubbo.demo.GreeterServiceImpl;
import org.apache.dubbo.demo.hello.GreeterService;
import org.apache.dubbo.rpc.Constants;

import java.util.Collections;

public class ApiProvider {

public static void main(String[] args) {
ServiceConfig<GreeterService> serviceConfig = new ServiceConfig<>();
serviceConfig.setInterface(GreeterService.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.demo.GreeterWrapperService;
import org.apache.dubbo.demo.GreeterWrapperServiceImpl;
import org.apache.dubbo.demo.hello.GreeterWrapperService;
import org.apache.dubbo.rpc.Constants;

import java.io.IOException;
Expand Down
26 changes: 23 additions & 3 deletions dubbo-demo/dubbo-demo-triple/src/main/proto/helloworld.proto
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,30 @@ package helloworld;

// The request message containing the user's name.
message HelloRequest {
string name = 1;
string name = 1;
}

// The response message containing the greetings
// The response message containing the greetings.
message HelloReply {
string message = 1;
string message = 1;
}

// Service definition.
service GreeterService {
// Sends a greeting.
rpc sayHello(HelloRequest) returns (HelloReply);

/**
* Sends a greeting with server streaming.
*/
rpc sayHelloServerStream(HelloRequest) returns (stream HelloReply);

/**
* Sends greetings with bi-directional streaming.
*/
rpc sayHelloBiStream(stream HelloRequest) returns (stream HelloReply);
}
service GreeterWrapperService{
// Sends a greeting.
rpc sayHello(HelloRequest) returns (HelloReply);
}
Loading