SpringCloud学习前置知识
SpringCloud
1.从⾯试题开始
什么是微服务
微服务之间是如何独⽴通信的
SpringCloud和Dubbo有哪些区别
SpringBoot和SpringCloud,请谈谈对他们的理解
什么是服务熔断?什么是服务降级
微服务的优缺点分别是什么?说下你在项⽬开发中碰到的坑
你所知道的微服务技术栈有哪些?
Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别
2.微服务概述
微服务是什么?
微服务化的核⼼就是将传统的⼀站式应⽤,根据业务拆分成⼀个⼀个的服务,彻底地去耦合,每⼀个微服务提供单独的业务服务,⼀个服务只做⾃⼰负责的⼀件事情,从技术⾓度看就是⼀种⼩⽽独⽴的处理过程,类似于进程概念,能够⾃动单独启动或者销毁,拥有⾃动独⽴的数据库。
微服务和微服务架构?
微服务
强调的是服务的⼤⼩,他关注的是某⼀个业务点,是具体解决某⼀问题/提供对应服务的⼀个服务应⽤,狭义的讲,可以看成maven⼯程中的⼀个module。
微服务架构
微服务架构是⼀种架构模式,他提倡将单⼀的应⽤程序拆分成⼀组⼩的服务,服务之间相互调协调、相互配合、对外提供最终的价值。每⼀个服务运⾏独⽴的进程中,服务和服务之间通过轻量级的通信进⾏相互调⽤(通常使⽤的是Http协议的RESTful API协议)。每⼀个服务都围绕⾃⼰具体的业务构建,
可以单独的部署到测试或者类⽣产环境等当中,另外,避免统⼀的集中式的服务管理机制、对某⼀个服务来说、可以根据⾃⼰的业务情况选择合适的语⾔和⼯具进⾏构建。
微服务的优点和缺点
优点
每⼀个服务都⾜够内聚、⾜够⼩、代码容易理解
开发简单、开发效率⾼,⼀个微服务只做⼀件事情
微服务能够让⼀个⼩团队单独开发
微服务是松耦合的、⽆论是在开发阶段或是部署阶段都是独⽴的
可以使⽤不同的语⾔
易于和第三⽅集成,持续集成⼯具
可以良好的集成最新技术
微服务只是逻辑代码,不会和HTML和CSS或者其他页⾯混合
都有⾃⼰的存储能⼒,可以有⾃⼰单独的数据库,也可以统⼀的数据库
缺点
运维⼈员要求⽐较⾼
数据⼀致性
开发⼈员需要处理分布式程序的复杂性
系统之间依赖性
系统测试
服务器间通信成本
微服务技术栈有哪些?
微服务条⽬落地实现备注
服务开发Springboot、Spring、SpringMVc
服务配置与管理Netflix公司的Archaius、阿⾥的Diamond
服务的注册和发现Eureka、Consul、Zookeeper等
服务的调⽤Rest、RPC、gRPC
服务熔断器Hystrix、Envoy等
负载均衡Ribbon、Nginx等
服务接⼝调⽤(客户端调⽤服务端的简化⼯具)Feign等
消息队列Kafaka、RabbitMQ、ActiveMQ等
服务配置中⼼管理SpringCloudConfig、chef等
服务路由(API⽹关)Zuul等
服务监控Zabbix、Nagios、Metrics、Spectator等
全链路追踪Zipkin、Brave、Dapper等
springcloud难学吗
服务部署Docker、OpenStack、Kubernetes等
数据量操作开发包SpringCloud Stream(封装与Rdis、Rabbit、Kafaka等收发消息)
事件消息总线SpringCloud Bus
为什么选⽤SpringCloud作为微服务架构?
选型依据
整体解决⽅案和框架成熟度
社区热度
可维护性
学习曲线
当前各⼤互联⽹公司的微服务架构有哪些?
阿⾥的Dubbo/HSF
京东JSF
新浪微博Motan
当当⽹Dubbox
各⼤微服务框架对⽐
功能点/
服务框架
Netflix/Spring cloud Motan gRPC Thrift Dubbo/Dubbox
功能定位完整的微服务框架RPC框架、单整合了ZK或者Consul,实
现集环境的基本服务注册/发现
RPC框
RPC框架服务框架
⽀持Rest是,Ribbon⽀持多种可插拔的序列化选择否否否否
⽀持RPC否是(Hession2)是是是
⽀持多语
是(Rest)否是是否
服务注册/发现是(Eureka)Eureka服务注册表,Karyon服务端
框架⽀持服务⾃注册和健康检查
是(ZK/Consul)否否是
负载均衡服务端Zuul+客户端Ribbon;Zuul服务动态路由,
云端负载均衡;Eureka针对中间层服务器
是(客户端)否否是(客户端)
配置服务Netflix Archaius SpringCloud Config Server集
中配置
是(ZK提供)否否否
服务调⽤
链监控
是(Zuul),Zuul提供边缘服务,API⽹关否否否否
⾼可⽤/
容错
是(服务端Hystrix+客户端Ribbon)是(客服端)否否是(客户端)
典型应⽤
案例
Netfilx Sina Google Facebook
社区活跃⾼⼀般⾼⼀般停⽌了五年
学习难度中等低⾼⼀般低
⽂档丰富
⾼⼀般⼀般⼀般⾼
3.SpringCloud⼊门概述
是什么?
SpringCloud,基于Springboot提供的⼀套微服务解决⽅案,包括服务注册和发现、配置中⼼、全链路监控、服务⽹关、负载均衡、熔断器等组件,除了基于Netflix的开源组件做了⾼度抽象的封装之外,还有⼀些选型中⽴的开源组件。
SpringCloud利⽤Springboot的开发便利性巧妙地简化了分布式开发系统的基础设施的开发,SpringCloud为开发⼈员提供了快速构建分布式系统的⼀些⼯具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以⽤Springboot的开发风格做到⼀键启动和部署。
Springboot并没有重复的造轮⼦,它只是将⽬前各家公司开发的⽐价成熟、经得起实际考研的服务框架组合起来,通过SpringBoot风格进⾏在封装屏蔽了复杂的配置和实现原理,最终给开发者留出了⼀套简单易⽤、易部署和易维护的分布式系统开发⼯具包。SpringCloud=分布式微服务架构下的⼀站式解决⽅案,是各个微服务架构落地技术的集合体,俗称服务全家桶。
SpringCloud和Springboot是什么关系?
SpringBoot专注于快速⽅便的开发单个个体微服务。
SpringCloud是关注全局的微服务协调治理架构。
SpringBoot可以单独使⽤开发项⽬、单SpringCloud离不开SpringBoot。
Dubbo是怎么到SpringCloud的?那些优缺点?
最⼤区别SpringCloud抛弃了RPC通信,采⽤是基于HTTP的REST⽅式
品牌机和组装机的区别
社区⽀持和更新⼒度
成熟的互联⽹架构(分布式+服务治理Dubbo)
见各⼤微服务框架对⽐
总结Cloud和Dubbo
Dubbo的定位始终是⼀款RPC框架、⽽SpringCloud的⽬标是微服务架构的⼀站是解决⽅案Cloud和Dubbo只能⼆选⼀
能⼲啥?
上边的特性都有。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。