微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(一):RestTemplate远程调用、Eureka注册中心、Ribbon负载均衡


一、微服务技术栈

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、微服务

2.1 微服务架构的演变

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 微服务技术对比

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.3 SpringCloud

官网:https://spring.io/projects/spring-cloud

在这里插入图片描述
在这里插入图片描述

三、服务拆分与远程调用

3.1 服务拆分

注意事项:

  1. 不用微服务不要重复开发相同业务
  2. 微服务数据独立,不要访问其他数据库的微服务
  3. 微服务将自己的业务暴露为接口,供其他微服务调用

3.2 RestTemplate远程调用

在这里插入图片描述

如果将订单order服务与用户user服务分开,当订单服务想要用户信息时,就可利用RestTemplate远程调用实现。
在这里插入图片描述
在这里插入图片描述

3.3 服务提供者与消费者

服务提供者:一次业务中,被其他为服务调用的服务(提供接口给其他微服务)
服务消费者:一次业务中,调用其他微服务的服务(调用其它微服务提供的接口)
提供者和消费者是相对的,一个服务既可以是提供者也可以是消费者。

四、Eureka注册中心

4.1 远程调用的问题

在这里插入图片描述

4.2 eureka原理

在这里插入图片描述
在这里插入图片描述

4.3 搭建EurekaServer

在这里插入图片描述

4.4 服务注册

在这里插入图片描述

在这里插入图片描述
可以看到这里启动四个服务,一个eureka的,一个订单order的,两个用户user的
在这里插入图片描述

4.5 服务发现与负载均衡

可以看到3.2远程调用中使用的url地址是硬编码形式,灵活性很差。
在4.4中我们启动了两个订单order服务,添加@LoadBalanced注解实现负载均衡,当我们连续两次访问订单服务时,会访问不同的order服务,从而实现负载均衡。
在这里插入图片描述

4.6 总结

在这里插入图片描述

五、Ribbon实现负载均衡

5.1 负载均衡原理

在这里插入图片描述
在这里插入图片描述

5.2 负载均衡策略

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第一种方式是针对全体,即order服务访问任何微服务都是一样的负载均衡规则;第二种方式是针对具体的,即order服务访问某个具体的微服务的负载均衡规则。

5.3 饥饿加载—懒加载

在这里插入图片描述
当order服务要对多个微服务实行饥饿加载,appliaction.xml如下:

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
    username: root
    password: root
    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:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka

userservice: # 要访问的具体微服务的名字
  ribbon: # 负载均衡规则
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule  # 设置负载均衡规则,方式二:规则为


ribbon:
  eager-load:
    enabled: true # 开启饥饿加载
    clients: # 指定饥饿加载的服务名称
      - userservice

5.4 总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值