了解springCloud

前言

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。


一、关于微服务

在这里插入图片描述

微服务架构

在这里插入图片描述

示例服务拆分
注意

不同微服务,不要重复开发相同业务
微服务数据独立,不要访问其他数据库
暴露接口,供其他微服务调用

二、实现跨服务远程调用

步骤一:注册RestTemplate

代码如下(示例):

@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {

    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class, args);
    }

    /**
     * @description: 创建RestTemplate并注入spring容器
     * @param:
     * @return: org.springframework.web.client.RestTemplate
     * @author: LYH
     * @date: 2021/12/7 10:23
     */
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

步骤二:服务器远程调用RestTemplate

修改order-service中的OrderService的queryOrderByid方法:

@Service
public class OrderService {

    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private RestTemplate restTemplate;

    public Order queryOrderById(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.findById(orderId);
        //2.利用RestTemplate发送http请求,查询用户
        // 2.1、url路径
        String url = "http://localhost:8081/user/"+order.getUserId();
        // 2.2、发送http请求,实现远程调用 其中url是路径,user.class是返回值的类型
        User user = restTemplate.getForObject(url, User.class);
        // 2.3、封装user当Order中去
        order.setUser(user);
        // 4.返回
        return order;
    }
}

服务调用关系

● 服务提供者:暴露接口给其它微服务调用
● 服务消费者:调用其它微服务提供的接口
● 提供者与消费者角色其实是相对的
● 一个服务可以同时是服务提供者和服务消费者


负载均衡

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

● Ribbon负载均衡规则
○ 规则接口是IRule
○ 默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询
● 负载均衡自定义方式
○ 代码方式:配置灵活,但修改时需要重新打包发布
○ 配置方式:直观,方便,无需重新打包发布,但是无法做全局配置
● 饥饿加载
○ 开启饥饿加载

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule  # 开始负载均衡的命名方式
ribbon:
  eager-load:
    enabled: true	#开启饥饿加载
    clients: usersevice   #指定饥饿加载的服务名称
 

总结

这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单了解springCloud

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值