SpringCloud 随笔

1. Questions

1.1 什么是springcloud

看起来像是集成了很多分布式架构所需微服务的中间件的集合

1.2 为什么用springcloud

基于springboot,学习门槛渐进式

1.3 什么是分布式?分布式和单体的区别?分布式和模块化的异同?分布式和前后端分离是一个玩意吗?

服务一个组件,RPC一个组件,数据库一个组件,网关路由一个组件,看起来像是履行了单一责任的设计f原则,单体局限于一台机器,分布式高并发高可用,就是维护耗钱,模块化看起来更像是一种自己开发的风格,看起来分布式得益于前后端分离

1.4 集群?

服务的集合,数据库的集合,etc

1.5 负载均衡

让集群中的每个个体所受的压力一样,降低负担

1.6 什么是服务?

解决用户需求的玩意?笼统点,数据库也是服务?

1.7 什么叫暴露接口给外界?

类似外观模式?用户最多只能知道Controller层

1.8 学分布式微服务其实就是在学组件?

1.9 倒排索引和正向索引?

1.10 分布式划分的粒度?

1.11 所有组件都可以交给springboot管理?

1.12 DSL 和 SQL?

DSL, domain specific language 包含了sql 领域特定语言,啥领域用啥语言

elasticsearch里的dsl是json?

2. Eureka

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fUAuGOHp-1649230500506)(C:\Users\86180\AppData\Roaming\Typora\typora-user-images\image-20211109170526889.png)]

Eureka是对消费者做负载均衡还是对被消费者做?

用eureka做注册中心访问的时候不能直接ip地址,要写服务名称

java.lang.IllegalStateException: No instances available for user-service:一开始访问会报错,但是过一会就不报错了,猜测是做负载均衡需要时间,还没有完成就访问所以报错

懒汉式

3. Nacos

在本地安装nacos其实是安装了一个完善的nacos后台管理系统,而eureka不需要是因为spring自己提供了直接的html?

通过本地安装的这个后台管理系统,更直观的注册服务和配置服务

在spring项目里导入nacos的jar包的目的是?里面封装了api

其实这不就是前后端分离吗,spring项目操作服务,显示到后台管理系统中,逆向?

安装nacos单机改个standalone就行,数据库无所谓,sql失败考虑CURRENT_TIMESTAMP版本问题

配置中心可以将调用与服务解耦 以前需要输入ip,现在只用写程序名

4. OpenFeign

动态代理模式!!!

感觉还有面向接口编程,声明式,甚至还有策略模式?

一个消费者的controller过来,调openFeign声明的接口的某个服务,然后这个接口就会按照映射去找他的实例对象,这个过程看成黑盒就完事了,应该是通过动态代理即时生成一个实体类?或者即时RPC提供者的?更像是后者

5. Docker

Docker是一个容器,就是给你装各种中间件和服务的,它依赖于linux内核,所以需要在linux上运行,windows用户只能整个虚拟机咯

感觉主要在应用程序上线时才用

镜像和容器???

镜像包含容器把,大概,因为需要先获得image,再从image上获得container,最后对container操作,image更像是container的container。

Docker存在的意义是什么?

各种官方上的理解是让你的开发环境和真正的测试和部署的环境一致

但是SpringBoot, mysql nginx redis 和微服务的各种组件又是怎样在docker里扮演角色的呢?

docker肯定是基于虚拟机运行的嘛,因为需要linux内核

在linux主机上,以docker为基础分别部署mysql nginx redsi的tar文件吗?那到底springboot项目要不要呢????

要的吧?,还是直接在windows主机上ping虚拟机? 应该是前者

6. RabbitMQ

Message Queue,,消息队列,听说消息队列是命令模式的典型

大概是个什么流程呢?

先建立连接啦,然后给你个频道,不会是连接工厂给你个连接,再从这里面抽一个频道给你把,类似进程和线程?

然后就给你把消息丢queue里缓存着,再按照某种算法丢给你的consumer

6. GateWay

网关,有点过滤那意思,符合规范的才放行,

第一层 网关,过了给路由or交换机,然后再给服务

7. ElasticSearch

搜索引擎?核心是倒排索引

一般的mysql的查询顺序按照你给的条件or索引然后返回数据,倒排看起来就是反着来

前言#传统数据库查询数据的操作步骤是这样的:建立数据库->建表->插入数据->查询索引(index)一个索引可以理解成一个关系型数据库类型(type)一个type就像一类表,比如user表、order表注意1、ES 5.X中一个index可以有多种type2、ES 6.X中一个index只能有一种type3、ES 7.X以后已经移除type这个概念映射(mapping)mapping定义了每个字段的类型等信息。相当于关系型数据库中的表结构文档(document)一个document相当于关系型数据库中的一行记录字段(field)相当于关系型数据库表的字段集群(cluster)#集群由一个或多个节点组成,一个集群由一个默认名称“elasticsearch”节点(node)#集群的节点,一台机器或者一个进程分片和副本(shard)#
副本是分片的副本。分片有主分片(primary Shard)和副本分片(replica Shard)之分
一个Index数据在屋里上被分布在多个主分片中,每个主分片只存放部分数据
每个主分片可以有多个副本,叫副本分片,是主分片的复制

8. Sentinel

分布式限流中间件

9. Seata

分布式的事务管理组件

10. Nginx

nginx + openresty + lua

反向代理: 正常的代理对服务器透明,反向代理对用户透明

11. Redis

Redis是最常见的nosql数据库,用来做对快速读写有要求的数据的存储

启动: redis-server & (后台启动)

客户端UI: redis-cli

bind : 默认只允许本机访问

持久化策略: AOF RDB

AOF:append only file 增量操作 你每写一条我加一条

