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

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

上一篇:Servelt动态Web资源开发技术(java程序运行在服务器端)


下一篇:简单代码画红包和写祝福