通过向一位初学者讲解springcloud来学习springcloud

springcloud学习及复习笔记(持续更新)

回顾SpringCloud:

SpringBoot的核心理念是:

学习SpringCloud需要哪些准备:

了解SpringBoot:SpringBoot是SpringCloud的基础
[SpringBoot教学连接:](https://mp.csdn.net/postedit/100104700)
微服务:目前理解是分模块,就是分,模块之间相互调用。

开始学习(前期)

SpringCloud课程介绍:

  1. 微服务架构与项目设计:微服务,Git,Sonar
  2. SpringCloud初体验:Eureka,Hystrix,Fegin
  3. 虚拟化技术Docker+Jenkins
  4. 分布式日志处理:Elk+Kafka
  5. 分布式业务实现:RabbitMQ。Redis
  6. 分布式部署实现:Ribbon,Zuul,Config
  7. 分布式数据存储:Elasticsearch,Mycat
  8. 分布式第三方接入:微信支付,微信登录,支付宝支付
  9. 集成测试:JMeter
    项目类型:基于微服务分布式的票务类电商网站
    大觅网业务:用户,商品,订单,排期,支付
    项目框架:Vue,SpringCloud,SpringBoot,Mybatis,Mysql
    项目关键技术:SpringCloud体系,日志处理:Elk+Kafka,消息队列中间件:RabbitMQ,缓存:Redis,分布式搜索引擎:Elasticsearch,分布式数据库中间件:Mycat

笔记

先来认识各大组件SpringCloud:

  1. Eurka注册中心,
  2. Zuul网关验证,
  3. Config分布式配置管理
  4. Ribbon负载均衡
  5. Feign接口调用
  6. Hystrix容错处理
  7. Sleuth微服务追踪
  8. Elk+Kafka日志收集
    RabbitMq中间件:解决高并发
    发布采用:Jenkins+docker(CI/CD)发布
    Mycat:数据库中间件
    sonarQube代码检测

解决思路及图

  1. 模块之间拆分后怎么找到,发现其他模块?
    通过Eurka注册中心,有了各个服务的地址清单。
  2. 接下里就是调用的问题了,之前单体时只需要浏览器发一个http请求自己内部去处理,但是现在把自己拆成各个模块,并且不再一个服务器上,假如浏览器发了一个请求给了一个模块,这个模块处理时需要借助其他模块的方法,这时该怎么调用,也不能让客户自己去调用,,
    通过Feign组件来实现互相调用。
  3. 互相调用难免会出错,出错了怎么办?
    通过Hystrix、

组件讲解

Eurka(中文:我发现了)

Eurka可细分为Eurka Server和Eurka Client
Eurka Server 可认为是通讯录,注册中心,
Eurka Client 客户端,即各个业务模块,各个provider者和consumer者。
代码部分:开发工具是idea
在这里插入图片描述

微服务架构相关概念和设计理念

将单体的项目拆分成多个模块项目,模块之间通过接口来调用。
单体式架构:项目迭代不灵活,并发配置不灵活,面对的是用户内部
微服务:就是拆,项目复杂度降低,团队界限明确,部署灵活,但同时运维复杂度提高。面对的是大用户哦,高并发。

微服务架构种类:
  1. Dubbo:基于RPC
  2. SpringCloud:基于Restful
微服务架构-服务类型:
  1. Provider:提供者,提供服务的一方
  2. Consumer:消费者,调用服务的一方
    假如把单体项目拆成三个模块,分别为用户,节目,订单模块,每个模块又拆成消费者和提供者
    微服务
微服务架构-通信方式
  1. RPC:(Remote Procedure Call)基于TCP,平台有关 ,效率高,以方法为中心
    远程过程调用协议,暂时理解:想要调用别人的服务,需要用人家的技术如(注解,方法)等东西
    就像调用自己本地的方法一样调用远程的方法
  2. RESTful:(Representational State Transfer)基于HTTP,平台无关,效率低,以资源为中心
    通过url,访问所需资源,(无状态),
微服务架构-设计原则
  • 单一职责
  • 围绕业务
  • 谁创建,谁负责(开发加运维)运维统一管理会很麻烦。

分布式和集群

  1. 分布式:关注项目拆分,项目ABC拆成A,B,C,三个项目
  2. 集群:关注项目部署,项目ABC复制三个ABC,分别部署到三个服务器

大觅网架构设计

业务架构
谁要使用这个系统,可以为用户提供什么样的功能
应用架构
以业务架构为基础,系统中有多少应用,每个应用是干什么,
	 如:前端应用,网关应用,后端应用,环境应用
技术架构
 前端:vue
 反向代理:Nginx
 网关Zuul
 消费者:fegin:接口管理,hystric:容错处理,Rabbin:负载均衡
 注册中心:Eurka
 提供者:fegin:接口管理,hystric:容错处理,Rabbin:负载均衡
 缓存器:redis
 搜索器:Elasticsearach
 数据库管理:Mycat 
 整体:docker和Jenkins
数据库架构

大觅网项目管理

版本管理-Git
分布式版本控制系统(DVCS)
代码规范管理-SonarQube(SonarLint)
项目敏捷管理-Scrum
敏捷开发(Agile Development)
	以人为核心,遵循迭代,循环渐进的开发方法
敏捷的框架
	XP,Scrum
Scrum
   将整个开发周期划分为若干个小的迭代周期的一种项目管理框架2

SpringCloud 杂记知识点(待整合)

  1. bootstrap.yml文件和application.yml文件的区别:bootstrap文件会比application文件先加载。
  2. SpringCloud的版本命名称是根据伦敦地铁站名按字母顺序来命名的。
  3. Eureka 是我发现了的意思,阿基米德发现浮力时大喊的就是eureka。
    关于其由来,有一则有趣的传说。古代叙拉古( Syracuse,古时为希腊城市)国王海叶罗(Hiero)请金匠做一顶金冠,怀疑其中掺加了别的金属,要数学家、物理学家阿基米德测出王冠含金的纯度,但又不能损伤王冠。阿基米德冥思苦想,一直没想出来。在淋浴时,他突然从浴盆溢出的水得到了启发,发现了浮力定理,并据此测定了金子的纯度。据说当时他从澡盆中跳了出来,连衣服都忘了穿,边跑边喊“Eureka!"。该词相当于英语“I have found it.“(我发现了)。从16世纪以来,eureka在英语及其他一些语言里一直被用作因重大发现而发的惊叹语。eureka是希腊语,严格地说应作heureka,源自heuriskein‘find’。始用于19世纪的heuristic 一词亦源于此,它之所以被赋予“启发(式)的”一义与eureka的来历恐怕是不无联系的。
  4. Feign 假的
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值