`

springboot整合dubbo,zookeeper

 
阅读更多

 

一、项目结构



 此处创建了一个父子项目,其中 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的控制台看到,服务的提供者,和消费者都已经启动。



 

访问控制器,查看数据库中记录,发现已经执行完毕



 

最后附上案例代码

 

 

  • 大小: 4.4 KB
  • 大小: 23.6 KB
  • 大小: 22.3 KB
  • 大小: 17.4 KB
  • 大小: 1.7 KB
分享到:
评论

相关推荐

    springBoot+dubbo+zookeeper分布式微服务

    本项目"springBoot+dubbo+zookeeper分布式微服务"充分利用了这三个组件的优势,构建了一个高效、可扩展且易于维护的服务网络。以下是对这些技术及其整合应用的详细说明: **SpringBoot** SpringBoot是Spring框架的...

    SpringBoot整合dubbo2.7.8+zookeeper3.4.14

    本文将深入探讨如何将SpringBoot 2.4.2与Dubbo 2.7.8以及Zookeeper 3.4.14整合,帮助初学者快速入门。 首先,SpringBoot是由Pivotal团队开发的一个框架,它简化了Spring应用的初始搭建和配置过程。通过内置的Tomcat...

    SpringBoot整合Dubbo、Zookeeper

    在现代企业级应用开发中,SpringBoot...总之,SpringBoot整合Dubbo和Zookeeper是一个强大的组合,它提供了高效的服务治理和微服务间的通信能力。通过全注解的方式,我们可以快速构建起一个健壮且易于维护的分布式系统。

    springboot整合dubbo+zookeeper案例

    在SpringBoot中整合Dubbo,可以让服务之间实现高效且透明的通信。通过定义接口并实现远程调用,服务提供者可以在后台运行,而服务消费者可以通过简单的API调用来获取服务。 3. Zookeeper: Apache ZooKeeper是一个...

    springboot整合dubbo+zookeeper(window版)demo

    该资源包含springboot整合dubbo的一个小demo,和zookeeper的window版本。博客链接为:https://blog.csdn.net/dayonglove2018/article/details/109156635

    springboot+dubbo+zookeeper整合

    在SpringBoot中整合Dubbo,我们通常会引入Dubbo的Spring Boot Starter,这样可以利用SpringBoot的启动方式来管理Dubbo的服务提供者和消费者。配置主要涉及dubbo.application.name(应用名)、dubbo.registry.address...

    SpringBoot整合dubbo的demo,基于yml文件和zookeeper集群

    在本项目中,我们主要探讨的是如何将SpringBoot与Dubbo服务框架进行整合,并通过YAML文件进行配置,同时利用Zookeeper集群作为注册中心。这是一个典型的微服务架构实践,让我们详细了解一下涉及的关键技术和实现步骤...

    SpringBoot整合Dubbo项目

    SpringBoot整合Dubbo项目是一个将流行的微服务框架Dubbo与SpringBoot结合的示例工程,旨在简化服务的开发和部署过程。SpringBoot以其简洁的配置和自动配置特性,极大地提升了开发效率,而Dubbo作为阿里巴巴开源的...

    springboot集成dubbo、zookeeper,基于注解形式+源代码+文档说明

    本项目是集成dubbo和zookeeper的一个练习项目,基于注解的配置形式,没有xml文件 ## 环境 #### 操作系统:ubuntu 16.04 LTS #### 开发工具:Idea ## 搭建过程 ### 一、安装zookeeper #### 1、下载zookeeper源码包 &gt;...

    springboot整合dubbo和zookeeper所需工具

    整合SpringBoot、Dubbo和Zookeeper能帮助我们构建出高可用、可扩展的分布式系统,实现服务的灵活管理和高效调用。同时,通过Zookeeper的协调,可以实现服务的动态发现和负载均衡,进一步提高系统的稳定性和可靠性。...

    SpringBoot整合Dubbo和Zookeeper升级版

    "SpringBoot整合Dubbo和Zookeeper升级版"的主题,意味着我们将探讨如何在一个更新的环境中,利用这些技术构建高效、可扩展的服务。 首先,SpringBoot是一个基于Spring框架的快速开发工具,它简化了配置并提供了自动...

    springboot整合dubbo和zookeeper的demo

    综上所述,"springboot整合dubbo和zookeeper的demo"项目是一个典型的微服务实践,展示了如何在SpringBoot环境中利用Dubbo实现服务间的通信,以及如何借助Zookeeper进行服务注册与发现。开发者可以通过这个项目深入...

    springboot-dubbo-demo.zip

    《SpringBoot整合Dubbo实战详解》 在现代的微服务架构中,SpringBoot与Dubbo的结合使用成为了许多开发者的首选。本项目"springboot-dubbo-demo.zip"提供了一个简单的示例,帮助开发者理解如何在SpringBoot环境中...

    Springboot整合Dubbo/ZooKeeper_demo

    本项目"Springboot整合Dubbo/ZooKeeper_demo"将展示如何在Spring Boot应用中集成Dubbo和ZooKeeper,实现服务的提供者和服务消费者之间的通信。 首先,Spring Boot是基于Spring框架的快速开发工具,它通过自动配置、...

    SpringBoot整合Dubbo zookeeper过程解析

    SpringBoot整合Dubbo zookeeper过程解析 本文详细介绍了SpringBoot整合Dubbo zookeeper的过程解析,通过示例代码对大家的学习或者工作具有一定的参考学习价值。下面是对标题、描述、标签和部分内容的详细解释: ...

    springboot-dubbo-zookeeper完整示例

    《SpringBoot整合Dubbo与Zookeeper的实战解析》 在当今的微服务架构中,SpringBoot因其简洁的配置和快速的开发效率而受到广大开发者喜爱。同时,Dubbo作为一款高性能的服务治理框架,广泛应用于分布式系统中。而...

    springboot整合dubbo、zookeeper_,_基于xml文件方式实现生产者-消费者模型_s

    springboot整合dubbo、zookeeper_,_基于xml文件方式实现生产者-消费者模型_springboot-dubbo-xml

    springboot-dubbo整合框架

    在SpringBoot中整合Dubbo,我们可以利用SpringBoot的自动配置能力,将Dubbo的服务提供者和服务消费者集成到SpringBoot的环境中,使得两者可以无缝衔接。 1. **引入依赖**:在SpringBoot项目中,我们需要添加Dubbo的...

    tesstDubbo.rar springboot+dubbo springboot整合dubbo

    在本项目中,"tesstDubbo.rar" 是一个包含基于SpringBoot和Dubbo整合的示例应用。这个压缩包提供了实现SpringBoot与Dubbo集成的详细步骤和代码实例,帮助开发者了解如何在SpringBoot应用中使用Dubbo进行服务治理。 ...

Global site tag (gtag.js) - Google Analytics