黑马微服务学习(实用篇)

本文介绍了微服务架构中的关键组件,包括SpringCloud、Eureka和Ribbon。通过示例展示了服务拆分、远程调用、Eureka的服务注册与发现以及Ribbon的负载均衡。同时,还探讨了Nacos作为注册中心的安装与服务注册,并讨论了负载均衡策略的调整。文章最后提到了笔记的重要性,鼓励读者持续学习和提升。
摘要由CSDN通过智能技术生成

1.微服务简述

可以看这个哥们的笔记,比我记的好得多

微服务技术栈 - 乐心湖's Blog | 技术小白的技术博客

消息队列解决里面服务集群之间的异步通信。

系统监控链路追踪,实时监控每个结点的运行状态(负载,内存),能快速定位到哪个方法。

Jenkins,对微服务项目的编译,然后通过docker打包。K8s和Rancher实现部署。

不同的业务写在不同的机器上,但它们之间的相互调用也是问题。

1.1 企业需求

 

 

 1.2 springCloud和springBoot对应版本

1.3 服务拆分及远程调用(demo理解)

两个sql文件导入不同数据库。因为现在还没有部署。

 

 1.3.1 查订单时,把订单所属用户信息一起返回(相互调用 1)

我们目前时这样

 我们需要做到这样

这个方法对外暴露了一个接口,只要我们在浏览器输入对应的地址一定可以得到信息。

但我们如何在java代码中,发起http请求?  看下一小节如何解决。

 1.3.2  Spring提供的工具RestTemplate相互调用2

 注入容器获得RestTemplate对象方法。

在service这里可以获得,数据库返回的user的id值。

这个方法发请求,如果不指明User.class,会把数据装成json。这里指明了,就会反序列化成User对象。

然后把它设置到order里。

1.4 Eureka

角色是相对而言的。一个服务既可以是提供者,也可以是消费者。

 

用Eureka,来选择。服务提供者的地址信息。 

 eureka帮助我们记信息,找他要就行,记着每一个微服务的信息。

拿到信息,用负载均衡的方式挑一个。

1.4.1 Eureka的作用

 1.4.2 搭建Eureka

Eureka将自己也注册了,因为以后可能会有多个Eureka。

启动类。 

 

 

测试地址,可以localhost访问。 

 

1.4.3 注册服务

需要更改service方法里请求的路径,改成服务名,才能访问集群。

看到注册中心目前只有一个实例。 我们需要去注册。

步骤1:在需要注册进eureka得微服务得yml文件里加上。

 

 步骤2:加上自己微服务得名称

 这个是一个微服务,再开一个,用不同得端口。

 

1.4.4 注册不成功得报错

复制粘贴,导致eureka配置没顶格。误认为是别的配置里加eureka。 

得NM严格对应,服了。

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
    username: root
    password: a839846976
    driver-class-name: com.mysql.jdbc.Driver

  application:
    name: orderservice



mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

1.5 Ribbon负载均衡

1.5.1 发起请求的底层

template加注解, 表明这个请求要被ribbon处理。

拦截的动作是它做的

 我们点进这个接口看方法。它会拦截客户端发起的HTTP请求。

1.5.2 拉取Service

我们在这个方法上打断点。然后刷新页面重新获得数据。 

里面先获得 主机名和服务的名称。然后去找eureka拉去service。

把服务名称交给loadBanlance,loadBanlance是RibbonLoadBalancerClient对象。

 我们点进loadBanlance的excute方法。发现它根据servceId,也就是serviceName,从eureka里拉取服务列表。

 我们看getServer方法干什么的。发现实现负载均衡的策略是通过一个   Irule类

1.5.3 流程总结

1.5.4 负载均衡策略调整

从这个图看,默认的ZoneAvoidanceRule ,可能有轮换的性质。

常用的规则类。

 如何调整rule的类型?

方法一的作用是全局的,会影响到其他微服务的选择策略。

方法二:order-service,发送请求调用user-service的数据,所以在yml里定义选择userservice的策略。

 1.5.5 ribbon饥饿加载

加载一次之后,以后不用加载,服务列表会有缓存。

还有配置对哪个client做饥饿加载。

 

1.6 nacos注册中心

1.6.1 安装

解压红线。

配置文件里有端口8848。如果我们端口有用8848的,可以修改。

 bin下面的启动文件,双击可以启动。

cmd里启动 -m指定模式,这里我们先用单机模式   standalone。

在bin目录下执行命令。 

 访问consloe地址。

 登录的默认账号和密码都是nacos。

1.6.2 将服务注册到nacos

安装指南里有依赖。复制粘贴。

客户端的两个依赖注释掉。 

 然后修改这俩服务的yml文件。

nacos的配置属于Spring的配置。

1.6.3 nacos服务分级存储模型

地域划分的集群。 

配置一个实例的集群信息。配上微服务所属集群。
 

1.6.4 nacos的nacosRule负载均衡

service里改访问集群的路径。

这里当时没有上注解,所以一直没办法有负载均衡操作。

 3.user-service的权重。

1.7感觉自己的笔记没有别人记得好。停止记笔记。

微服务技术栈 - 乐心湖's Blog | 技术小白的技术博客

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值