创建一个dubbo整合springboot的微服务项目

简介: 创建一个dubbo微服务项目

创建一个dubbo微服务项目


首先创建一个父项目,vhukze-dubbo-parent-pom,依赖引入,打包类型是pom


<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>


在此项目下创建子项目,接口父项目,vhukze-dubbo-public-api-service,打包方式是pom


在接口父项目下创建子项目,服务提供者的接口项目,vhukze-dubbo-public-api-member-service,打包方式是pom,写一个接口,


package com.vhukze.api.member;
public interface IMemberService {
    String getUser();
}

在parent父项目下创建上面服务提供者接口项目的实现项目,vhukze-dubbo-api-member-service-impl,打包方式jar,引入要实现的接口项目依赖


<dependency>
            <artifactId>vhukze-dubbo-public-api-member-service</artifactId>
            <groupId>com.vhukze</groupId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

写一个类实现接口,下面的Service注解是Dubbo里面的注解


package com.vhukze.api.member.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.vhukze.api.member.IMemberService;
@Service
public class MemberServiceImpl implements IMemberService {
    @Override
    public String getUser() {
        return "订单服务调用会员服务";
    }
}

写一个启动类

package com.vhukze;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * Hello world!
 *
 */
@SpringBootApplication
//开启dubbo服务,自动扫描Service注解的类,可以不在配置文件中添加扫包配置
@EnableDubbo
public class App 
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class);
    }
}


resources下application.yml配置文件

##服务器端口号
server:
  port: 8080
##注册到注册中心的名字
dubbo:
  application:
    name: member
  #采用协议的方式
  protocol:
    name: dubbo
    #发布dubbo端口号
    port: 20880
  #注册中心地址
  registry:
    address: zookeeper://127.0.0.1:2181
  scan:
  #实现类扫包范围
    base-packages: com.vhukze.api.member.impl


服务提供者写好了


创建服务消费者项目,在parent父项目下,vhuzke-dubbo-order-web,打包方式jar


resources下application配置文件


server:
  port: 8081
###dubbo 注册服务名称
dubbo:
  application:
    name: order
#  ###dubbo服务地址
#  protocol:
#    name: dubbo
#    port: 20880
  registry:
    address: zookeeper://localhost:2181
  consumer:
    timeout: 5000

写一个controller用来测试访问,Reference注解是从dubbo中注入实例,Service注解添加进来的实例。


这里直接注入实例到注解就行

package com.vhukze.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.vhukze.api.member.IMemberService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
class OrderController {
    @Reference
    private IMemberService iMemberService;
    @RequestMapping("/orderToMember")
    public String OrderToMember(){
        return iMemberService.getUser();
    }
}

启动zookeeper,访问上面的controller中的接口


http://localhost:8081/orderToMember


相关文章
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
700 0
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
527 0
|
前端开发 安全 Java
Spring Boot 便利店销售系统项目分包设计解析
本文深入解析了基于Spring Boot的便利店销售系统分包设计,通过清晰的分层架构(表现层、业务逻辑层、数据访问层等)和模块化设计,提升了代码的可维护性、复用性和扩展性。具体分包结构包括`controller`、`service`、`repository`、`entity`、`dto`、`config`和`util`等模块,职责分明,便于团队协作与功能迭代。该设计为复杂企业级应用开发提供了实践参考。
576 0
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
784 3
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
1079 2
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
1089 2
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
599 2
|
12月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
429 0
|
12月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
869 0
|
网络协议 Java
在SpringBoot项目中使用Netty实现远程调用
本文介绍了使用Netty解决网络连接性能问题的方法,重点讲解了Netty的NIO特性及其在SpringBoot中的应用。Netty作为高效的NIO框架,支持非阻塞IO,能通过单线程管理多个客户端连接,简化TCP/UDP套接字服务器开发。文章详细展示了Netty在SpringBoot中实现远程调用的过程,包括服务端与客户端代码实现、依赖配置及测试验证。通过示例代码,如`NettyServer`、`NettyClientUtil`等,清晰说明了Netty的工作原理和实际应用,解决了半包等问题,并提供了完整的测试结果。
1050 3