SpringCloud 入门理论知识

SpringCloud

入门问题

  1. 微服务概念
  2. 微服务之间如何通信
  3. SpringCloud与Dubbo的区别
  4. SpringBoot与SpringCloud的关系
  5. 服务熔断和服务降级概念
  6. 微服务的优缺点
  7. 微服务技术栈
  8. eureka和zookeeper的区别

微服务概述

微服务起源:微服务

微服务将单一应用程序划分为一组小服务,每个服务独立在及自己的进程中,通过Restful方式互相沟通、调用。每个服务提供单个业务功能,去耦合。


微服务与微服务架构

微服务:指系统中的一个服务应用。

微服务架构:架构风格,即包括微服务及微服务之间的通信。


微服务的优缺点

优点

  1. 服务高内聚,完成一个细微化的业务或功能
  2. 单个服务的开发更便捷,开发简单、开发效率高
  3. 微服务可由独立团队开发
  4. 松耦合,开发及部署都独立
  5. 可以由不同语言开发,易于集成
  6. 前后端分离、灵活分配数据库

缺点

  1. 分布式系统的复杂性
  2. 运维难度增加,系统部署依赖问题
  3. 服务间通信额外花费
  4. 数据一致性、系统集成测试难度
  5. 性能监控难

微服务技术栈

微服务 技术
开发 Spring、SpringBoot、SpringMVC
配置管理 Archaius(Netflix)、Diamond(Ali)
注册与实现 Eureka、Consul、Zookeeper
调用 Rest、RPC、gRPC
熔断器 Hystrix、Envoy
负载均衡 Ribbon、Nginx
接口调用工具 Feign
消息队列 Kaflka、RabbitMQ、ActiveMQ
配置中心管理 SpringCloudConfig、Chef
路由(API网关) Zuul
监控 Zabbix、Nagios、Metrics、Spectator
全链路追踪 ZipKin、Brave、Dapper
部署 Docker、OpenStack、Kubernates
数据流操作 SpringCloud Steam(Redis、Rabbit...)
事件消息总线 Spring Cloud Bus

SpringCloud 架构

主流选用

厂商 技术选用
阿里 Dubbo/HSF
京东 JSF
新浪微博 Motan
当当 Dubbo

框架对比

功能 Spring Cloud Motan gRPC Thrift Dubbo/DubboX
定位 完整微服务 RPC+ZK/Consul RPC RPC RPC
Rest 支持
RPC
多语言
注册/发现 (Eurka) Zookeeper/Consul
负载均衡 Zuul+Ribbon
配置服务 Archaius/sp config servier
调用链监控 Zuul API
高可用/容错 Hystrix Ribbon
其他

SpringCloud简介

SpringCloud微服务架构,涵盖了服务注册/发现、配置中心、全链路监控、服务网管、负载均衡、熔断器等,使用SpringBooot简化开发,提供快速构建分布式系统的工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策精选、分布式会话等,都可以使用SpringBoot开发进行快速启动和部署。

SpringCloud:一站式分布式微服务解决方案


Dubbo 对比 SpringCloud

对比 Dubbo SpringCloud
注册中心 Zookeeper Eureka
调用方式 RPC REST API
监控 Dubbo-minitor spring boot admin
断路器 不完善 SC Netfilx Hystrix
网管 SC Netfilx Zull
分布式配置 SC config
跟踪 SC Sleuth
消息总线 SC Bus
数据流 SC Stream
批量任务 SC Task
...

文档

官方文档 API 文档 中国社区 Spring中文网



SpringCloud 入门理论知识

原文地址:https://www.cnblogs.com/Wu-Zang/p/9608929.html

时间: 2024-11-08 05:48:57

SpringCloud 入门理论知识的相关文章

数据库入门理论知识介绍

