1、传统架构演进到分布式架构
简介:讲解单机应用和分布式应用架构演进基础知识 (画图)
高可用 LVS+keepalive
1、单体应用:
开发速度慢
启动时间长
依赖庞大
等等
分布式架构目前很多公司在用
2、微服务
易开发、理解和维护
独立的部署和启动
等
不足:
分布式系统-》分布式事务问题
需要管理多个服务-》服务治理
2、微服务核心基础讲解
简介:讲解微服务核心知识(各个组件) :网关、服务发现注册、配置中心、链路追踪、负载均衡器、熔断
1、网关:路由转发 + 过滤器(用户下单和评论应该是登入才可以使用)
/api/v1/pruduct/ 商品服务
/api/v1/order/ 订单服务
/api/v1/user/ 用户服务
2、服务注册发现:调用和被调用方的信息维护
3、配置中心:管理配置,动态更新 application.properties
4、链路追踪:分析调用链路耗时:服务之间的调用
例子:下单-》查询商品服务获取商品价格-》查询用户信息-》保存数据库
5、负载均衡器:分发负载(自动将大的负载分发到小的负载的服务)
6、熔断:保护自己和被调用方
3、常见的微服务框架
简介:讲解常用的微服务框架
consumer: 调用方
provider: 被调用方
一个接口一般都会充当两个角色(不是同时充当)
1、dubbo: zookeeper + dubbo + springmvc/springboot
官方地址:http://dubbo.apache.org/#!/?lang=zh-cn
配套
通信方式:rpc(通讯响应快适合做秒杀活动)
注册中心:zookeper/redis
配置中心:diamond
2、springcloud: 全家桶+轻松嵌入第三方组件(Netflix 奈飞)
官网:http://projects.spring.io/spring-cloud/
配套
通信方式:http restful
注册中心:eruka/consul
配置中心:config
断路器:hystrix
网关:zuul
分布式追踪系统:sleuth+zipkin
学习资料:https://blog.csdn.net/zhangweiwei2020/article/details/78646252
4、微服务下电商项目基础模块设计
简介:微服务下电商项目基础模块设计 分离几个模块,课程围绕这个基础项目进行学习
小而精的方式学习微服务
1、用户服务
1)用户信息接口
2)登录接口
2、商品服务
1)商品列表
2)商品详情
3、订单服务
1)我的订单
2)下单接口
总结:
dubbo和springcloud的区别
总览
Dubbo | SpringCloud | |
服务注册中心 | Zookeeper | Spring Cloud Netfix Eureka |
服务调用方式 | RPC | REST API |
服务监控 | Dubbo-monitor | Spring Boot Admin |
熔断器 | 不完善 | Spring Cloud Netflix Hystrix |
服务网关 | 无 | Spring Cloud Netflix Zuul |
分布式配置 | 无 | Spring Cloud Config |
服务跟踪 | 无 | Spring Cloud Sleuth |
数据流 | 无 | Spring Cloud Stream |
批量任务 | 无 |
Spring Cloud Task
|
信息总线 | 无 | Spring Cloud Bus |
最大的区别:Dubbo底层是使用Netty这样的NIO框架,是基于TCP协议传输的,配合以Hession序列化完成RPC通信。而SpringCloud是基于Http协议+rest接口调用远程过程的通信,相对来说,Http请求会有更大的报文,占的带宽也会更多。但是REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适,至于注重通信速度还是方便灵活性,具体情况具体考虑。
背景区别:Dubbo是来源于阿里团队,SpringCloud是来源于Spring团队,Spring广泛遍布全球各种企业开发中,可以确保SpringCloud的后续更新维护,Dubbo虽然来自国内顶尖的阿里团队,但是曾经被阿里弃用停更,但是后来阿里又低调重启维护。
定位区别: Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断。而 Spring Cloud 诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托了 Spirng、Spirng Boot 的优势之上,两个框架在开始目标就不一致,Dubbo 定位服务治理、Spirng Cloud 是一个生态。因此可以大胆地判断,Dubbo 未来会在服务治理方面更为出色,而 Spring Cloud 在微服务治理上面无人能敌。
模块区别:1、Dubbo主要分为服务注册中心,服务提供者,服务消费者,还有管控中心;2、相比起Dubbo简单的四个模块,SpringCloud则是一个完整的分布式一站式框架,他有着一样的服务注册中心,服务提供者,服务消费者,管控台,断路器,分布式配置服务,消息总线,以及服务追踪等;
性能区别:Dubbo的每次测试除去网络波动之外,都表现非常稳定
Spring Cloud在第一次最慢,之后越来越快,连续测试4次以上单次测试性能超过dubbo
Spring Cloud-zuul在第一次最慢,之后也表现越来越快,连续4次以上测试 单次性能与dubbo相近,相差在0.02ms内