微服务----从入门到入土(一)

微服务总体知识体系图

在这里插入图片描述

什么是微服务

微服务是一种经过良好架构设计的分布式架构方案,主要有以下几个特征:

  1. 单一职责:微服务拆分粒度更小,每个服务都对应唯一的业务能力。
  2. 面向服务:对外暴露接口,供其他服务使用
  3. 自治:每个服务做到技术独立,数据独立,部署独立
  4. 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

微服务优势

分布式微服务解决的主要问题:单体地狱,一旦应用大起来了,所有模块都集中在单个服务上会存在以下问题:
5. 维护困难,一个项目编译打包就要花上几小时
6. 耦合度过高,牵一发动全身,修一个bug或者改一些地方会引出其他问题

这时就需要对功能模块进行拆分,每一个服务对应一个小模块。

微服务架构体系内容

一个微服务体系包含以下几个部分:

  1. 服务集群:单体根据功能进行拆分后根据不同的功能部署到不同的服务,就会组成服务集群。
  2. 注册中心:这么多服务中间肯定需要通信,那么服务的信息都由注册中心进行管理。如A服务需要与B服务进行通信,首先会访问注册中心获取B服务的地址,之后根据地址发起http或者rpc请求进行通信。
  3. 配置中心:管理各种服务的各种配置信息
  4. 数据库:这个不说了,单体,分布式都需要
  5. 分布式缓存:当并发量上去之后,就需要缓存降低数据库的压力
  6. 分布式搜索:复杂搜索,就需要分布式搜索功能
  7. 消息队列:一个请求需要过很多服务,时间为所有服务之和,消息队列就可以进行异步操作,起到削峰的作用,提高服务的并发。
  8. 服务网关:类似nginx,一个请求过来,需要看看这个请求要打到哪个服务上进行处理
  9. 分布式日志处理:当服务多起来后,查看日志成了很麻烦的事情,分布式日志就可以解决这个问题
  10. 系统链路追踪:监控每个服务的cpu,内存,负载,占用

注册中心

当A服务调用B服务时,如果使用硬编码的方式将地址写在代码内,会存在以下问题:

  1. B服务的环境地址是变化的
  2. B服务如果存在集群,那么无法进行均衡负载
  3. 消费者无法获取服务的健康状态

为了解决上述问题,就需要注册中心

Eureka

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。

  • 消费者如何获取服务提供者的具体信息?
    • 服务提供者启动时向Eureka注册自己的信息
    • 消费者根据服务名称向Eureka获取信息
  • 多个服务者如何选择
    • 使用均衡负载算法
  • 消费者如何感知服务者的健康状态
    • 服务提供者会每隔30秒发送心跳
    • 如果心跳不正常就会删除
    • 消费者可以拉取服务者最新信息

搭建EurekaServer

在这里插入图片描述
Eureka自己就是一个微服务,可以进行集群,具体见官方文档!

服务注册

在每个微服务需要做如下配置,将信息注册到server
在这里插入图片描述

服务发现

在这里插入图片描述
业务代码如下:

启动类:
在这里插入图片描述
service类

在这里插入图片描述

Ribbon负载均衡

Eureka-client均衡负载流程

在这里插入图片描述

均衡负载策略

Eureka-client中使用Ribbon组件进行负载均衡

在这里插入图片描述

如何修改均衡负载规则?
在这里插入图片描述

懒加载与饥饿加载

在这里插入图片描述

Nacos注册中心

相较于Eureka,Nacos功能更多,使用范围更广

Nacos-server安装

具体自己看官方文档

服务注册

在这里插入图片描述

服务发现

同eureka

配置集群

一套微服务应用部署在多地时,某一地区的所有微服务就叫一个集群,如上海集群,杭州集群。这样做的目的主要为了容灾。

Nacos提供服务集群配置,当其中一个微服务调用另一个服务时,优先调用相同集群的服务,如果集群内服务都挂了,再访问不同集群的服务。这个策略需要进行负载均衡配置

在这里插入图片描述

负载均衡配置

默认为轮询策略,当这么配置时,优先进行集群内调用
在这里插入图片描述

统一网关

网关功能:

  1. 身份验证
  2. 均衡负载
  3. 请求限流

SpringCloudGateway

搭建步骤

Feign是个声明式的http客户端,可以实现优雅的http发送
在这里插入图片描述

断言工厂

类似于拦截器功能
在这里插入图片描述

网关过滤器

类似于过滤器功能,可以对请求进行拦截处理。如添加请求头。具体见官方文档

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Simulink是一款强大的仿真工具,用于设计、模拟和分析各种系统的行为。下面是一个从入门入土的Simulink仿真教程。 1. 软件安装:首先需要下载和安装Simulink软件。在MathWorks官方网站上找到适合的版本,并按照指示进行安装。 2. Simulink基础:打开Simulink后,可以看到一个模块化的仿真环境。了解基本的Simulink界面、工具栏和库,这些是使用Simulink进行仿真的基础。 3. 模型建立:使用Simulink可以通过将各种模块组合在一起来建立模型。通过从库中拖拽模块到仿真界面,使用线连接相应的模块,可以构建出一个完整的系统模型。 4. 参数设置:对于每个模块,都可以设置相应的参数。这些参数可根据需要进行调整,以便模型可以更准确地模拟真实系统的行为。 5. 信号输入:创建一个仿真的关键是提供输入信号。可以通过添加信号源模块来生成不同类型的输入信号,如恒定值、正弦波、脉冲等。 6. 仿真运行:配置好模型和输入信号后,可以点击运行按钮开始仿真。仿真结果将在仿真器窗口中显示,此时可以观察系统的行为。 7. 结果分析:Simulink提供了多种工具用于分析仿真结果。可以绘制输出信号的波形图,计算系统的响应时间、频率响应等。 8. 优化改进:根据分析结果,可以调整模型参数以改进系统的性能。这包括调整模块参数、修改模型结构等。 9. 进阶功能:通过进一步学习和实践,还可以掌握更高级的Simulink功能,如使用MATLAB脚本进行仿真、使用状态流图进行建模等。 10. 深入学习:要真正掌握Simulink,需要不断深入学习和实践。可以参考Simulink的官方文档、视频教程和论坛,以及阅读相关书籍。 总之,通过上述步骤,您可以从入门入土地掌握Simulink的基本原理和使用方法,能够进行各种系统模型的建立和仿真。但记住,Simulink只是一个工具,对于真正理解和解决复杂系统问题,还需要深入学习掌握相关的系统理论和建模方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值