携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情
⭐️前面的话⭐️
✉️坚持和努力一定能换来诗与远方!
💭推荐书籍:📚《王道408》,📚《深入理解 Java 虚拟机-周志明》,📚《Java 核心技术卷》
💬算法刷题:✅力扣🌐牛客网
🎈Github
🎈码云Gitee
写在前面
推荐
SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式_黑马20210811
[ 动力结点 ]springcloud微服务SpringCloud+SpringCloud Alibaba 双管齐下玩转SpringCloud
常用总结
项目布局
cloud_demo -- 父工程:定义版本
├── eureka-server -- 注册中心
├── feign-api -- 远程调用接口定义
├── gateway -- 网关配置
├── order-service -- 订单服务
├── user-service -- 用户服务
└── pom.xml -- 父pom
# 注册中心Eureka
服务消费者该如何获取服务提供者的地址信息?
果有多个服务提供者,消费者该如何选择?
消费者如何得知服务提供者的健康状态?
# 负载均衡
# 配置中心
# feign远程调用
基于RestTemplate发起的http请求实现远程调用,只要知道对方的ip、端口、接口路径、请求参数即可。
一个服务既可以是提供者,也可以是消费者。
# Gateway服务网关
问题解决
服务框架学习路线
完整微服务技术栈:微服务技术 + 持续集成
微服务并不是等于 springcloud 技术
消息队列:异步通信大大提高服务的并发,秒杀等高并发场景利用
系统监控链路追踪:实时监控每一个服务节点的运行状态、CPU负载、内存的占用等等情况,一旦出现任何的问题,可以直接定位到某一具体的方法栈信息,快速定位异常所在。
自动化部署:工具Jenkins,Docker打包形成镜像
需要学习的微服务知识
学习路径
分层次教学
知识层次
springcloud实用篇一
注册中心
负载均衡器
一、认识微服务 Microservices
服务框架演变
1、单体架构(单体应用):将业务的所有功能集中在一个项目中开发,打成一个包部署,从而对外提供服务。
2、分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
3、微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:
单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
面向服务:微服务对外暴露业务接口
自治:团队独立、技术独立、数据独立、部署独立
隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
# 关于微服务的概念
- 拆分,HTTP
微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务。
这些小型服务都在各自独立的进程中运行,服务之间通过基于 HTTP 的 RESTful API 进行通信协作;
- 独立
被拆分后的每一个小型服务都专注于完成系统中的某一项业务功能,职责单一,
并且每个服务都是一个独立的项目,可以进行独立的测试、开发和部署等;
- 语言
由于各个独立的服务之间使用的是基于 HTTP 的 JSON 作为数据通信协作的基础,所以这些微服务也可以使用不同的语言来开发;
# 分布式和微服务有什么区别?
它们的本质的区别体现在 目标 上。
何为目标,就是你采用分布式架构或者采用微服务架构,你最终是为了什么,要达到什么目的?
分布式架构的目标是什么?
就是访问量很大一台机器承受不了,或者是成本问题,不得不使用多台机器来完成服务的部署;
而微服务的目标是什么?
只是让各个模块拆分开来,不会被互相影响。
比如模块的升级或者出现BUG或者是重构等等都不要影响到其他模块,微服务它是可以在一台机器上部署;
分布式注重性能,微服务在此基础上更加注重业务
# 微服务与Spring-Cloud的关系或区别?
架构方式、架构理念与技术落地实现
微服务技术对比
微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。
在国内最知名的就是 SpringCloud 和阿里巴巴的Dubbo。
SpringCloud
SpringCloud是目前国内使用最广泛的微服务框架。官网地址:spring.io/projects/sp…
SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
SpringCloud与SpringBoot的版本兼容关系如下:
# 黑马课程
使用的版本是Hoxton.SR10,因此对应的SpringCloud版本是2.3.x版本。
| Release Train | Boot Version |
|---|---|
| 2021.0.x aka Jubilee | 2.6.x |
| 2020.0.x aka Ilford | 2.4.x, 2.5.x (Starting with 2020.0.3) |
| Hoxton | 2.2.x, 2.3.x (Starting with SR5) |
| Greenwich | 2.1.x |
| Finchley | 2.0.x |
| Edgware | 1.5.x |
| Dalston | 1.5.x |