如非授权,禁止用于商业用途,转载请注明出处
作者: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

观察每次每个服务提供者的输出?

最新文章

  1. Deep Learning 4_深度学习UFLDL教程:PCA in 2D_Exercise(斯坦福大学深度学习教程)
  2. 实例分析ELF文件静态链接
  3. RMQ算法讲解
  4. 【转】三十分钟学会STL算法
  5. 使用ajax和history.pushState无刷新改变页面URL(转)
  6. Webdriver实现对菜单栏的灵活切换功能,附上代码,类似的菜单栏切换可以自己封装
  7. 老司机实战Windows Server Docker:2 docker化现有iis应用的正确姿势
  8. python 浅析模块
  9. Spring mvc学习指南
  10. vue 基础知识
  11. UML示例图 zt
  12. H5页面的高度宽度100%
  13. 如何用 python 优雅地完成数据库课设
  14. Windows系统,Tensorflow的Tensorboard工具细节问题
  15. 跳表,Redis 为什么用跳表而不用平衡树?
  16. 使用SQL Server 2005作业设置定时任务【转】
  17. Nginx-基础配置
  18. python开发_xml.dom_解析XML文档_完整版_博主推荐
  19. WCF揭秘学习笔记(1):基础知识
  20. 【Leetcode】【Medium】Repeated DNA Sequences

热门文章

  1. IDEA00 IDEA知识点汇总
  2. 去掉redhat linux提示注册
  3. Condition Variable使用及其Thread Cancellation线程取消
  4. ie8开发人员工具无法使用,按f12任务栏里出现任务,但是窗体不弹出
  5. 【记录】CentOS7安装NODEBB
  6. Problem of Uninstall Cloudera: Cannot Add Hdfs and Reported Cannot Find CDH&#39;s bigtop-detect-javahome
  7. CodeForces 681B Economy Game (暴力)
  8. Android-Camera+SurfaceView
  9. linux服务器下配置多tomcat
  10. php 图像处理库ImageMagick windows下的安装