博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dubbo学习笔记
阅读量:4555 次
发布时间:2019-06-08

本文共 5345 字,大约阅读时间需要 17 分钟。

1 dubbo的 作用

以下内容摘自dubbo官网:
  dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现;

2 查看官网大坑

  (二)dubbo管理控制台的搭建

git clone https://github.com/apache/incubator-dubbo-ops

cd incubator-dubbo-ops && mvn package

 

用法,分为三个 admin, register/ monitor

dubbo admin
Dubbo admin is a spring boot application, you can start it with fat jar or in IDE directly.

进入 dubbo-admin,执行 mvn install

-----------------------------
maven 下载打包时需要配置 仓库MAVEN_HOME,Path=xxxxxj,这样的话就会用配置的阿里云镜像,下载会很快
碰到了不能编译,需要配置java环境变量
编译后启动报错了,因为没改zookeeper的配置ip,重新安装打包,运行target下的 java -jar dubbo-xxxxxx.jar,账号参考配置里的 root/root 或者 guest/xxxx,端口查看配置 时 7001

 

dubbo monitor and dubbo registry
You can get a release of dubbo monitor in two steps:

Step 1:
git clone https://github.com/apache/incubator-dubbo-ops
Step 2:
cd incubator-dubbo-ops && mvn package
Then you will find:

dubbo-monitor-simple-2.0.0-assembly.tar.gz in incubator-dubbo-ops\dubbo-monitor-simple\target directory. Unzip it you will find the shell scripts for starting or stopping monitor.

dubbo-registry-simple-2.0.0-assembly.tar.gz in incubator-dubbo-ops\dubbo-registry-simple\target directory. Unzip it you will find the shell scripts for starting or stopping registry.

 

 

2 然后时健康检测项目,打包,改zookeeperip,解压生成的 target下的 xxx.gz,进入 assembly.bin,运行start.bat即可

F:\programme\dubbo-admin-master\dubbo-monitor-simple\target\dubbo-monitor-simple-2.0.0\assembly.bin

 

bat启动文件 

f:

cd F:\programme\dubbo-admin-master\dubbo-admin\target
java -jar dubbo-admin-0.0.1-SNAPSHOT.jar

f:

cd F:\programme\dubbo-admin-master\dubbo-monitor-simple\target\dubbo-monitor-simple-2.0.0\assembly.bin
start.bat

 

4 自动生成 serializable 方法的配置再idea中

 

4 真实的 测试dubbo的例子

 

 

/** * 订单服务相关接口 */public interface OrderService {        /**     * 初始化订单     * @param userId     */    List
initOrder(String userId);}public interface UserService { /** * 获取用户信息 * @param userId * @return */ List
getUserList(String userId); List
getUserAddressList(String userId); } user-service-provider
com.darling.dubboDemo
pub-interfence
1.0-SNAPSHOT
com.alibaba
dubbo
2.6.2
org.apache.curator
curator-framework
2.12.0
package com.provider.userserviceprovider.service; import com.pubinter.pubinterface.dao.UserService; import com.pubinter.pubinterface.pojo.User; import java.util.ArrayList; import java.util.List; public class UserServiceImpl implements UserService { public List
getUserAddressList(String userId) { List
list = new ArrayList(); list.add(new User(3,"韦德",36,"迈阿密")); list.add(new User(23,"詹姆斯",34,"洛杉矶")); list.add(new User(24,"科比",39,"洛杉矶")); return list; } @Override public List
getUserList(String userId) { return null; } }
public class TestProviderDemo { public static void main(String[] args) throws IOException { // 加载配置文件 ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("provider.xml"); // 容器启动 applicationContext.start(); // 使程序阻塞(由于是单元测试,如果程序跑完了我们再dubbo控制台看不到效果) System.in.read(); } } 不启用spring boot 主类,因为没必要,只启动了这个一个配置文件 order-service-consumer
com.darling.dubboDemo
pub-interfence
1.0-SNAPSHOT
com.alibaba
dubbo
2.6.2
org.apache.curator
curator-framework
2.12.0
/** * @author 董琳琳 * @date 2018/9/14 11:50 * @description 订单服务的实现类 */ @Service public class OrderServiceImpl implements OrderService { @Autowired UserService userService; /** * 初始化订单并调用用户服务的接口 * @param userId * @return */ @Override public List
initOrder(String userId) { return userService.getUserAddressList(userId); } }
user必须实现serializable接口 必须要加扫描路径,不然会出错,找不到类
/** * @author 董琳琳 * @date 2018/9/14 15:57 * @description 测试服务调用者是否成功从注册中心订阅服务 */ public class TestConsumerDemo { public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("consumer.xml"); OrderService service = applicationContext.getBean(OrderService.class); List
list = service.initOrder("1"); for (User user:list) { System.out.println(user.toString()); } System.in.read(); } } import java.io.Serializable; public class User implements Serializable { private static final long serialVersionUID = -2844400681715908324L; private int age; private String name; private String address; private int number; User(){}; public User(int age,String name,int number,String address){ this.address=address; this.age=age; this.number=number; this.name=name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } }

  大概流程是,public 接口,有两个,一个user 类,需要实现serializable接口和 set get方法,第二个项目provider引入公共的刚才的想pub,进行生产者配置,第三个消费者配置,兜售ideal 项目的module方式,

最终的效果是

转载于:https://www.cnblogs.com/genestart/p/11220099.html

你可能感兴趣的文章
使用 highlight.js 在网页中高亮显示java 代码 【原】
查看>>
[转]高颜值、好用、易扩展的微信小程序 UI 库,Powered by 有赞
查看>>
[转]SQL Server如何启用xp_cmdshell组件
查看>>
[转]微擎应用笔记3--manifest.xml文件使用说明
查看>>
Codeforces 1000C Covered Points Count 【前缀和优化】
查看>>
python高效读取文件、文件改写
查看>>
gulp
查看>>
pgsql查询优化之模糊查询
查看>>
[转]-Gradle使用手册(三):构建任务
查看>>
ExtJS下拉树
查看>>
android 调用系统相机录像并保存
查看>>
BW系统表的命名规则
查看>>
Asp.Net在IE10下出现_doPostBack未定义的解决办法 LinkButton
查看>>
《CLR via C#》Part2之Chapter5 基元类型、引用类型和值类型(一)
查看>>
1-9 RHEL7-文件权限管理
查看>>
apache服务器安装
查看>>
Search a 2D Matrix
查看>>
文件解析漏洞
查看>>
弹性成像的一些术语
查看>>
作业2
查看>>