概述
- 创建provier
- 注意:类型必须为jar类型
- 标签:
- pom文件
- exclusions标签的作用:
-
- 1.根据构件坐标祛除在当前包内依赖的包
-
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sxt</groupId>
<artifactId>12-dubbo-provier</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 导入dubbo的坐标 -->
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.5</version>
<!-- 去除指定的依赖
1.添加此标签将会去除当前dubbo依赖的构件
-->
<exclusions>
<exclusion>
<!-- 填入依赖的iD -->
<groupId></groupId>
<!-- 填入项目项名称 -->
<artifactId></artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
- pom文件的配置
- 引入的坐标
-
- Maven提供的dubbo的坐标
- 注册中心连接的zookeeper的坐标
- org.apache.curator坐标
-
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
<!-- 注册连接zookeeper的连接jar工具 -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
</project>
- spring文件配置
- 配置的步骤
- 1.配置应用的名称
- 2.配置应用集群的地址
- 集群地址要全部加入到配置中每个集群的IP+port使用逗号进行分割
- 3.配置协议和端口
- 4.引入服务接口
<!-- 给当前的应用起个名字 -->
<dubbo:application name="demo-dubbo"></dubbo:application>
<!-- 配置注册中心
1.address:注册中心IP地址,注意zookeeper是一个集群,如果是集群则需要将所有的zookeeper的IP和端口都注册
每个使用逗号分割
2.protocol:注册中心的类型
-->
<dubbo:registry address="192.168.177.128:2181,192.168.177.128:2183,192.168.177.128:2183" protocol="zookeeper"></dubbo:registry>
<!-- 配置协议和 端口-->
<dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>
<!-- 注册接口 -->
<bean id="dubboServiceImpl" class="com.sxt.service.impl.DubboServiceImpl"></bean>
<!-- 引用注册的接口 -->
<dubbo:service interface="com.sxt.service.DubboService" ref="dubboServiceImpl"></dubbo:service>
</beans>
- 服务启动的办法
-
- 1.使用SpringAPI进行启动使用ClassPathXmlApplicationContext类读取文件进行启动
- 2.使用Dubbo提供的Main类进行启动(这里使用Main进行启动)
- 3.创建Main文件的读取位置
-
public class Start {
public static void main(String[] args) {
/**
* 使用Main类进行启动的时候文件的默认读取位置为classpath下的META-INF/spring/*.xml
* 文件进行读取的
*/
Main.main(args);
}
- 查看zookeeper集群内的信息
- 成功发布后出现dubbo的文件夹
- 进去子目录我们发现了我们写的接口全类名
- 在进入子目录发现providers
- 在进入就是我们发布的信息了
- 看到这一串返回的其实包括了主机的IP地址,接口,接口内的方法,当前应用的名称,以及框架的版本
- 转换的结果(网上找的)
dubbo%3A%2F%2F192.168.2.108%3A20880%2Fcom.bjsxt.service.DubboService%3Fanyh
ost%3Dtrue%26application%3Dmyprovider%26dubbo%3D2.5.4%26generic%3Dfalse%26interfa
ce%3Dcom.bjsxt.service.DubboService%26methods%3DshowMsg%26pid%3D3936%26side%3
Dprovider%26timestamp%3D1536807891514
dubbo://192.168.2.108:20880/com.bjsxt.service.DubboService?anyhost=true&application=m
yprovider&dubbo=2.5.4&generic=false&interface=com.bjsxt.service.DubboService&methods=sh
owMsg&pid=3936&side=provider×tamp=1536807891514
- Dubbo Admin 管理平台搭建
3.1安装 Admin 管理平台
Admin 管理平台是一个 war 项目
在 Linux 系统中安装 JDK 以及 tomcat。
使用 unzip 命令解压 zip 压缩包。
删除 tomcat/webapps 目录下的 ROOT 目录
将解压出来的 ROOT 目录拷贝到 tomcat/webapps 目录下
3.2配置 Admin 管理平台
- 在ROOT/WEB-INF找到dubbo.properties文件里面有平台登录的密码和账号
Dubbo 测试 Consume
- 创建Consume工程
-
- 此工程一般为war工程,方便测试这里为jar工程
- 要有和provider工程的pom文件保持一致(在架构解释过Consume也是要根据Dubbo的配置进行开发的)
- pom文件配置
-
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
<!-- 注册连接zookeeper的连接jar工具 -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>com.sxt</groupId>
<artifactId>12-dubbo-provier</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
- 入门的测试进行测试的时候我们将provider引入到了consumer内这时他们是依赖关系就算不使用Dubbo都能调用,这是和使用Dubbo的是无影响的,只是将这个流程搭建一遍,体验下Dubbo的运行过程
- Spring容器的配置文件信息
- Consumer需要注册
-
- 1.应用的名称dubbo:application
- 2.dubbo:registry:连接的zookeeper集群地址和端口,方式
- 3.dubbo:reference:服务接口的信息该节点是用于利用proxy动态的创建一个的服务接口的实现类对象的
-
- 1.写入要调用的接口的信息的
- 2.dubbo通过此配置获取接口的代理对象通过Spring容器对我们在UserService中的调用的com.sxt.service.DubboService实现类进行值的注入
-
-
<!-- 扫描指定Service的注解 -->
<context:component-scan base-package="com.sxt.service"></context:component-scan>
<!-- 给当前的应用起个名字 -->
<dubbo:application name="demo-dubbo-consumer"></dubbo:application>
<!-- 配置注册中心
1.address:注册中心IP地址,注意zookeeper是一个集群,如果是集群则需要将所有的zookeeper的IP和端口都注册
每个使用逗号分割
2.protocol:注册中心的类型
-->
<dubbo:registry address="192.168.177.128:2181,192.168.177.128:2183,192.168.177.128:2183" protocol="zookeeper"></dubbo:registry>
<!--
1.写入要调用的接口的信息的
2.dubbo通过此配置获取接口的代理对象通过Spring容器对我们在UserService中的调用的
com.sxt.service.DubboService实现类进行值的注入
-->
<dubbo:reference id = "dubboService" interface="com.sxt.service.DubboService"></dubbo:reference>
- 测试代码:
-
- 测试接口实现类
-
@Service
public class UserServiceImpl implements UserService {
/**
* 此对象的创建是根据的dubbo的代理对象创建的当Consumer启动的调用指定的接口的时候
* 会使用proxy创建一个该接口的代理对象通过代理对象对接口内的方法进行调用,所以在进行打印dubboService
* 的值的时候会打印一个的代理对象的地址
*/
@Autowired
private DubboService dubboService;
@Override
public void test(String msg) {
System.out.println(dubboService);
String var = dubboService.showMsg(msg);
System.out.println(var);
}
}
public class TestConsumer {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService bean = (UserService)ac.getBean(UserService.class);
bean.test("Consumer");
}
}
- 运行结果
- 执行的流程
-
- 1.Consumer启动后会从注册中心下载服务列表
- 2.根据Dubbo的动态代理创建服务接口的实例对象
- 3.通过Spring给的实例对象注入
- 4.通过该注入对象对接口的方法进行调用实现业务
-
最后
以上就是细腻铃铛为你收集整理的dubbo注入找不到bean_Dubbo和Zookeeper入门案例的全部内容,希望文章能够帮你解决dubbo注入找不到bean_Dubbo和Zookeeper入门案例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复