目錄:html
到 https://www.consul.io 下載 consul,解壓到某個目錄下java
在命令行下進入consul 的目錄,啓動 consul:consul agent –dev
mysql
回到ideal,在原項目基礎上,修改jboot.properties,增長RPC的配置參數:
web
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
增長接口包,並生成jar公共包文件。以下圖:
sql
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(); }
生成公共的接口文件包後,新增依賴公共接口包,並添加實現接口的代碼。以下:
數據庫
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"); } }
在客戶端添加調用代碼,如:
bash
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); } }
再運行,發現能正常獲取到數據;查看consul 控制檯,能夠發現有相關的RPC註冊、同步信息app
注意,默認狀況下,上面的consul啓動命令,只能經過 127.0.0.1 訪問。若是要經過局域網IP進行訪問,必須用以下命令啓動 consul:
ide
consul agent -dev -client=192.168.1.6
其中,client的IP爲consul所在的電腦的局域網IP。這時,配置文件對應的地方改成:
url
jboot.rpc.registryAddress=192.168.1.6:8500