一、项目结构
此处创建了一个父子项目,其中 admin是后台,common是公共模块,比如一些工具类、实体类都放在此处,portal是前台,servcie是dubbo服务。大体是这么划分。
此处我们以portal 调用 service (前台消费者,调用dubbo服务)为例。像admin中不在写demo。
二、dubbo服务
结构如下
主要的maven依赖
<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> </dependency>
启动类
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration; @SpringBootApplication @EnableDubboConfiguration public class ServerApp { public static void main(String[] args) { SpringApplication.run(ServerApp.class, args); } }
配置文件
spring.dubbo.application.name=dubbo-server spring.dubbo.registry.address=zookeeper://192.168.1.171:2181 #spring.dubbo.registry.address=zookeeper://192.168.1.171:2181?backup=192.168.1.172:2181,192.168.1.173:2181 spring.dubbo.server=true spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=20880 spring.dubbo.scan=com.exam.dubbo.service.impl
servcie接口和实现类
import com.exam.common.entity.User; public interface UserDubboService { public boolean saveUser(User user); }
注意实现类注入的servcie 注解,是阿里巴巴包下的注解
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import com.alibaba.dubbo.config.annotation.Service; import com.exam.common.entity.User; import com.exam.dubbo.dao.UserDao; import com.exam.dubbo.service.UserDubboService; @Service(interfaceClass=UserDubboService.class) @Component public class UserDubboServiceImpl implements UserDubboService { @Autowired private UserDao userDao; @Override @Transactional public boolean saveUser(User user) { return userDao.save(user); } }
三、portal消费者
项目结构
主要maven依赖
<dependency> <groupId>com.alibaba.spring.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> </dependency>
启动类
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration; @SpringBootApplication @EnableDubboConfiguration public class PortalApp extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure( SpringApplicationBuilder application) { return application.sources(PortalApp.class); } public static void main(String[] args) { SpringApplication.run(PortalApp.class, args); } }
配置文件
#dubbo consumer spring.dubbo.application.name=exam-portal-consumer spring.dubbo.registry.address=zookeeper://192.168.1.171:2181 spring.dubbo.protocol.port=20800 spring.dubbo.protocol.name=dubbo spring.dubbo.scan=com.exam.dubbo.service.impl
controller
@Autowired private UserService userService; @RequestMapping("saveUser") public String saveUser(){ User user = new User(); user.setName("李四"); user.setPhone("123456"); userService.saveUser(user); return "success"; }
service和servcie的实现
import com.exam.common.entity.User; public interface UserService { public boolean saveUser(User user); }
注意此处调用dubbo服务,需要使用@Reference
import org.springframework.stereotype.Service; import com.alibaba.dubbo.config.annotation.Reference; import com.exam.common.entity.User; import com.exam.dubbo.service.UserDubboService; import com.exam.portal.service.UserService; @Service public class UserServiceImpl implements UserService { @Reference private UserDubboService userDubboService; @Override public boolean saveUser(User user) { return userDubboService.saveUser(user); } }
然后启动dubbo服务,再启动portal消费者服务。可以在dubbo的控制台看到,服务的提供者,和消费者都已经启动。
访问控制器,查看数据库中记录,发现已经执行完毕
最后附上案例代码
相关推荐
本项目"springBoot+dubbo+zookeeper分布式微服务"充分利用了这三个组件的优势,构建了一个高效、可扩展且易于维护的服务网络。以下是对这些技术及其整合应用的详细说明: **SpringBoot** SpringBoot是Spring框架的...
本文将深入探讨如何将SpringBoot 2.4.2与Dubbo 2.7.8以及Zookeeper 3.4.14整合,帮助初学者快速入门。 首先,SpringBoot是由Pivotal团队开发的一个框架,它简化了Spring应用的初始搭建和配置过程。通过内置的Tomcat...
在现代企业级应用开发中,SpringBoot...总之,SpringBoot整合Dubbo和Zookeeper是一个强大的组合,它提供了高效的服务治理和微服务间的通信能力。通过全注解的方式,我们可以快速构建起一个健壮且易于维护的分布式系统。
在SpringBoot中整合Dubbo,可以让服务之间实现高效且透明的通信。通过定义接口并实现远程调用,服务提供者可以在后台运行,而服务消费者可以通过简单的API调用来获取服务。 3. Zookeeper: Apache ZooKeeper是一个...
该资源包含springboot整合dubbo的一个小demo,和zookeeper的window版本。博客链接为:https://blog.csdn.net/dayonglove2018/article/details/109156635
在SpringBoot中整合Dubbo,我们通常会引入Dubbo的Spring Boot Starter,这样可以利用SpringBoot的启动方式来管理Dubbo的服务提供者和消费者。配置主要涉及dubbo.application.name(应用名)、dubbo.registry.address...
在本项目中,我们主要探讨的是如何将SpringBoot与Dubbo服务框架进行整合,并通过YAML文件进行配置,同时利用Zookeeper集群作为注册中心。这是一个典型的微服务架构实践,让我们详细了解一下涉及的关键技术和实现步骤...
SpringBoot整合Dubbo项目是一个将流行的微服务框架Dubbo与SpringBoot结合的示例工程,旨在简化服务的开发和部署过程。SpringBoot以其简洁的配置和自动配置特性,极大地提升了开发效率,而Dubbo作为阿里巴巴开源的...
本项目是集成dubbo和zookeeper的一个练习项目,基于注解的配置形式,没有xml文件 ## 环境 #### 操作系统:ubuntu 16.04 LTS #### 开发工具:Idea ## 搭建过程 ### 一、安装zookeeper #### 1、下载zookeeper源码包 >...
整合SpringBoot、Dubbo和Zookeeper能帮助我们构建出高可用、可扩展的分布式系统,实现服务的灵活管理和高效调用。同时,通过Zookeeper的协调,可以实现服务的动态发现和负载均衡,进一步提高系统的稳定性和可靠性。...
"SpringBoot整合Dubbo和Zookeeper升级版"的主题,意味着我们将探讨如何在一个更新的环境中,利用这些技术构建高效、可扩展的服务。 首先,SpringBoot是一个基于Spring框架的快速开发工具,它简化了配置并提供了自动...
综上所述,"springboot整合dubbo和zookeeper的demo"项目是一个典型的微服务实践,展示了如何在SpringBoot环境中利用Dubbo实现服务间的通信,以及如何借助Zookeeper进行服务注册与发现。开发者可以通过这个项目深入...
《SpringBoot整合Dubbo实战详解》 在现代的微服务架构中,SpringBoot与Dubbo的结合使用成为了许多开发者的首选。本项目"springboot-dubbo-demo.zip"提供了一个简单的示例,帮助开发者理解如何在SpringBoot环境中...
本项目"Springboot整合Dubbo/ZooKeeper_demo"将展示如何在Spring Boot应用中集成Dubbo和ZooKeeper,实现服务的提供者和服务消费者之间的通信。 首先,Spring Boot是基于Spring框架的快速开发工具,它通过自动配置、...
SpringBoot整合Dubbo zookeeper过程解析 本文详细介绍了SpringBoot整合Dubbo zookeeper的过程解析,通过示例代码对大家的学习或者工作具有一定的参考学习价值。下面是对标题、描述、标签和部分内容的详细解释: ...
《SpringBoot整合Dubbo与Zookeeper的实战解析》 在当今的微服务架构中,SpringBoot因其简洁的配置和快速的开发效率而受到广大开发者喜爱。同时,Dubbo作为一款高性能的服务治理框架,广泛应用于分布式系统中。而...
springboot整合dubbo、zookeeper_,_基于xml文件方式实现生产者-消费者模型_springboot-dubbo-xml
在SpringBoot中整合Dubbo,我们可以利用SpringBoot的自动配置能力,将Dubbo的服务提供者和服务消费者集成到SpringBoot的环境中,使得两者可以无缝衔接。 1. **引入依赖**:在SpringBoot项目中,我们需要添加Dubbo的...
在本项目中,"tesstDubbo.rar" 是一个包含基于SpringBoot和Dubbo整合的示例应用。这个压缩包提供了实现SpringBoot与Dubbo集成的详细步骤和代码实例,帮助开发者了解如何在SpringBoot应用中使用Dubbo进行服务治理。 ...