当前位置:
首页 >
前端技术
> javascript
>内容正文
javascript
dubbo consumer 端口_基于Springboot+Dubbo+Nacos 注解方式实现微服务调用
生活随笔
收集整理的这篇文章主要介绍了
dubbo consumer 端口_基于Springboot+Dubbo+Nacos 注解方式实现微服务调用
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
今天跟大家分享基于Springboot+Dubbo+Nacos 注解方式实现微服务调用的知识。
1 项目结构
|-- spring-boot-dubbo-demo (父级工程) |-- spring-boot-dubbo-base (基础工程) |-- spring-boot-dubbo-consumer (消费者) |-- spring-boot-dubbo-provider (生产者)SpringBoot版本:2.2.0
Dubbo版本:2.7.0
Nacos版本:1.1.4
2 启动Nacos注册中心
Nacos官方文档:
https://nacos.io/zh-cn/docs/quick-start.html
默认账号密码是nacos
3 搭建项目
Consumer和Provider的Maven依赖如下:
<dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency> <dependency> <groupId>com.sansgroupId> <artifactId>spring-boot-dubbo-baseartifactId> <version>0.0.1-SNAPSHOTversion> dependency> <dependency> <groupId>org.apache.dubbogroupId> <artifactId>dubbo-spring-boot-starterartifactId> <version>2.7.0version> dependency> <dependency> <groupId>org.apache.dubbogroupId> <artifactId>dubboartifactId> <version>2.7.0version> dependency> <dependency> <groupId>org.apache.dubbogroupId> <artifactId>dubbo-registry-nacosartifactId> <version>2.7.1version> dependency> <dependency> <groupId>com.alibaba.nacosgroupId> <artifactId>nacos-clientartifactId> <version>1.0.0version> dependency>dependencies>Consumer配置如下:
# 配置端口server: port: 8862dubbo: # 配置服务信息 application: name: dubbo-consumer # 禁用QOS同一台机器可能会有端口冲突现象 qos-enable: false qos-accept-foreign-ip: false # 配置注册中心 registry: address: nacos://127.0.0.1:8848 # 设置超时时间 consumer: timeout: 4000spring: main: # 解决Bean重复定义问题 allow-bean-definition-overriding: trueProvider配置如下:
# 配置端口server: port: 8861dubbo: # 配置服务信息 application: name: dubbo-provider # 禁用QOS同一台机器可能会有端口冲突现象 qos-enable: false qos-accept-foreign-ip: false # 配置注册中心 registry: address: nacos://127.0.0.1:8848 # 设置协议-协议由提供方指定消费方被动接受 protocol: name: dubbo port: 20880spring: main: # 解决Bean重复定义问题 allow-bean-definition-overriding: true4 Base工程编写
编写DTO
/** * RPC接口DTO * 注意这里要实现序列化接口 * @Author Sans * @CreateTime 2019/11/6 23:04 */@Datapublic class ProviderTestDTO implements Serializable { // ID private int id; // 名字 private String name; // 序号 private Integer number;}编写Serivce
/** * RPC接口 * @Author Sans * @CreateTime 2019/11/6 23:03 */public interface IProviderService { List queryList();}编写返回结果类
/** * 返回结果类 * 这里采用构建者模式构建 * 优点:1.私有化构造器访问范围小 2.参数可灵活设置便于管理 * @Author Sans * @CreateTime 2019/11/7 18:59 */@Getterpublic class ResultVO<T> implements Serializable { /** * 返回码 */ private int code; /** * 返回信息 */ private String message; /** * 返回数据 */ private T data; /** 私有化构造器 **/ private ResultVO() {} private ResultVO(ResultVO resultVO) { this.code = resultVO.code; this.message = resultVO.message; this.data = resultVO.data; } /** * Build */ public static class Builder<T>{ private ResultVO resultVO; public Builder() { resultVO = new ResultVO<>(); } public Builder code(int code){ resultVO.code = code; return this; } public Builder message(String message){ resultVO.message = message; return this; } public Builder data(T data){ resultVO.data = data; return this; } public ResultVO build(){ return new ResultVO<>(resultVO); } }}5 Provider工程编写
在启动类上面不要忘记加上@EnableDubbo注解
@EnableDubbo //开启Dubbo的注解支持@SpringBootApplicationpublic class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); }}实现IProviderService接口,注意这里的Serivce引用的是dubbo的包
/** * 生产者Dubbo接口实现 * @Author Sans * @CreateTime 2019/11/6 23:01 */@Servicepublic class ProviderServiceImpl implements IProviderService { @Override public List queryList() { // 初始化数据 ProviderTestDTO testDTO1 = new ProviderTestDTO(); testDTO1.setId(1); testDTO1.setName("学生"); testDTO1.setNumber(100); ProviderTestDTO testDTO2 = new ProviderTestDTO(); testDTO2.setId(2); testDTO2.setName("教师"); testDTO2.setNumber(101); // 组装数据 Listlist = new ArrayList<>(); list.add(testDTO1); list.add(testDTO2); return list; }}6 Consumer工程编写
和Provider工程的启动类一样,加上@EnableDubbo注解
@EnableDubbo //开启dubbo的注解支持@SpringBootApplicationpublic class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); }}编写测试接口
/** * 消费测试接口 * @Author Sans * @CreateTime 2019/11/6 23:09 */@RestController@RequestMapping("/consumer")public class ConsumerController { // Dubbo远程调用注解 @Reference private IProviderService providerService; @RequestMapping(value = "/list",method = RequestMethod.GET) public ResultVO getList(){ // 远程调用 List providerTestDTOList = providerService.queryList(); return new ResultVO.Builder<>().code(200).message("success").data(providerTestDTOList).build(); }}7 测试
启动Provider工程和Consumer工程,这个时候Nacos会有对应的服务
使用Postman访问Consumer测试接口
8 项目源码
码云:https://gitee.com/liselotte/spring-boot-dubbo-demoGitHub:https://github.com/xuyulong2017/my-java-demo如有收获请划至底部
点击“在看”支持,谢谢!
关注马士兵
每天分享技术干货
点赞是最大的支持
总结
以上是生活随笔为你收集整理的dubbo consumer 端口_基于Springboot+Dubbo+Nacos 注解方式实现微服务调用的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: mysql myisam存储引擎_MyS
- 下一篇: tfs java开发需要jar_使用Sp