---恢复内容开始---

分布式、Dubbo/Zookeeper、Spring Boot/Cloud

一、分布式应用

在分布式系统中,国内常用zookeeper+dubbo组合,

而Spring Boot推荐使用 全栈的Spring,Spring Boot+Spring Cloud。

分布式系统:

  1. 单一应用架构
  2. 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成
  3. 本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。
  4. 垂直应用架构
  5. 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干
  6. 的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。
  7. 分布式服务架构
  8. 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服
  9. 务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,
  10. 用于提高业务复用及整合的分布式服务框架(RPC)是关键。
  11. 流动计算架构
  12. 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个
  13. 调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利
  14. 用率的资源调度和治理中心(SOA)是关键。

二、Zookeeper和Dubbo

  1. ZooKeeper
  2. ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务。它是
  3. 一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、
  4. 域名服务、分布式同步、组服务等。
  5. Dubbo
  6. DubboAlibaba开源的分布式服务框架,它最大的特点是按照分层的方
  7. 式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦
  8. 合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要
  9. 么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象
  10. 出服务提供方(Provider)和服务消费方(Consumer)两个角色。

1、安装zookeeper作为注册中心

具体参考:https://hub.docker.com/_/zookeeper

• 2、编写服务提供者

1)引入dubbo和zkclient相关依赖

  1. <dependency>
  2. <groupId>com.alibaba.boot</groupId>
  3. <artifactId>dubbo-spring-boot-starter</artifactId>
  4. <version>0.1.0</version>
  5. </dependency>
  6.  
  7. <!--zookeeper的客户端工具-->
  8. <!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
  9. <dependency>
  10. <groupId>com.101tec</groupId>
  11. <artifactId>zkclient</artifactId>
  12. <version>0.1.0</version>
  13. </dependency>

2)配置dubbo扫描包和注册中心地址

3)使用service发布服务

注意:Service是dubbo包的

  1. package com.atguigu.ticket.service;
  2.  
  3. import com.alibaba.dubbo.config.annotation.Service;
  4. import org.springframework.stereotype.Component;
  5.  
  6. @Component
  7. @Service// 将服务发布出去
  8. public class TicketServiceImpl implements TicketService {
  9. @Override
  10. public String getTick() {
  11. return "<厉害了,我的国!>";
  12. }
  13. }

• 3、编写服务消费者

1)引入dubbo和zkclient相关依赖

2)注册中心地址

3)引用服务

创建一样的接口

引用(@service是spring包的,引用采用@Reference注解):

• 4、整合dubbo com.alibaba.spring.boot dubbo-spring-boot-starter 2.0.0

三、Spring Boot和Spring Cloud

