本篇文章主要讲述项目搭建过程,不会涉及过多的基础知识,本项目是作者对前段时间学习的一个总结,主要使用到技术有: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 Framework、SpringMVC、SpringBoot、MyBatis、Dubbo、Redis、Elasticsearch、Spring Security、Thymeleaf、Mysql、Websocket ### 前端技术 Bootstrap、jQuery 1. 分布式:为了解藕和提高扩展性,将系统...
SpringBoot整合mybatis-plus实现多数据源的动态切换且支持分页查询,案例以postgresql和oracle数据库为数据源,分别使用mybatis-plus分页插件和pagehelper分页插件实现分页查询。
持久层:mybatis持久化,使用MyBatis-Plus优化,减少sql开发量;aop切换数据库实现读写分离。Transtraction注解事务。 MVC: 基于spring mvc注解,Rest风格Controller。Exception统一管理。 缓存和Session:注解redis...
此小demo是springboot集成dubbo,redis,mybatis,logbakc,aspect,等框架,利用Configuration配置,摆脱了xml形式的配置文件,实现springboot微服务,
Tomcat+Mysql+设计模式+并发编程+JVM+Netty开源框架(SSM框架):Spring+SpringMVC+Mybatis微服务架构:Dubbo、SpringBoot、SprinGCloud、Docker分布式:分布式限流+分布式缓存+分布式通讯(限流:Nignx+Zookeeper/...
简单的介绍这个项目是一个大学生信息管理系统,提供用户等级的登录注册数据管理,信息查询,信息修改(管理员权限),简单的数据可视化分析等功能,也有基本的安全性保障SpringBoot + Mybatis分支: : SpringBoot + ...
这个是我平时项目开发搭建的一u个系统架构,采用的是sprimgmvc+redis+mybatis+dubbo,有意向学习的可以拿来做借鉴。redis操作模块封装了一些常用的方法。5个资源分绝对值得你下载!
java筑基(一):Tomcat+Mysql+设计模式 java筑基(二):并发+Netty+JVM Java架构面试专题及架构学习笔记 Dubbo服务框架面试专题及答案整理文档 BAT面试常问80题 23种设计模式知识要点整理 面试必备—API接口安全 ...
微服务项目(SpringBoot+Mybatis+Dubbo+Mysql+Redis+RocketMQ) 数据结构与算法(Leetcode/剑指Offer) 设计模式 常用工具 如果观看不流畅,可以去我的博客浏览面试知识点 Dreamcats的公众号: 常用网站 :一款新闻聚合...
springboot-mybatis-multidatasource:Mybatis多数据源 springboot-redis-cluster:Redis集群 springboot-aop:AOP springboot-dubbo:Dubbo注解方式 springboot-dubbo-two:Dubbo注解方式二 springboot-rocketmq-...
spring boot 实践学习案例,与其它组件结合如 mybatis、jpa、dubbo、redis、mongodb、memcached、kafka、rabbitmq、activemq、elasticsearch、security、shiro等 #### Spring Boot 版本 - 2.0.3.RELEASE #### 模块...
AOP SpringBoot:新一代的javaEE开发标准,自动装配 模块化 all in one 模块化的开发=====>all in one 代码没有变化 微服务的四个核心问题? 1.服务很多,客户端怎么访问? 2.这么多服务?服务之间如何...
AOP SpringBoot:新一代的javaEE开发标准,自动装配 模块化 all in one 模块化的开发=====>all in one 代码没有变化 微服务的四个核心问题? 1.服务很多,客户端怎么访问? 2.这么多服务?服务之间如何...
2、对springboot,spring,mybatis,mybatis plus,mysql,freemarker等java技术有基本应用。 3、可大大提高开发效率,数据表创建完以后,自动生成entity,mapper.xml,dao,service,controller,vo,dto相关代码。 4、本...
spring 实践学习案例,与其它组件结合如 mybatis、jpa、dubbo、redis、mongodb、memcached、kafka、rabbitmq、activemq、shiro等 #### 软件架构 基于Java 1.8 #### Spring 版本 - 5.0.8.RELEASE #### 模块说明 - ...
持久层:mybatis持久化,使用MyBatis-Plus优化,减少sql开发量;aop切换数据库实现读写分离。Transtraction注解事务。 MVC: 基于spring mvc注解,Rest风格Controller。Exception统一管理。 调度:Spr
ElasticSearch(`基本操作和高级查询`)、Async(`异步任务`)、集成Dubbo(`采用官方的starter`)、MongoDB(`文档数据库`)、neo4j(`图数据库`)、docker(`容器化`)、`JPA多数据源`、`Mybatis多数据源`、`代码生成器`、Gray...
spring-dubbo-service微服务一,服务模块1,服务器配置:servlet,侦听器,拦截器,过滤器,aop,定时任务mybatis配置集成,多数据源;级联查询一对一对一对多注解配置及xml配置方式;分页处理:传递Page参数或继承...
本项目默认为单机部署,即只有phone-admin一个war包,若需要使用dubbo发布,需加入dubbo配置文件,并将service作为war包使用,后续会讲到. 本项目架构采用Mybatis+Spring+SpringMVC作为基础框架 使用apache-shiro作为安全...
springboot例子, 包含druid数据源, druid的sql监控, druid过滤, mybatis xml配置, mybatis分页插件, logback日志配置, springboot多环境配置, 发送邮件, AOP拦截, 过滤器 spring拦截器, 全局异常, 统一响应, 自定义...