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

  1. 【13】JMicro微服务-ID生成与Redis

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到12小节 1. 微服务中ID地位 如果说前面小节的功能点是微服务的大脑,那么全局唯一ID则是微服务 ...

  2. 【12】JMicro微服务-Zookeeper

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到11小节 1. CuratorFramework支持 JMicro目前基于Zookeeper实现统 ...

  3. 【11】JMicro微服务-配置管理

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到10小节 JMicro目前仅支持基于Zookeeper做配置管理,全部配置信息可以在ZK做增删改查 ...

  4. 【10】JMicro微服务-API网关

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到9小节 1. Api网关基本特性: Api网关作为对外网提供服务的基本入口,地位类似于NGINX, ...

  5. 【8】JMicro微服务-JMicro ZKUI

    ZKUI是一个开源项目,是一个查看,修改ZK数据非常方便的工具.JMicro基于ZK做服务治理,配置管理,因此使用ZKUI会提供非常大的方便. Github地址:https://github.com/ ...

  6. 【3】JMicro微服务-服务超时,重试,重试间隔

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 接下来的内容都基于[2]JMicro微服务-Hello World做Demo 微服务中,超时和重试是一个最基本问题下面Dem ...

  7. JMicro微服务之超时&重试

    JMicro是本人开发的基于Java实现的微服务框架,当前正式版本为0.0.3,并已发布到maven中央仓库.项目源码github:https://github.com/mynewworldyyl/j ...

  8. 【6】JMicro微服务-服务日志监控

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl   1. 微服务相关 在前面的1到5节中,总共涉及服务提供者,服务消费者,服务监听服务,发布订阅服务,熔断器服务5种类型的猪 ...

  9. 【9】JMicro微服务-发布订阅消息服务

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 1. JMicro消息服务目前实现特性 a. JMicro只支持发布订阅消息服务,不支持队列式消息服务: b. 不支持消息持 ...

随机推荐

  1. 在windows下安装python包管理器pip及使用

      从来没有在Windows下用过pip,今天试了下,原来pip也可以在Windows下安装,使用也和Linux下一样简单. 先从下面的地址下载pip源码: http://pypi.python.or ...

  2. 数据结构notes

    1. 一份很好的数据结构教程,图文并茂,简明扼要,列出每种结构的定义和优缺点,非常适合初学者 via @ranyif https://www.interviewcake.com/data-struct ...

  3. js中 new Date()使用说明

    var myDate = new Date(); // myDate.getYear(); //获取当前年份(2位)(该方法获取年份,涉及到浏览器兼容问题,所以不推荐使用!) // myDate.ge ...

  4. java可视化

    1.java关闭窗口代码. ft.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); IE打开  Weiler-Atherton任意多边形裁剪 http:/ ...

  5. 购买阿里云的云服务器时选择镜像centos时应该选择哪个版本

    购买阿里云的云服务器时选择镜像centos时应该选择哪个版本 方法/步骤首先,我们要清楚的便是每个系统之间的差别,以及在阿里云上的差别:1. Windows1.1) 系统内含正版激活.1.2) 适合于 ...

  6. .net 分布式架构之分布式锁实现(转)

    分布式锁是控制分布式系统之间同步访问共享资源的一种方式.在分布式系统中,常常需要协调他们的动作.如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防 ...

  7. 20169205 2016-2017-2 实验四 SQL注入实验

    20169205 2016-2017-2 实验四 SQL注入实验 实验介绍 SQL注入技术是利用web应用程序和数据库服务器之间的接口来篡改网站内容的攻击技术.通过把SQL命令插入到Web表单提交框. ...

  8. Linux umask权限

    文件基本权限 Linux中文件权限由三部分组成: rw-r--r-- 前三位:表示用户所拥有的权限 中三位:表示用户所在组的权限 后三们:表示其他用户的权限 权限 八进制 十进制 - - - 000 ...

  9. EBS常用接口表

    AP接口表: AP_INVOICES_INTERFACE AP_INVOICE_LINES_INTERFACE 涉及的请求: 应付款管理系统开放接口导入 涉及案例: 运费导AP.费用导AP PO接口表 ...

  10. MVP社区巡讲 12月5日北京站| 12月12日上海站

    2015年底的社区巡讲Powered MVP Roadshow正式启动啦!12月5日周六下午北京场,12月12日周六下午上海场. 欢迎各位邀请您的同事朋友来参加MVP的社区活动,也邀请您发送活动信息( ...