新建一个maven工程,pom.xml引入对应的rpc包
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>sofa-rpc-all</artifactId>
<version>最新版本</version>
</dependency>
因为是简单的入门级别,所以在一个工程中启动两个main方法即可。
1.新建HelloService接口:
public interface HelloService {
String sayHello(String string);
}
2.实现HelloService接口
public class HelloServiceImpl implements HelloService {
@Override
public String sayHello(String string) {
System.out.println("Server send: " + string);
return "hello " + string + " !";
}
}
3.新建生产者:默认端口12200
public class Service {
public static void main(String[] args) {
// 指定注册中心
//RegistryConfig registryConfig = new RegistryConfig()
// .setProtocol("zookeeper")
// .setAddress("127.0.0.1:2181");
// 指定服务端协议和地址
ServerConfig serverConfig = new ServerConfig()
.setProtocol("bolt")
.setPort(12200)
.setDaemon(false);
// 发布一个服务
ProviderConfig<HelloService> providerConfig = new
ProviderConfig<HelloService>()
.setInterfaceId(HelloService.class.getName())
.setRef(new HelloServiceImpl())
//.setRegistry(registryConfig)
.setServer(serverConfig);
providerConfig.export();
}
}
4.新建消费者
public class Client {
public static void main(String[] args) {
ConsumerConfig<HelloService> consumerConfig = new
ConsumerConfig<HelloService>()
.setInterfaceId(HelloService.class.getName()) // 指定接口
.setProtocol("bolt") // 指定协议
.setDirectUrl("bolt://127.0.0.1:12200"); // 指定直连地址
// 生成代理类
HelloService helloService = consumerConfig.refer();
while (true) {
System.out.println(helloService.sayHello("world"));
try {
Thread.sleep(2000);
} catch (Exception e) {
}
}
}
}
最后启动两个main方法(要先启动生产者Service,后启动消费者Client),没两秒打印出hello world ! 效果如下图