本篇文章主要讲述项目搭建过程,不会涉及过多的基础知识,本项目是作者对前段时间学习的一个总结,主要使用到技术有:maven父子工程、springboot、mybatis、dubbo、zookeeper、使用aop记录每个service服务方法的入参、方法名称、调用时长、出参到日志文件等,绝对是一个入门的好案列。
1.dubbo架构
节点角色说明
Provider |
暴露服务的服务提供方 |
Consumer |
调用远程服务的服务消费方 |
Registry |
服务注册与发现的注册中心 |
Monitor |
统计服务的调用次数和调用时间的监控中心 |
Container |
服务运行容器 |
调用关系说明
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
健壮性
- 监控中心宕掉不影响使用,只是丢失部分采样数据
- 数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务
- 注册中心对等集群,任意一台宕掉后,将自动切换到另一台
- 注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯
- 服务提供者无状态,任意一台宕掉后,不影响使用
- 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复
更多的dubbo使用说明,请参见dubbo官方文档说明
http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html
2.zookeeper安装 - windows安装
zookeeper下载地址:https://pan.baidu.com/s/1a5w9R6X-seoYCBbyxeA5vA 提取码: 64i3
1.把下载文件解压到D盘(其他盘也可以,作者的是解压到D盘)
2.打开zookeeper-3.4.5目录
3.在该目录里新建两个文件夹:data、log
4.点击conf目录,复制zoo_sample.cfg文件到该目录,并修改复制后的文件名字为:zoo.cfg
5、打开zoo.cfg文件,把步骤3创建的data、log路径赋值给dataDir和dataDirLog,如下所示(这是作者创建的额data、log目录):
dataDir=D:\\java\\zookeeper-3.4.5\\zookeeper-3.4.5\\data
dataDirLog=D:\\java\\zookeeper-3.4.5\\zookeeper-3.4.5\\log
6、找到bin目录,双击zkServer.cmd,即可启动zookeeper服务,启动成功如下如所示
3.项目框架
项目采用maven父子工程的模式进行管理,如下图所示
-
dubbo-demo-master为父工程,管理其他子工程。
-
dubbo-demo-model为实体层,主要用来定义实体、DTO等数据对象
-
dubbo-demo-api为接口层,单独抽出来一层,可以提供其他项目引用,该层依赖dubbo-demo-model
-
dubbo-demo-service为服务层,实现dubbo-demo-api里定义的接口,该层依赖dubbo-demo-api、dubbo-demo-model,zookeeper
-
dubbo-demo-web为UI层,主要定义各种Controller,该层依赖dubbo-demo-api、dubbo-demo-model、zookeeper
下一篇文章会介绍api、service层的代码实现,如何通过dubbo把服务发布出去。
需要源代码的请关注微信公众账号
相关推荐
本项目——"spring+spring mvc+mybatis+mysql+dubbo整合开发任务流程后台管理系统"提供了一个完整的解决方案,涵盖了前端到后端的关键技术栈。下面我们将深入探讨这些技术及其在系统中的作用。 **Spring框架**:...
Spring Framework、SpringMVC、SpringBoot、MyBatis、Dubbo、Redis、Elasticsearch、Spring Security、Thymeleaf、Mysql、Websocket ### 前端技术 Bootstrap、jQuery 1. 分布式:为了解藕和提高扩展性,将系统...
1. **创建SpringBoot项目**:首先,使用Spring Initializr创建一个SpringBoot项目,添加`spring-boot-starter-web`、`spring-boot-starter-data-jpa`和`spring-boot-starter-aop`依赖。 2. **配置MySQL**:在`...
本项目"spring+spring mvc+mybatis+mysql+dubbo整合开发任务流程后台管理系统"是基于一系列主流技术栈实现的,旨在提供一个功能完备、稳定可靠的后台管理系统。下面我们将详细探讨这些技术及其在项目中的应用。 ...
本系统采用了业界广泛使用的四大核心技术——Spring MVC、MyBatis、Shiro和Dubbo,构建了一个强大的分布式后台管理框架。下面将对这四大技术进行详细阐述,并探讨它们如何协同工作,以实现高效、安全的后台管理。 ...
本项目以Maven为构建工具,融合了Spring、MyBatis、ZooKeeper和Dubbo等核心组件,构建了一个高效、可扩展的分布式系统。下面我们将深入探讨这个系统的各个组成部分及其工作原理。 首先,Spring作为Java领域中最流行...
《Spring+SpringMvc+Mybatis+Dubbo整合实践详解》 在现代企业级应用开发中,Spring、SpringMvc、Mybatis和Dubbo是常见的技术栈,它们各自在不同的层面上发挥着关键作用。本篇文章将深入探讨这四大框架的集成与应用...
在SpringBoot项目中,整合Mybatis-Plus并实现多数据源的动态切换,同时支持分页查询是一项常见的需求。以下将详细阐述这个过程中的关键步骤和技术要点。 首先,我们需要引入必要的Maven依赖。这里提到了四个关键...
本节主要介绍如何基于SSM(Spring、SpringMVC、MyBatis)框架搭建一个简单的Web应用程序,并实现一个HelloWorld示例。 **1. 导入必要的依赖** - **SpringMVC**: MVC(Model-View-Controller)设计模式的实现之一,...
【标题】"销售系统项目,spring+spring mvc+mybatis+dubbo+kafka+redis+maven.zip" 提供了一个综合的IT解决方案,涉及到的技术栈主要包括Spring、Spring MVC、MyBatis、Dubbo、Kafka、Redis以及Maven。这个项目采用...
1. **Spring**:这是一个全面的Java企业级应用开发框架,提供依赖注入(DI)和面向切面编程(AOP)等功能,使得代码更加模块化和易于管理。在本项目中,Spring作为基础架构层,负责管理对象和服务。 2. **SpringMVC...
Spring MVC + Dubbo + MyBatis + ZooKeeper 这是一个经典的微服务架构组合,用于构建高效、可扩展的分布式系统。下面将详细解释这四个组件及其在实际项目中的作用。 **Spring MVC** Spring MVC 是 Spring 框架的一...
本项目"spring+dubbo+mybatis+springMVC"就是一个典型的例子,它整合了四个非常重要的Java技术栈组件,旨在为开发者提供一套完整的后端服务开发解决方案。 首先,Spring框架是Java企业级应用开发的基石,它提供了...
【标题】"ssm+guns+springboot+dubbo框架整合,影院项目"涉及了四个主要的Java开发框架:Spring、SpringMVC、MyBatis(SSM)以及Dubbo。这是一个实际的影院项目的实现,旨在展示如何将这些框架有效地集成到一个大型...
在本项目实例中,我们探讨的是如何整合SpringBoot、Dubbo、Redis以及RabbitMQ来构建一个高效、可扩展的Java应用程序。以下是对这些技术及其整合的详细解释: 1. **SpringBoot**: SpringBoot是由Pivotal团队提供的...
"spring、spring mvc、mybatis、mysql、dubbo整合开发任务流程后台管理系统"是一个典型的Java企业级应用架构,它涵盖了Web层、持久层、服务层以及分布式服务调用等多个层面的技术。以下是对这些技术组件的详细介绍:...
【标题】"spring,mybatis,hibernate,activemq,redis,dubbo的集成" 这个标题提及的是一个综合性的Java开发项目,它整合了多个流行的技术框架和中间件,旨在提供一个全面的后端服务解决方案。让我们逐一探讨这些...
1. **Spring**:Spring 是一个全面的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,简化了Java应用的开发和维护。在本项目中,Spring作为基础框架,负责管理各个组件的生命周期和...
本项目结合了Spring、SpringMVC、MyBatis、Dubbo、Redis和Netty等技术,构建了一个完整的分布式服务系统。 1. **Spring框架**:Spring是Java企业级应用的核心框架,提供了依赖注入(DI)和面向切面编程(AOP)等...