体验JBOOT(三)--RPC篇

目录:

  1. 体验JBOOT(一)-- Hello, Jboot
  2. 体验JBOOT(二)--数据库篇
  3. 体验JBOOT(三)--RPC篇
  4. 体验JBOOT(四)-- jboot-admin 篇
  1. https://www.consul.io 下载 consul,解压到某个目录下

  2. 在命令行下进入consul 的目录,启动 consul:consul agent –dev 

  3. 回到ideal,在原项目基础上,修改jboot.properties,增加RPC的配置参数:
     

    jboot.datasource.type=mysql
    jboot.datasource.url=jdbc:mysql://127.0.0.1/demo?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
    jboot.datasource.user=demo
    jboot.datasource.password=demo
    
    jboot.rpc.type=motan
    jboot.rpc.registryType=consul
    jboot.rpc.registryAddress=127.0.0.1:8500
    
  4. 增加接口包,并生成jar公共包文件。如下图:






     

    package io.jboot.hello.service;
    
    import com.jfinal.plugin.activerecord.Record;
    
    import java.util.List;
    
    /**
     * Created by Tom on 2018/3/13.
     */
    public interface HelloService {
        public List<Record> getUsers();
    }
    




  5. 生成公共的接口文件包后,新增依赖公共接口包,并添加实现接口的代码。如下:





     

    package io.jboot.hello.impl;
    
    import com.jfinal.plugin.activerecord.Db;
    import com.jfinal.plugin.activerecord.Record;
    import io.jboot.core.rpc.annotation.JbootrpcService;
    import io.jboot.hello.service.HelloService;
    
    import java.util.List;
    
    /**
     * Created by Tom on 2018/3/13.
     */
    @JbootrpcService
    public class HelloServiceImpl implements HelloService {
        public List<Record> getUsers() {
            return Db.find("select * from user");
        }
    }
    


  6. 在客户端添加调用代码,如:
     

    package io.jboot.hello;
    
    import com.jfinal.plugin.activerecord.Db;
    import com.jfinal.plugin.activerecord.Record;
    import io.jboot.Jboot;
    import io.jboot.core.rpc.annotation.JbootrpcService;
    import io.jboot.hello.service.HelloService;
    import io.jboot.web.controller.JbootController;
    import io.jboot.web.controller.annotation.RequestMapping;
    
    import java.util.List;
    
    /**
     * Created by Tom on 2018/3/13.
     */
    @RequestMapping("/")
    public class HelloController extends JbootController {
        @JbootrpcService
        HelloService service ;
    
        public void index(){
            List<Record> users = service.getUsers();
            setAttr("users", users);
            render("index.html");
        }
    
        public static void main(String[] args){
            Jboot.run(args);
        }
    }
    


  7. 再运行,发现能正常获取到数据;查看consul 控制台,可以发现有相关的RPC注册、同步信息

  8. 注意,默认情况下,上面的consul启动命令,只能通过 127.0.0.1 访问。如果要通过局域网IP进行访问,必须用如下命令启动 consul:
     

    consul agent -dev -client=192.168.1.6

    其中,client的IP为consul所在的电脑的局域网IP。这时,配置文件对应的地方改为:
     

    jboot.rpc.registryAddress=192.168.1.6:8500

猜你喜欢

转载自my.oschina.net/tomlin/blog/1634060