资讯详情

资讯详情

带着小白学习-微服务-1 先了解微服务基础知识

带着小白学习-微服务[TOC](从零学习微服务一、先说说为什么要用微服务我仍然想写一写微服务主要就是我想用最简洁、最快速的方法给小白进行普及。1.什么是微服务当一个公司的业务是从最开始的小市场慢慢扩大到了一定规模系统的功能也从最初的增删改查上升到了用户量暴增、需求多种多样谁都不想得罪其中一个服务bug停止了求求其他的正常运行啊业务永远顺畅某一开发人员离职了系统等死等等等那么你的系统就需要用微服务架构重新设计了。那么微服务到底能帮我们实现什么1将一个复杂问题拆分成若干个简单的小问题将一个大型的项目架构拆分成若干个微服务来协同完成。(软件设计层面)。将一个庞大的工作拆分成若干个小步骤分别由不同的人完成这些小步骤最终将所有的结果进行整合实现大的需求比如卖商品的电子商务网站。2一台服务器无法负荷高并发的数据访问量那么就设置十台服务器一起分担压力十台不行就设置一百台。(物理层面)。很多人干同一件事情来分摊压力。2.是不是需要微服务以下是AI说的3.如何把系统功能转换为或者拆解为合理的微服务以下是AI说的我认为有道理4. 微服务需要的技术要想了解这里的技术栈就得先用个例子搞清楚微服务如何设计。假设现在做一个外卖平台我们分为两种情况来分析首先是1系统功能客户端主要针对普通用户用户注册、用户登录、菜单选购、查询订单后台管理系统:主要是针对管理员管理员登录、管理员退出、添加菜品、查询菜品、修改菜品、删除菜品、订单处理、添加用户、查询用户、删除用户。2转换为微服务先有四个服务提供者account账户服务用户和管理员的登录、退出。menu菜品服务:添加菜品、删除菜品、修改菜品、查询菜品。order订单服务:添加订单、查询订单、删除订单、处理订单。user用户服务:添加用户、查询用户、删除用户。假设一位用户想点菜服务消费者那么他的路径就是登录–查询菜品–添加订单。。。。他就只需要到上面的四个微服务中调用某个业务逻辑即可。此时的整个系统工作原理是四个服务提供者和一个服务消费者都需要在注册中心进行注册同时可以使用配置中心来对配置文件进行统一集中管理。下面一张图可以形象的说明关系特别说明此图来源于B站Java大联盟楠哥的视频“Spring Cloud从入门到实战”此时的重点就转移到了注册中心、配置中心等3微服务方案就登场了目前主流微服务方案Spring Cloud Alibaba基础微服务全家桶 Spring Cloud 原生组件OpenFeign、Loadbalancer 。5.Spring Cloud Alibaba 官方组件阿里提供1Nacos注册中心 配置中心注册中心微服务启动时把自己的地址注册到 Nacos服务调用时从 Nacos 拉取可用服务实例实现服务发现替代 Eureka。配置中心统一管理所有微服务的配置文件yaml改配置不用重启服务实时推送更新替代 Spring Cloud Config。特性AP/CP 模式切换支持集群阿里主推国内用得最多。2 Sentinel核心能力限流、熔断降级、热点参数限流、系统保护、权限控制。作用防止某个服务挂掉连锁把整个微服务集群拖垮雪崩保护。和 Hystrix 对比Hystrix 已停更Sentinel 功能更强控制台可视化是 SC Alibaba 默认熔断方案。3Seata场景一次业务调用跨多个微服务、多个数据库要么全部成功要么全部回滚。模式AT 模式最常用无侵入、TCC、SAGA、XA。痛点微服务天然没有本地事务Seata 就是用来补这个短板。4RocketMQ作用异步解耦、削峰填谷、事件通知。比如订单创建后异步发消息通知库存扣减。微服务场景异步通信和同步 Feign 调用互补。同类RabbitMQ、KafkaRocketMQ 事务消息对分布式业务友好。5Spring Cloud Gateway注意Gateway 是 Spring Cloud 官方组件不是 Alibaba 自研但 SC Alibaba 项目标配网关。功能路由转发、鉴权、限流、跨域、请求日志、负载均衡。位置所有前端 / 外部请求先进网关再转发到后端微服务。 旧版是 Zuul现已淘汰Gateway 是主流。6. Spring Cloud 原生配套组件和 SC Alibaba 一起搭配使用1OpenFeign重要OpenFeign 不属于 Alibaba 组件属于 Spring Cloud 原生但 SC Alibaba 项目几乎必用。作用像调用本地方法一样调用远程微服务不用手写 Http 请求。写接口加注解底层自动帮你发起 HTTP 请求。底层负载均衡新版 SpringCloud 移除 RibbonOpenFeign 默认搭配Spring Cloud Loadbalancer。搭配Feign 调用异常时可以交给 Sentinel 做熔断降级。2Spring Cloud LoadBalancer替代旧的 Ribbon。从 Nacos 拿到多个服务实例列表在客户端选一个节点发起调用轮询、随机等策略。Feign、Gateway 底层都依赖它。7. SPring boot与Spring Cloud与Spring Cloud Alibaba这三者在我们开发过程中都要用到那么他们的关系到底是什么Spring Boot基础开发框架快速开发单体 Java Web 应用Spring Cloud基于 Spring Boot 的一套「微服务规范 原生组件全家桶」注意他主要是一个规范Spring Cloud AlibabaSCASpring Cloud 规范的实现实现方案阿里提供的组件集用来替换掉已经停更的 Spring Cloud NetflixEureka/Hystrix/Zuul。Spring Boot底座 → Spring Cloud微服务标准 → Spring Cloud Alibaba国内主流实现套件。8.开发版本兼容设定做系统开发的时候大家最头疼的就是版本兼容问题。所以在做这个项目的时候也请务必搞清楚当前系统的最佳版本兼容。一般不建议追求最新尤其对于初学者来说使用较为稳定的旧版本就完全可以掌握其中的原理。1最新版本兼容可以上官网查看Spring Cloud Alibaba 版本说明2之前版本兼容关系可以上阿里云开发者社区查看Spring Cloud Alibaba 历史版本兼容关系9.本次学习使用的nacos下载Nacos 历史版本下载
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →