多平台统一管理软件接口,如何实现多平台统一管理软件接口
249
2022-11-12
SpringBoot中dubbo+zookeeper实现分布式开发的应用详解
总体实现思路是启动一个生产者项目注册, 将所含服务注册到zookeeper的注册中心, 然后在启动一个消费者项目,将所需服务向zookeeper注册中心进行订阅, 等待注册中心的通知
注册中心基于负载均衡算法给消费者匹配到合适的生产者主机,然后通知消费者可以使用
实现生产者
导入zookeeper依赖包
配置服务名字, 注册中心地址, 扫描被注册的包
server.port=8081
#当前应用名字
dubbo.application.name=provider-server
#注册中心地址
dubbo.rdVhlEVmegistry.address=zookeeper://127.0.0.1:2181
#扫描指定包下服务
dubbo.scan.base-packages=com.demo.service
实现一个接口,在接口中完成需求
public interface Translate {
String translate(String str);
}
public interface Translate {
String translate(String str);
}
实现一个消费者
导入依赖, 和生产者的依赖是相同的
配置服务名字,注册中心地址
server.port=8082
# 配置zookeeper
# 配置服务名字
dubbo.application.name=consumer.server
# 配置注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
本来正常步骤是需要将服务提供者的接口打包,然后用pom文件导入,我们这里使用简单的方式,直接将服务的接口拿过来,路径必须保证正确,即和服务提供者相同
现获取翻译服务
package com.demo.service;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;
@Service //使用Spring的Service添加组件
public class Translation {
@Reference //远程引用指定的服务,他会按照全类名进行匹配,看谁给注册中心注册了这个全类名
private Translate translate;
public String getTranslation(String str) {
return translate.translate(str);
}
}
实现controller
@RestController
public class TranslateController {
@Autowired
Translation translation;
@RequestMapping("/tran/{str}")
public String tran(@PathVariable("str")String str) {
return translation.getTranslation(str);
}
}
测试
首先启动zookeeper服务器和dubbo进入到监控页面中
切记不要关闭服务器和dubbo开启生产者这个springboot项目
上图显示就是生产者注册成功, 我们可以点击ip查看详情
启动消费者这个springboot项目
访问地址, 但是要注意我们消费者的tomcat启动端口已经换成8082
翻译成功
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~