【2】JMicro微服务-Hello World
如非授权,禁止用于商业用途,转载请注明出处
作者: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
观察每次每个服务提供者的输出?
最新文章
- Deep Learning 4_深度学习UFLDL教程:PCA in 2D_Exercise(斯坦福大学深度学习教程)
- 实例分析ELF文件静态链接
- RMQ算法讲解
- 【转】三十分钟学会STL算法
- 使用ajax和history.pushState无刷新改变页面URL(转)
- Webdriver实现对菜单栏的灵活切换功能,附上代码,类似的菜单栏切换可以自己封装
- 老司机实战Windows Server Docker:2 docker化现有iis应用的正确姿势
- python 浅析模块
- Spring mvc学习指南
- vue 基础知识
- UML示例图 zt
- H5页面的高度宽度100%
- 如何用 python 优雅地完成数据库课设
- Windows系统,Tensorflow的Tensorboard工具细节问题
- 跳表,Redis 为什么用跳表而不用平衡树?
- 使用SQL Server 2005作业设置定时任务【转】
- Nginx-基础配置
- python开发_xml.dom_解析XML文档_完整版_博主推荐
- WCF揭秘学习笔记(1):基础知识
- 【Leetcode】【Medium】Repeated DNA Sequences
热门文章
- IDEA00 IDEA知识点汇总
- 去掉redhat linux提示注册
- Condition Variable使用及其Thread Cancellation线程取消
- ie8开发人员工具无法使用,按f12任务栏里出现任务,但是窗体不弹出
- 【记录】CentOS7安装NODEBB
- Problem of Uninstall Cloudera: Cannot Add Hdfs and Reported Cannot Find CDH&#39;s bigtop-detect-javahome
- CodeForces 681B Economy Game (暴力)
- Android-Camera+SurfaceView
- linux服务器下配置多tomcat
- php 图像处理库ImageMagick windows下的安装