学习Java到了一定程度会接触到分布式,分布式可以通过解耦整个系统成多个小一些的系统,使每个小系统分担访问压力,各个系统又可以建立集群,进行负载访问压力,但是每个系统之间访问需要一种连接方式,通常会使用Http,WebService等等,Dubbo是一个很好的服务治理框架,由阿里巴巴开发,进入正题.
SpringBoot整合dubbo很方便,但是不熟练的话会有很多坑首先服务提供者
1.提供者配置
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://locahost:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.sso.service.service
spring.dubbo.scan一定要注意是你接口实现类的包
然后在每个实现类中添加@Service注解
注解来源
import com.alibaba.dubbo.config.annotation.Service;
可以的话将Dubbo的管理后台部署好
可以观察到服务是否已经成功发布
这样就算是发布成功了,接下来就可以配置消费者了
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://locahost:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=project.webcontroller
这里有一个要注意的地方
spring.dubbo.scan
指的是你在哪个报下使用了@Reference这个注解,这个需要被扫描到
这个没有配置好你需要的服务永远得不到,当然获取的服务对象为空,还有其他的情况,这里就不一一列举了
在你需要使用服务的地方就像平时注入对象一样利用@Reference注解进行注入
如果发布服务时有版本号消费服务也要加上版本号
这样就算一个简单的服务发布和服务消费过程了,,,,
网友评论