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

1.微服务简述

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

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

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

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

黑马微服务学习(实用篇)_第1张图片

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

黑马微服务学习(实用篇)_第2张图片

黑马微服务学习(实用篇)_第3张图片

黑马微服务学习(实用篇)_第4张图片

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

黑马微服务学习(实用篇)_第5张图片

黑马微服务学习(实用篇)_第6张图片

1.1 企业需求

黑马微服务学习(实用篇)_第7张图片

 黑马微服务学习(实用篇)_第8张图片

黑马微服务学习(实用篇)_第9张图片

 黑马微服务学习(实用篇)_第10张图片

 1.2 springCloud和springBoot对应版本

黑马微服务学习(实用篇)_第11张图片

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

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

黑马微服务学习(实用篇)_第12张图片

 黑马微服务学习(实用篇)_第13张图片

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

我们目前时这样

黑马微服务学习(实用篇)_第14张图片

 我们需要做到这样

黑马微服务学习(实用篇)_第15张图片

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

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

黑马微服务学习(实用篇)_第16张图片

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

黑马微服务学习(实用篇)_第17张图片

 注入容器获得RestTemplate对象方法。黑马微服务学习(实用篇)_第18张图片

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

黑马微服务学习(实用篇)_第19张图片

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

然后把它设置到order里。

黑马微服务学习(实用篇)_第20张图片

1.4 Eureka

黑马微服务学习(实用篇)_第21张图片

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

 黑马微服务学习(实用篇)_第22张图片

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

黑马微服务学习(实用篇)_第23张图片

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

黑马微服务学习(实用篇)_第24张图片

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

黑马微服务学习(实用篇)_第25张图片

1.4.1 Eureka的作用

黑马微服务学习(实用篇)_第26张图片

 1.4.2 搭建Eureka

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

黑马微服务学习(实用篇)_第27张图片

启动类。 

 黑马微服务学习(实用篇)_第28张图片

 黑马微服务学习(实用篇)_第29张图片

测试地址,可以localhost访问。 

 黑马微服务学习(实用篇)_第30张图片

1.4.3 注册服务

黑马微服务学习(实用篇)_第31张图片

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

黑马微服务学习(实用篇)_第32张图片

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

黑马微服务学习(实用篇)_第33张图片

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


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

黑马微服务学习(实用篇)_第34张图片

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

黑马微服务学习(实用篇)_第35张图片

 黑马微服务学习(实用篇)_第36张图片

1.4.4 注册不成功得报错

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

黑马微服务学习(实用篇)_第37张图片

得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负载均衡

黑马微服务学习(实用篇)_第38张图片

黑马微服务学习(实用篇)_第39张图片

1.5.1 发起请求的底层

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

黑马微服务学习(实用篇)_第40张图片

拦截的动作是它做的

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

1.5.2 拉取Service

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

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

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

黑马微服务学习(实用篇)_第41张图片

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

黑马微服务学习(实用篇)_第42张图片

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

1.5.3 流程总结

黑马微服务学习(实用篇)_第43张图片

1.5.4 负载均衡策略调整

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

黑马微服务学习(实用篇)_第44张图片

常用的规则类。

黑马微服务学习(实用篇)_第45张图片

 如何调整rule的类型?

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

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

黑马微服务学习(实用篇)_第46张图片

 1.5.5 ribbon饥饿加载

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

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

黑马微服务学习(实用篇)_第47张图片

 黑马微服务学习(实用篇)_第48张图片

1.6 nacos注册中心

黑马微服务学习(实用篇)_第49张图片

1.6.1 安装

解压红线。

黑马微服务学习(实用篇)_第50张图片

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

黑马微服务学习(实用篇)_第51张图片

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

黑马微服务学习(实用篇)_第52张图片

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

黑马微服务学习(实用篇)_第53张图片

在bin目录下执行命令。 

黑马微服务学习(实用篇)_第54张图片

 访问consloe地址。

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

黑马微服务学习(实用篇)_第55张图片

黑马微服务学习(实用篇)_第56张图片

1.6.2 将服务注册到nacos

黑马微服务学习(实用篇)_第57张图片

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

黑马微服务学习(实用篇)_第58张图片

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

黑马微服务学习(实用篇)_第59张图片

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

nacos的配置属于Spring的配置。

黑马微服务学习(实用篇)_第60张图片

黑马微服务学习(实用篇)_第61张图片

1.6.3 nacos服务分级存储模型

黑马微服务学习(实用篇)_第62张图片

地域划分的集群。 

黑马微服务学习(实用篇)_第63张图片

配置一个实例的集群信息。配上微服务所属集群。
 黑马微服务学习(实用篇)_第64张图片

1.6.4 nacos的nacosRule负载均衡

service里改访问集群的路径。

黑马微服务学习(实用篇)_第65张图片

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

黑马微服务学习(实用篇)_第66张图片

黑马微服务学习(实用篇)_第67张图片

 3.user-service的权重。

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

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

你可能感兴趣的:(微服务,学习)