如非授权,禁止用于商业用途,转载请注明出处
作者:mynewworldyyl
1. 首先完成
JMicro微服务-RPC体验 的1到5步。
按默认方式启动ZK及Redis;
JDK需要Java8及以上。
2.建立Maven Java项目,如下图
2.1 jmicro.example.api公共接口项目代码
在pom.xml增加如下依赖
<dependency> <groupId>org.jmicro</groupId> <artifactId>jmicro.api</artifactId> </dependency>
新建RPC接口,代码如下
import org.jmicro.api.annotation.Service; public interface ISimpleRpc { String hello(String name); }
2.2 服务提供者jmicro.example.provider
在pom.xml加如下依赖
<dependency> <groupId>org.jmicro</groupId> <artifactId>jmicro.all</artifactId> </dependency> <dependency> <groupId>org.jmicro</groupId> <artifactId>jmicro.example.api</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
新建服务提供者类,并实现ISimpleRpc接口,代码如下
@Override @SMethod public String hello(String name) { System.out.println("Server hello: " +name); return "Server say hello to: "+name; }
Service注解表示这是一个服务类,对外提供RPC服务
SMethod表示这是一个RPC方法,如果没有SMethod注解,Service类下的全部public方法都将作为RPC方法。
打包运行服务提供者,CMD进入jmicro.example.provider目录,运行
mvn clean install -Pbuild-main
运行服务(请确保ZK及Redis已经启动,并且使用默认端口)
java -jar target/jmicro.example.provider-0.0.1-SNAPSHOT-jar-with-dependencies.jar
2.3 服务消费者jmicro.example.comsumer
pom.xml依赖和提供者相同,注意服务提供者和消费者都只依赖于jmicro.example.api中的接口类ISimpleRpc,相互之间没有直接依赖
build配置,使用我们自定义的main函数类入口org.jmicro.example.comsumer.ServiceComsumer
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>org.jmicro.example.comsumer.ServiceComsumer</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build>
消费者类很简单,代码如下
public class ServiceComsumer { public static void main(String[] args) { IObjectFactory of = JMicro.getObjectFactoryAndStart(new String[]{""}); ISimpleRpc src = of.get(ISimpleRpc.class); //invoke remote service System.out.println(src.hello("Hello JMicro")); } }
打包运行消费者,CMD进入jmicro.example.comsumer目录,运行
mvn clean install
运行消息者(请确保服务供者已经启动)
java -jar target/jmicro.example.comsumer-0.0.1-SNAPSHOT-jar-with-dependencies.jar
分别查看服务提供者和费者终端输出
关键点:
1。ZK及Redis默认端口启动;
2。Service注解服务提供者,SMethod注解服务方法;
3。通IObjectFactory取得远程服务ISimpleRpc实例,并调用RPC方法;
4。必须先完成
JMicro微服务-RPC体验 的1到5步。
进一步尝试:
开不同的CMD窗口,CD进入jmicro.example.provider目录,运行多个服务提供者
java -jar target/jmicro.example.provider-0.0.1-SNAPSHOT-jar-with-dependencies.jar
然后多次运行消费者,Ctrl+C退出,然后重复执行
java -jar target/jmicro.example.comsumer-0.0.1-SNAPSHOT-jar-with-dependencies.jar
观察每次每个服务提供者的输出?