ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-02-28 19:31:07  阅读:239  来源: 互联网

标签:学习 服务 service 1.5 nacos eureka 实用 Eureka 黑马


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 | 技术小白的技术博客

标签:学习,服务,service,1.5,nacos,eureka,实用,Eureka,黑马
来源: https://blog.csdn.net/m0_47113287/article/details/123139984

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有