springboot dubbo引入包_使用Redis为注册中心的Dubbo微服务架构(基于SpringBoot)

d571df44e3033cc62bd1a79e26956a44.png

前言

Dubbo作为一款高性能的RPC框架,已经在大多数一线IT企业中得到了广泛的使用,今天我们也来试一试。为了尽可能的少写代码,让程序简单明了,我们基于SpringBoot来搭建。

虽然Dubbo推荐使用zk作为注册中心,今天我们换换Redis试试。

需求分解

本项目只是为了讲解Dubbo与Redis的使用,所以将业务尽可能地简化,我们的消费方调用服务提供方获取一个简单的用户信息。

将业务进行分解:

  • 接口定义(user-common)
  • 服务提供方(user-provider)
  • 服务消费方(user-consumer)

接口项目

原则上该项目其实只是接口定义部分就可以了,其实什么依赖都可以不需要,只是为了少写代码,这里引入了lombok,然后将该项目打包发布到maven仓库即可。

pom.xml

4.0.0cn.miw.dubbo common 0.0.1org.projectlombok lombok 1.18.8providedsrc maven-compiler-plugin 3.8.01.81.8

接口定义

UserService.java

package cn.miw.dubbo.api;import cn.miw.dubbo.model.User;public interface UserService { User findById(Integer id);}

实体定义

User.java

package cn.miw.dubbo.model;import java.io.Serializable;import lombok.Data;import lombok.NoArgsConstructor;@Data@NoArgsConstructorpublic class User implements Serializable{ private static final long serialVersionUID = -7001216319830050312L; private Integer id; private String name; private int age; }

服务提供方项目

在该项目中实现具体的服务处理逻辑并完成注册中心注册的过程,该项目可以集成一些成熟的orm框架,这里为了简单演示,其实现只是简单地创建一个对象返回即可。

71f4dfac7f9d3e6b98de47fd3261c8e3.png
  • pom.xml
<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springframework.boot spring-boot-starter-parent 2.1.1.RELEASEcn.miw.dubbo user-provider 0.0.1jardemoserver1.8cn.miw.dubbo common 0.0.1org.apache.commons commons-pool2 redis.clients jedis com.alibaba.boot dubbo-spring-boot-starter 0.2.0org.springframework.boot spring-boot-starter-data-redis org.springframework.boot spring-boot-maven-plugin 

这是一个SpringBoot项目,我们需要使用redis作为注册中心,所以引入了相关的starter及支持包,再加入Dubbo的starter和支持包。

先看看功能的具体简单实现,这里需要注意的是@Service注解,这是使用的dubbo中的注解,通过这个注解即实现了具体服务层在注册中心的流程过程,所以还需要@Component来加持,让其能够被Spring管理。

9c8f37324af73deba0420f7cab5213f7.png
  • UserServiceImpl.java
package cn.miw.dubbo.server.impl;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import com.alibaba.dubbo.config.annotation.Service;import cn.miw.dubbo.api.UserService;import cn.miw.dubbo.model.User;@Service(version = "1.0")@Componentpublic class UserServiceImpl implements UserService {  private static Logger log = LoggerFactory.getLogger(UserServiceImpl.class); @Override public User findById(Integer id) { log.info("接收到的ID:{}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值