RDB: read-only data base 对当前的所有操作快照备份,写入RDB文件 根据操作的数量决定每次写的时间

连接SpringBoot

  1. redis.conf-> protected mode no
  2. dependency
  3. 模板操作

缓存穿透和缓存雪崩: 说白了都是因为某种原因导致没法访问Redis都去找数据库了

解决缓存穿透加个锁就可以了,缓存雪崩是因为查询到的一直是空数据,所以也没法访问redis,这种时候就应该返回条无关数据给redis,这样就不会去一直IO数据库了

集群:

redis主从:slaveof 记得更改端口和选择aof和rdb

哨兵模式: 大概就是给你个Monitor,如果主redis宕机了,monitor检测到,触发某种选举机制,比如过半制度,成为新的主redis,并通知别的slave更改主redis

但是如果宕机的那个主机复活了怎么办,显然,这个redis肯定觉得自己还是主,但是我们应该把它变为从的,根据过半选举,这个人被动成为从机?

据给redis,这样就不会去一直IO数据库了

集群:

redis主从:slaveof 记得更改端口和选择aof和rdb

哨兵模式: 大概就是给你个Monitor,如果主redis宕机了,monitor检测到,触发某种选举机制,比如过半制度,成为新的主redis,并通知别的slave更改主redis

但是如果宕机的那个主机复活了怎么办,显然,这个redis肯定觉得自己还是主,但是我们应该把它变为从的,根据过半选举,这个人被动成为从机?

springcloud随笔相关推荐

  1. 如何合理地估算线程池大小?

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 来源:蒋小强 , ifeve.com/how-to-calculate-threadpool-si ...

  2. Redis 为什么这么快?

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 作者:我叫刘半仙 来源:my.oschina.net/liughDevelop/blog/2236 ...

  3. 当CPU飙高时,它在做什么

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 本文为转载文章,原文出处:https://www.jianshu.com/p/90579ec311 ...

  4. 阿里分布式事务框架GTS开源了!

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 就在昨天,阿里分布式事务框架GTS开源了一个免费社区版Fescar,看到了这个消息内心非常的激动. ...

  5. SpringCloud学习随笔(一)

    SpringCloud Alibaba 版本关系 版本依赖关系及说明可以参考如下链接:参考链接 版本选择 本次开发选择最新版本: 2021.0.4.0 查询版本对应关系:https://start.s ...

  6. 09_20_第七阶段:微服务开发||01-SpringBoot||19分布式Dubbo和Zookeeper【观看狂神随笔】

    19分布式Dubbo和Zookeeper+Springboot 阿里云,腾讯云等 一.分布式理论 什么是分布式系统: 我们应不应该先考虑分布式系统?:不应该! 集群与分布式的区别:https://zh ...

  7. SpringCloud微服务项目搭建

    常用链接 我的随笔 我的评论 我的参与 最新评论 我的标签 我的标签 springcloud(1) 随笔分类 编程(34) 随笔档案 2018年9月 (1) 2018年8月 (6) 2018年7月 ( ...

  8. SpringCloud Alibaba微服务实战(七) - 路由网关(Gateway)全局过滤

    说在前面 全局过滤器作用于所有的路由,不需要单独配置,我们可以用它来实现很多统一化处理的业务需求,比如权限认证,IP 访问限制,监控,限流等等. 创建路由网关(Gateway)启动服务cloud-ac ...

  9. SpringCloud Alibaba微服务实战(六) - 路由网关(Gateway)

    什么是 Spring Cloud Gateway? Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Re ...

最新文章

  1. 让我再撸一次HashMap
  2. php轮播代码生成器,最简单的Banner轮播左右切换效果代码及实现思路(附带源码)...
  3. oracle查询用户的概要文件,Oracle用户、概要文件、权限及角色实例
  4. python学习笔记(十四)标准库urllib
  5. mysql 更新索引_MySQL索引优化
  6. Linux获取本机hostname函数,Linux下获得主机与域名-gethostbyname和gethostbyaddr
  7. python中add_Python add()函数是如何使用呢?
  8. __nonnull((1)) 未完待续
  9. QML Math详解 生成随机数
  10. NXP iMX8系列处理器核心性能对比测试
  11. 手机访问电脑虚拟服务器,User Agent Switcher插件使用教程【电脑模拟手机访问网站】...
  12. 缺少vclie60.bpl的解决方法
  13. 几何平均数,代数平均数: 调和是什么意思,调和平均数 点火公式 平面曲线弧长(代数方程,参数方程,极坐标方程) 旋转曲面面积 旋转体体积 拉格朗日乘数法求最值;
  14. intel服务器芯片组C,Intel C232芯片组 华硕P10S-C售2399元
  15. IOS引入百度统计热力图崩溃
  16. [渝粤教育] 兴义民族师范学院 数据结构 参考 资料
  17. Excel表格模板打包下载┆收集了各类各行业Excel表格、word模板
  18. bluetooth开发(五)------蓝牙的功能测试(一)
  19. Kali Linux系统正确完整安装指南教程
  20. BUG的定义、分类、要素、生命周期

热门文章

  1. JKI State Machine
  2. VxWorks驱动程序开发指南--驱动程序的组织结构
  3. 论数字化转型:转什么,如何转?
  4. 信号与系统小总结:时域与频域
  5. R语言如何读取MySQL数据
  6. flutter 集成友盟推送遇到的一个小issue
  7. 原生Python实现网站爬虫
  8. 人脸识别SDK识别速度测试报告
  9. 果断收藏!除了软考,这些高含金量证书同样不能错过!
  10. 【ELM回归预测】基于matlab粒子群算法优化ELM回归预测【含Matlab源码 1586期】