热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot:集成dubbo分布式框架

接口工程服务提供者工程服务消费者工程1、创建一个mavenjava工程,作为接口工程接口工程中主要用于存放所有的实体bean和业务接口集成dubbo框架中的实体类必须全部实现Ser


  • 接口工程

  • 服务提供者工程

  • 服务消费者工程


1、创建一个maven java工程,作为接口工程

接口工程中主要用于存放所有的实体bean和业务接口

集成dubbo框架中的实体类必须全部实现Serializable序列化接口



org.projectlombok
lombok
1.18.22
provided


2、创建一个springboot web工程,作为服务提供者provider

这个工程中主要用来实现所有的业务接口,并且将需要暴露的业务接口注册到注册中心


2.1 引入依赖

provider工程中,除了springboot自动引入的web依赖,还需要额外引入dubbo依赖、注册中心的依赖、接口工程的依赖



org.springframework.boot
spring-boot-starter-web


com.alibaba.spring.boot
dubbo-spring-boot-starter
2.0.0


com.101tec
zkclient
0.10


com.kw
001-springboot-dubbo-interface
1.0.0


2.2 配置dubbo服务提供者

在springboot项目中,dubbo的配置在springboot核心配置文件application.properties中进行配置

#配置项目tomcat端口号
server.port=8081
#配置项目的上下文路径
server.servlet.context-path=/
#配置dubbo服务提供者核心配置
#声明dubbo服务提供者的名称:保证唯一性
spring.application.name=001-springboot-dubbo-provider
#声明这个工程是dubbo的服务提供者
spring.dubbo.server=true
#设置注册中心的地址和端口
spring.dubbo.registry=zookeeper://localhost:2181

2.3 编写接口实现类

在springboot项目中,编写完接口实现类之后,需要在实现类上添加@Component注解,表示将实现类加入到spring容器中。

这个注解就相当于maven web项目中,在dubbo服务提供者核心配置文件中配置的



然后通过配置将接口注册到注册中心进行暴露

@Service(interfaceClass = UserService.class,version = "1.0.0",timeout = 15000)

这个配置就相当于maven web项目中,在dubbo服务提供者核心配置文件中配置的

dubbo:service interface="",version="",timeout=""

@Component
@Service(interfaceClass = UserService.class,version = "1.0.0",timeout = 15000)
//dubbo:service interface="",version="",timeout=""
public class UserServiceImpl implements UserService {
//正常业务是在业务层需要引入持久层获取数据
@Override
public User getUserById(int id) {
User user=new User();
user.setId(1);
user.setUsername("admin");
user.setPassword("123");
return user;
}
@Override
public int CountUsers() {
return 200;
}
}

2.4 开启dubbo注解配置

在springboot启动配置类上添加@EnableDubboConfiguration注解,表示开启了dubbo注解配置

@SpringBootApplication //开启spring注解配置
@EnableDubboConfiguration //开启dubbo注解配置
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

3、创建一个springboot web工程,作为服务消费者consumer

这个工程中主要用来处理前端业务请求


3.1 引入依赖



org.springframework.boot
spring-boot-starter-web


com.alibaba.spring.boot
dubbo-spring-boot-starter
2.0.0


com.101tec
zkclient
0.10


com.kw
001-springboot-dubbo-interface
1.0.0


3.2 配置dubbo服务消费者

在springboot项目中,dubbo的配置在springboot核心配置文件application.properties中进行配置

#设置项目默认端口
server.port=8082
#设置上下文路径
server.servlet.context-path=/
#配置dubbo
#设置dubbo服务消费者名称:保证唯一性
spring.application.name=002-springboot-dubbo-consumer
#设置注册中心的地址和端口号
spring.dubbo.registry=zookeeper://localhost:2181

3.3 编写controller层代码

在控制层需要引入注册中心暴露的接口,在引入的接口上添加以下配置

@Reference(interfaceClass = UserService.class,version = "1.0.0",check = false)

@RestController
public class UserController {
@Reference(interfaceClass = UserService.class,version = "1.0.0",check = false)
UserService userService;
@RequestMapping("/user")
public User getUserById(int id){
User user=userService.getUserById(id);
return user;
}
@GetMapping("/userCount")
public String countUsers(){
return "当前总人数为:"+userService.CountUsers();
}
}

3.4 开启dubbo注解扫描

在springboot启动配置类上添加@EnableDubboConfiguration注解,表示开启了dubbo注解配置

@SpringBootApplication //开启spring注解配置
@EnableDubboConfiguration //开启dubbo注解配置
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

4、启动注册中心



推荐阅读
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
bj韩式尕伙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有