Spring Cloud

  1. Spring Cloud是一个分布式的整体解决方案。Spring Cloud 为开发者提供了在分布式系统(配
  2. 置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局琐,leader选举,分
  3. 布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务
  4. 或构建应用、同时能够快速和云平台资源进行对接。

• SpringCloud分布式开发五大常用组件

  1. 服务发现——Netflix Eureka
  2. 客服端负载均衡——Netflix Ribbon
  3. 断路器——Netflix Hystrix
  4. 服务网关——Netflix Zuul
  5. 分布式配置——Spring Cloud Config

• Spring Cloud 入门

  1. 1、创建provider
  2. 2、创建consumer
  3. 3、引入Spring Cloud
  4. 4、引入Eureka注册中心
  5. 5、引入Ribbon进行客户端负载均衡

 引入spring cloud

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-eureka-server</artifactId>
  4. </dependency>

  

  1. 引入Eureka注册中心

  1.  
  1. 创建provider

  1.  
  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-eureka</artifactId>
  4. </dependency>

  

  1. 创建consumer:
  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-eureka</artifactId>
  4. </dependency>

  

  1.  

  

 

---恢复内容结束---

Spring Boot与分布式的更多相关文章

  1. spring boot redis分布式锁

    随着现在分布式架构越来越盛行,在很多场景下需要使用到分布式锁.分布式锁的实现有很多种,比如基于数据库. zookeeper 等,本文主要介绍使用 Redis 做分布式锁的方式,并封装成spring b ...

  2. Java 架构师+高并发+性能优化+Spring boot大型分布式项目实战

    视频课程内容包含: 高级 Java 架构师包含:Spring boot.Spring cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.Zer ...

  3. 从0开始用spring boot编写分布式配置中心-peppa

    欢迎大家一起来编写peppa github地址: github 交流群: 目前市面上比较流行的分布式配置中心有disconf.apollo,用起来还是比较方便的,然而由于在权限管理这块做得不够好,导致 ...

  4. spring boot redis分布式锁 (转)

    一. Redis 分布式锁的实现以及存在的问题 锁是针对某个资源,保证其访问的互斥性,在实际使用当中,这个资源一般是一个字符串.使用 Redis 实现锁,主要是将资源放到 Redis 当中,利用其原子 ...

  5. Spring Boot (33) 分布式锁

    上一篇中使用的Guava Cache,如果在集群中就不可以用了,需要借助Redis.Zookeeper之类的中间件实现分布式锁. 导入依赖 在pom.xml中需要添加的依赖包:stater-web.s ...

  6. spring boot 2.x 系列 —— spring boot 实现分布式 session

    文章目录 一.项目结构 二.分布式session的配置 2.1 引入依赖 2.2 Redis配置 2.3 启动类上添加@EnableRedisHttpSession 注解开启 spring-sessi ...

  7. Spring Boot Quartz 分布式集群任务调度实现

    Spring Boot Quartz 主要内容 Spring Scheduler 框架 Quartz 框架,功能强大,配置灵活 Quartz 集群 mysql 持久化定时任务脚本(tables_mys ...

  8. spring Boot 学习(六、Spring Boot与分布式)

    一.分布式应用在分布式系统中,国内常用zookeeper+dubbo组合,而Spring Boot推荐使用 全栈的Spring,Spring Boot+Spring Cloud 分布式系统: 单一应用 ...

  9. spring boot:使用分布式事务seata(druid 1.1.23 / seata 1.3.0 / mybatis / spring boot 2.3.2)

    一,什么是seata? Seata:Simpe Extensible Autonomous Transcaction Architecture, 是阿里中间件开源的分布式事务解决方案. 前身是阿里的F ...

随机推荐

  1. SpringBoot 2.X集成Hive-jdbc 3.1.1

    最近公司有一个需求,需求的内容是根据用户页面选择的参数条件查询Hive,数量量大致是300万以内,要求3秒响应.使用的其它的技术就不要说了,先说说SpingBoot集成Hive-jdbc吧,网上虽然有 ...

  2. 从壹开始微服务 [ DDD ] 之二 ║ DDD入门 & 项目结构粗搭建

    前言 哈喽大家好,今天是周二,我们的DDD系列文章今天正式开始讲解,我这两天一直在学习,也一直在思考如何才能把这一个系列给合理的传递给大家,并且达到学习的目的,还没有特别好的路线,只是一个大概的模糊的 ...

  3. ZooKeeper 02 - ZooKeeper集群的节点为什么是奇数个

    目录 1 关于节点个数的说明 2 ZooKeeper集群的容错数 3 ZooKeeper集群可用的标准 4 为什么不能是偶数个节点 4.1 防止由脑裂造成的集群不可用 4.2 奇数个节点更省资源 4. ...

  4. JavaScript引擎浅析

    前言 该文章是为大家整理一个关于js的知识网络,重点是知识的罗列及之间的联系,所以实例可能会有所不足,导致可能没有对应知识的人看不懂,希望大家能够结合其他资料来学习这篇文章,并整理出自己的知识体系. ...

  5. centos通过yum安装mysql

    前言 前天按照Oracle上的文档装了一遍mysql,选了最新8.0的版本,后来出现一些问题,网上搜答案,出来的基本还是5.x版本的解决方案,并不适用8.0版本.然后我就去看了一下公司的正式环境买的阿 ...

  6. Springboot 系列(八)动态Banner与图片转字符图案的手动实现

    使用过 Springboot 的对上面这个图案肯定不会陌生,Springboot 启动的同时会打印上面的图案,并带有版本号.查看官方文档可以找到关于 banner 的描述 The banner tha ...

  7. 如何利用U盘重装系统

    第一步,下载系统镜像 推荐在msdn上面下载,因为大多数都是 Microsoft 纯净原版镜像,如果要安装的是纯净版系统请先看第六步,然后才看第二步 第二步,下载U盘PE工具 推荐使用大白菜或者老毛桃 ...

  8. vuex的用法

    https://segmentfault.com/a/1190000015782272

  9. 升级WIN10 (9879)后IE无响应的解决办法

    身为程序猿,当然有了新系统就要尝尝鲜,有WIN8时,哥是朋友圈第一个用的,有WIN8.1时哥也是第一个升级的. 现在WIN10来了,当然也得赶紧尝尝鲜.直接下载了 9879版的预览版本安装. 要说WI ...

  10. phpstorm本地怎么上传到服务器

    连接服务器 菜单栏找到[工具/Tools]->[Deployment/部署]->[Confinguration…/配置…]. 点加号(+),添加一台服务器,填写名称,选择类型为SFTP,点 ...