SpringCloud(一)===概念和如何学习

微服务化的核心:将传统的一站式应用,根据业务拆分成一个一个的服务,彻底的去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事情,,从技术角度看就是一种小而独立的处理过程,类似进程的概念,能够自行独立启动和销毁,拥有自己的数据库。

1、微服务 和 微服务架构

微服务:强调的是服务的大小。

微服务架构:将单一的应用程序划分成一组小的服务

微服务优缺点

优点:

  • 单一职责原则
  • 每个服务足够内聚,足够小,代码容易理解
  • 开发简单,开发效率提高。一个服务可能就是专一干一件事;
  • 能够被小图案都单独开发,2-5人
  • 松耦合
  • 可以使用不同 的语言
  • 易于第三方集成
  • 微服务只是业务逻辑代码,不会和HTML CSS 或其他界面混合
  • 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库

缺点:

  • 开发人员要处理分布式系统的复杂性
  • 多服务运维难度,随着服务的增加,运维的压力也增大
  • 系统部署依赖
  • 数据一致性
  • 系统集成测试
  • 性能监控

微服务技术栈

技术栈
在这里插入图片描述

为什么选择SpringCloub作为微服务架构

  1. 依据
  • 整体解决方案和框架的成熟度
  • 社区热度
  • 可维护性
  • 学习曲线
  1. 当前各大IT公司的微服务架构有哪些
  • 阿里:dubbo+HFS
  • 京东:JSF(京师傅)
  • 新浪:Mostan
  • 当当网:Dubbox

在这里插入图片描述

SpringCloub 是什么?

是分布式微服务架构下的一站式解决方案。是各个微服务架构落地技术的集合,俗称微服务全家桶

微服务架构的核心问题:

  • 问题1:这么多服务器,客户端该怎么访问?
  • 问题2:这么多服务器,服务间如何通信?(服务器之间)rpc\doubbo
  • 问题3:这么多服务器,如何治理?
  • 问题4:服务器挂了怎么办?

因为上述问题,所以有了springcloub ,也就有了基于springcloub生态的一系列解决方案,比较好的有:
基于springcloub的解决方案:
spring cloub netflix :一站式解决方案
apache dubbo zookeeper:半自动,需要
SpringCloub Alibaba :最新的一站式解决方案

springcloub 是 生态 不是技术!这个生态,主要是来解决微服务架构的核心问题,也就有了一系列解决方案

解决方案

Spring Cloub NetFlix 一站式解决方案

解决问题1:这么多服务器,客户端该怎么访问?
客户端之间的通信就是用了api网关,,使用的是zuul组件,在代码中就两个注解
api网关:zuul组件
解决问题2:这么多服务器,服务间如何通信?
使用的是自己的通信Feign ,Feign是基于HttpClinet 也就是Http的通信 .不仅可以做通信,还可以做一些简单的负载均衡。Http的 通信方式是同步,阻塞的;doubbo是rpc通信:是异步、非阻塞的
解决问题3、4:
服务注册发现:Euraka
熔断机制:Hystrix

Apache Dubbo Zookeeper 半自动,需要整合别人的

半自动,没有api网关,所以需要找第三方组件,或者自己实现
Dubbo:是一个高性能的基于rpc的通信框架,比feign好很多,专业的事情交给专业的人干

服务注册发现 Zookeeper;
熔断机制:没有;借助Hystrix

dubbo这个方案并不完善,
他并不是想跟springcloub竞争,他只是想专一的做rpc通信框架。在rpc中确实很牛逼

Spring Cloub Alibaba 一站式解决方案!更简单

将Spring Cloub NetFlix更加简化。
之前Spring Cloub NetFlix停更了五年,就落后了,所以有了后来的Spring Cloub Alibaba

万变不离其宗:

  1. 网关API ;解决路由问题
  2. HTTP,RPC;解决服务通信问题
  3. 注册和发现;解决高可用问题
  4. 熔断机制;解决服务降级问题

基于这是个问题,开发出一套解决方案,并把他们运用到很多公司中,那么就可以成为一套新的解决方案
问什么会衍生出这些问题,就是网络不可靠
新概念:服务网格:Server Mesh istio

SpringCloub 和Dubbo的区别

在这里插入图片描述
最大的区别:SpringCloub抛弃了Dubbo的RPC通信,采用的是基于http的REST方式
REST比RPC更灵活 ,服务提供方和调用方的依赖只依赖一纸契约,不存在代码级别的强依赖
品牌机和组装机的区别:
SpringCloub能够和其他Spring项目完美融合

SpringCloub和SpringBoot关系

SpringBoot:专注单个个体微服务。专注于快速、方便开发单个个体微服务。可以独立使用

SpringCloud:关注全局的微服务协调治理框架,他将Spring Boot开发的一个个单体微服务整合并管理起来。为各个微服务之间提供:配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话等等集成服务。依赖SpringBoot

扩展

Dubbo和SpringCloud 技术选型

1、分布式+服务治理Dubbo
目前成熟的熟练王架构:应用服务化拆分+消息中间件

架构图 (一个服务应该是什么样子?)

在这里插入图片描述

CDN:用于加速器;加速了网站的访问
LVS: 用于负债均衡:多个
Nginx:做负载均衡:多个
集群:提供服务;服务器:tomcat 、tomcat会跟文件打交道,所以有分布式文件系统xxx DFS
tomcat获取 注册中心
服务提供者去注册中心注册
消息中间件MQ: 队列、同步
缓存处理:redis

数据库横向分离 读
纵向分离是 写

在这里插入图片描述

GA:通用稳定版本
SNAPSHOT:快照版本

SpringCloub 是一个由众多独立子项目组成的大型综合项目,每个项目有不同的发行节奏,都维护着自己的发行版本号,SpringCloud 通过一个资源清单BOM(Bill of Materials) 来管理每个版本的子项目清单,为了避免与子项目的发布号混淆,所以没有采用版本号的方式,而是通过命名的方式。
版本名称的命名方式采用了伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序,Release版本:
Angel(天使),
Brixton(布里克斯顿),然后
Camden(卡姆登),
Dalston(多尔斯顿),
Edgware(埃奇韦尔),
Finchley(芬奇利),
Greewich(格林威治)

中文API文档:
https://www.springcloud.cc/
https://www.springcloud.cc/spring-cloud-dalston.html
SpringCloud中国社区:
http://springcloud.cn/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值