【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
观察每次每个服务提供者的输出?
【2】JMicro微服务-Hello World的更多相关文章
- 【13】JMicro微服务-ID生成与Redis
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到12小节 1. 微服务中ID地位 如果说前面小节的功能点是微服务的大脑,那么全局唯一ID则是微服务 ...
- 【12】JMicro微服务-Zookeeper
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到11小节 1. CuratorFramework支持 JMicro目前基于Zookeeper实现统 ...
- 【11】JMicro微服务-配置管理
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到10小节 JMicro目前仅支持基于Zookeeper做配置管理,全部配置信息可以在ZK做增删改查 ...
- 【10】JMicro微服务-API网关
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到9小节 1. Api网关基本特性: Api网关作为对外网提供服务的基本入口,地位类似于NGINX, ...
- 【8】JMicro微服务-JMicro ZKUI
ZKUI是一个开源项目,是一个查看,修改ZK数据非常方便的工具.JMicro基于ZK做服务治理,配置管理,因此使用ZKUI会提供非常大的方便. Github地址:https://github.com/ ...
- 【3】JMicro微服务-服务超时,重试,重试间隔
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 接下来的内容都基于[2]JMicro微服务-Hello World做Demo 微服务中,超时和重试是一个最基本问题下面Dem ...
- JMicro微服务之超时&重试
JMicro是本人开发的基于Java实现的微服务框架,当前正式版本为0.0.3,并已发布到maven中央仓库.项目源码github:https://github.com/mynewworldyyl/j ...
- 【6】JMicro微服务-服务日志监控
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 1. 微服务相关 在前面的1到5节中,总共涉及服务提供者,服务消费者,服务监听服务,发布订阅服务,熔断器服务5种类型的猪 ...
- 【9】JMicro微服务-发布订阅消息服务
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 1. JMicro消息服务目前实现特性 a. JMicro只支持发布订阅消息服务,不支持队列式消息服务: b. 不支持消息持 ...
随机推荐
- 微信H5支付常见问题汇总
常见问题 一.回调页面 正常流程用户支付完成后会返回至发起支付的页面,如需返回至指定页面,则可以在MWEB_URL后拼接上redirect_url参数,来指定回调页面. 如,您希望用户支付完成后跳转至 ...
- 《OpenGL超级宝典》编程环境配置
最近在接触OpenGL,使用的书籍就是那本<OpenGL超级宝典>,不过编程环境的搭建和设置还是比较麻烦的,在网上找了很多资料,找不到GLTools.lib这个库.没办法自己就借助源码自己 ...
- DataStage 二、InfoSphere Information Server进程的启动和停止
DataStage序列文章 DataStage 一.安装 1 关于进程需要了解的基础知识 名称 说明 ASB代理进程 通信代理程序,它的作用是协助层与层之间的通信,默认端口是31531,它以后台进程的 ...
- [分享]PY的Boost自动编译程序 1.1 根据环境自动编译
Python写的Boost自动编译程序 1.1 改进: 根据自己的环境筛选出已安装环境,并列出 环境提供选择. 支持X64位的自动参数编译. 可以选择编译的参数,其他版本持续改进中 自动编译自动安装到 ...
- GIT checkout 和 reset 区别
git checkout -- file:撤销对工作区修改:这个命令是以最新的存储时间节点(add和commit)为参照,覆盖工作区对应文件file:这个命令改变的是工作区 git reset HEA ...
- 3ds Max从入门到精通
1. 软件的下载与安装 这里用的是3ds Max2009简体中文版 32位 在 Win7上运行记得打上sp2补丁,不然会有bug. 2. 3ds Max的历史 3ds Max可以用在动画和游戏,点云数 ...
- HRBUST1310 火影忍者之~鸣人 2017-03-06 16:01 104人阅读 评论(0) 收藏
火影忍者之-鸣人 火影忍者的男主角漩涡鸣人,因为身上封印着邪恶的九尾妖狐,无父无母的他受尽了村人的冷眼与歧视,他下定决心要成为第六代火影,让所有人都认同他的存在,火影是动漫火影忍者中主人公鸣人所在的国 ...
- iptables命令(备忘)
语法 iptables(选项)(参数) 选项 -t<表>:指定要操纵的表: -A:向规则链中添加条目: -D:从规则链中删除条目: -i:向规则链中插入条目: -R:替换规则链中的条目: ...
- MySQL 笔记整理(20) --幻读是什么,幻读有什么问题?
笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 20) --幻读是什么,幻读有什么问题? 我们先来看看表结构和初始化数据 ...
- [PHP]socket的连接超时 与 读取/写入超时
socket处理时有两种超时 , 分为连接超时 和 读取/写入数据超时 1. stream_socket_client 函数中的超时时间是连接超时 , 默认是php.ini中的default_sock ...