SpringCloud知识点总结

1.互联网应用架构演进

先是单体架构模式,项目所有的功能模块都放在一个工程中编码、编译、打包并且部署在一个Tomcat容器中的架构模式就是单体应用架构,优点是高效开发,架构简单,易于测试,易于部署,缺点是可靠性差,复杂性高,扩展能力有限

再是垂直架构模式,是基于系统现有的业务特性来做,核心目标第一个是为了业务之间互不影响,第二个是在研发团队的壮大后为了提高效率,减少组件之间的依赖。,如登录和社区等,优点是解决了并发问题,方便水平拓展,负载均衡,容错率提高,系统相互独立,缺点是业务处理起来比较复杂

再是SOA架构,是按照不同不同层次分的,他可以面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。优点是分布式,松耦合,扩展灵活可重用,缺点是服务抽取粒度较大,服务调用和提供方耦合度较高

最后是微服务架构,拆分粒度更细,把应用拆分成一个个微小的服务,不同的服务可以使用不同的开发语言存储,业务彻底的组件化和服务化

2.springcloud核心组件

注册中心:第一代eureka,第二代nacos,

客户端负载均衡:ribbon,

熔断器:第一代hystrix,第二代sentinel

网关:第一代zuul,第二代gateway

配置中心:第一代config,第二代nacos

服务调用:第一代feign,第二代dubbo RPC

消息驱动:springcloud stream

链路追踪:springcloud sleuth/zipkin

3.负载均衡策略

RoundRobinRule轮询策略,RandomRule随机策略,RetryRule重试策略,BestAvailableRule最小连接数策略

AvailabilityFilteringRule可用过滤策略,ZoneAvoidanceRule:区域权衡策略(默认策略),先过滤再轮询

4.Gateway路由规则详解

DateTime时间类断言,Cookie类断言,path请求路径类断言,Host请求主机类断言,Header请求头类断言,

Method请求方式类断言,QueryParam请求参数类断言,RemoteAddr远程地址类断言

5.JDBC分库分表

垂直分表定义:将一个表按照字段分成多表,每个表存储其中一部分字段,我们按以下原则进行垂直拆分:

①把不常用的字段单独放在一张表

②经常组合查询的列放在一张表中

③把text,blob等大字段拆分出来放在附表中

垂直分库是指按照业务将表进行分类,发布到不同的数据库上面,每个库可以放在不同的服务器上,它的核心理念是专库专用

水平分库是把同一表的数据按一定规则拆到不同的数据库中,每个库可以放在不同的服务器上

水平分表是在同一数据库内,把同一个表的数据按一定规则拆到多个表中

6.RabbitMQ(消息队列)

①helloworld模型(简单模式)

一个队列中一条消息,只能被一个消费者消费

②workquene模型(工作队列模式)

一个生产者,多个消费者,每个消费者获取到的消息唯一

③广播模式(订阅模式)

一个生产者发送的消息被多个消费者获取

④直连模式(路由模式)

生产者发送的消息主要根据定义的路由规则决定往哪个队列发送

⑤Topic模式(匹配模式/通配符模式)

topic主题模式为生产者,一个交换机(topicExchange),模糊匹配路由规则,多个队列,多个消费者

7.Feign(远程调用组件)

Feign可帮助我们更加便捷,优雅的调用HTTP API

Feign默认的请求处理超时时长是1S,在yml中设置

Feign的压缩大小下限,默认是2048

Feign = RestTemplate + Ribbon + Hystrix

8.GateWay(网关)

GateWay旨在为微服务架构提供一种简单有效的统一的API路由管理方式,springcloudGateWay不仅提供统一的路由方式(反向代理)并且基于Filter(定义过滤器对请求过滤,完成一些功能)链的方式提供了网关基本的功能,例如:鉴权,流量控制,熔断,路径重写等。

功能有:统一接入,安全防护,黑白名单,协议适配,流量管控,长短链接支持,容错能力

断言:匹配条件判断

路由:

过滤器:过滤请求,pre在请求被路由之前调用,post在路由到微服务以后执行,gatewayFilter应用到单个路由上,globalFilter:应用到所有的路由上

9.服务注册和服务发现

服务注册:作用是服务提供者将所提供服务的信息(服务器IP和端口,服务访问协议等)注册/登记到注册中心(支持http),默认心跳续约30秒,90秒剔除

服务发现:服务消费者能够从注册中心获取到较为实时的服务列表,然后根据一定的策略选择一个服务访问

10.负载均衡

负载均衡是将压力分配到多个服务器,以此来提高服务的性能,可靠性

11.熔断

熔断即断路保护,微服务架构中,如果下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体可用性,可以暂时切断对下游服务的调用。这种牺牲局部,保全整体的措施就叫做熔断

12.链路追踪

链路追踪就是对一次请求涉及的很多个服务链路进行日志记录,性能监控

你可能感兴趣的:(java,学习,spring,cloud,java,分布式)