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

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

前言Dubbo作为一款高性能的RPC框架,已经在大多数一线IT企业中得到了广泛的使用,今天我们也来试一试。为了尽可能的少写代码,让程序简单
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

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:{}



推荐阅读
author-avatar
qiao203
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有