数据库入门理论知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 1.目前90%以上的公司面临的运维的瓶颈都在后端 最常见的2大瓶颈就是: 1>.数据库(极难扩展): 2>.存储: 所以说做互联网的运维工程师要是把以上两点问题解决就可以轻松的搞定整个架构 2.什么是数据库: 查百度上有长篇大论了一下数据库特点,我们可以简单的理解: 数据库就是一个存放数据的仓库,这个仓库按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数

无人机开发之三:飞行器入门理论知识

3. 飞行器入门理论知识 3.1. 名词解释: 惯性测量单元 IMU (InertialMeasurementUnit) 姿态航向参考系统 AHRS (Attitudeand Heading Reference System) 地磁角速度重力 MARG (Magnetic,Angular Rate, and Gravity) 微机电系统 MEMS (MicroElectrical Mechanical Systems) 自由度维数 DOF (Dimension OfFreedom) 无人驾驶飞行

精通并发与Netty入门一:Netty理论知识介绍

Netty是目前无论是国内还是国外各大互联网公司必备的一个网络应用框架.Netty本身既然是网络框架,处理的基本都是与网络相关的这样的一些作用.由于Netty本身在设计上的一些非常巧妙的方式,是对于NIO的一个很好的实现.Netty在各种应用场景下都会得到很广泛的应用.无论是传统的基于http的这种短连接方式还是基于底层Socket的这样的访问方式.另外还支持H5中规范中新增加的一个特别重要的标准,就是关于长连接的websocket这样一种新的规范.Netty对于其提供了非常好的支撑.那么Net

Winsock网络编程笔记(4)----基本的理论知识

前面的笔记记录了Winsock的入门编程,领略了Winsock编程的乐趣..但这并不能算是掌握了Winsock,加深理论知识的理解才会让后续学习更加得心应手..因此,这篇笔记将记录一些有关Winsock的基本理论知识,由于是一篇笔记,鉴于看书速度有限,主要内容会慢慢地填入..错误在所难免的,希望看客更正..(*^__^*) 嘻嘻…… Winsock网络编程笔记(4)----基本的理论知识,布布扣,bubuko.com

OpenStack入门——理论篇(二):OpenStack的节点类型和架构(含登录的仪表板界面示例)

OpenStack入门--理论篇(二):OpenStack的节点类型和架构(含仪表板界面示例) 前言 ? 看了网上的一些博客对OpenStack架构的描述,大部分都是将官网的架构图截取下来(还是纯英文文字描述的图片)或者直接将描述翻译为中文直接复制粘贴过来了.如果对于初学者而言,这或许是有字天书了.所以笔者先前的一篇文章是介绍了关于OpenStack的基础知识和核心的组件服务.而本文先从OpenStack部署的节点结构描述,再来对其整体架构进行阐述. 一.OpenStack节点类型 ? 在介绍O

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

TestNG学习-001-基础理论知识

此 文主要讲述用 TestNG 的基础理论知识,TestNG 的特定,编写测试过程三步骤,与 JUnit4+ 的差异,以此使亲对 TestNG 测试框架能够有一个简单的认知. 希望能对初学 TestNG 测试框架的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激! TestNG是什么?TestNG是一个灵感来自于 JUnit 和 NUnit 的一个设计用来简化广泛的测试需求的开源自动化测试框架,其引入了一些新的功能,使其功能更强大,而且易于使用,但是 TestNG 不是 JUnit 的扩展.它

堆和栈的理论知识

一.预备知识-程序的内存分配       1. 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)-由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2.堆区(heap)-一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收.注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵.3.全局区(静态区)(static)-全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初

JDBC编程理论知识(1)

1.SUN公司为统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC 2.JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成. 组成JDBC的2个包: (1)java.sql.*; (2)javax.sql.*; 3.JDBC在程序中的位置: 4.JDBC的六个固定步骤 1,注册数据库驱动[利用反射] 2,取得数据库连接对象Connection 3,创建SQL对象 4,执行SQL命令,并返回结果集 5,处理结果集 6,