前言:阿里的Dubbo是一个开源的分布式架构,方便了java的开发,他封装了java Remote Method Invocation(RMI),在项目中只需要引入对应的包,然后进行简单的配置就能够配置出分布式服务。
1.环境配置
1.1 下载安装 zookeeper。
1.2 下载 dubbo管理工具,然后将war包放在tomcat webapps目录中 在 WEB-INFO目录下面有一个dubbo.properties,里面是dubbo 的登录用户名和密码以及zookeeper的配置然后启动并登录。(效果图)
2. 服务提供者配置
2.1 maven引入
io.dubbo.springboot
spring-boot-starter-dubbo
1.0.0
切记由于有冲突所以一定要去掉spring-boot-devtools依赖
2.2 yum配置文件的配置
spring:
dubbo:
application:
name: provider
registry:
address: zookeeper://127.0.0.1:2181
protocol:
name: dubbo
port: 20880
scan: com.telrob.dubbo.service
由于是服务端,需要端口号,便于对外暴露服务。
2.3 接口以及实现
public interface MDubboServices {
public String toProvider() throws Exception;
}
@Service(version = "1.0.0")
public class DemoServicesImpl implements MDubboServices {
public DemoServicesImpl() {
System.out.println("++++++++++实例化++++++++++++");
}
@Override
public String toProvider() throws Exception {
System.out.println("hello");
return "remote Success!";
}
}
3 调用配置
3.1 maven 和 “服务提供者配置”一样就不重复了。
3.2 yum配置文件的配置
spring:
dubbo:
application:
name: consumer
registry:
address: zookeeper://127.0.0.1:2181
scan: com.telrob.dubbo.service
3.3 代码编写
public interface MDubboServices{
public String toProvider() throws Exception;
}
@Component
public class MMService {
public MMService() {
System.out.println("++++++++++++++++++++++++++++");
}
@Reference(version = "1.0.0")
MDubboServices mDubboServices;
public void hhh() throws Exception {
String str=mDubboServices.toProvider();
System.out.println("获取到远程服务是:"+str);
}
}
4 . 总结
当无法获取提供的服务时一定要检查spring-boot-devtools依赖是否去掉