• 微服务介绍以及远程调用


    简介

    什么是微服务

    微服务是对传统单体服务进行业务拆分,拆分成多个独立的服务。微服务包括服务集群、服务网关、注册中心、配置中心、消息队列、分布式日志服务、系统监控和链路追踪、分布式缓存、分布式搜索、数据库、 Jenkins持续集成服务器以及Docker web自动打包容器,等经过良好架构设计的分布式架构方案。
    在这里插入图片描述

    微服务技术栈

    微服务治理

    注册发现

    远程调用

    负载均衡

    配置管理

    网关路由

    系统保护

    流量控制

    服务授权

    分布式事务

    熔断降级

    TCC模型

    AT模型

    Seata

    异步通信技术

    MQ消息模型

    消息堆积问题

    Spring AMQP

    仲裁消息

    消息可靠性

    延迟队列

    镜像集群

    数据持久化

    缓存技术

    缓存击穿、雪崩

    Redis主从复制

    缓存数据同步

    多级缓存分层

    Lua脚本

    Redis数据结构

    SpringDataRedis

    OpenResty

    Nginx本地缓存

    Redis分片集群

    搜索技术

    DSL语句

    ES集群

    集群脑裂

    聚合统计

    地理坐标

    RestAPI

    竞价排名

    自动补全

    拼音分词

    持续集成

    DockerCompose

    Dockerfile

    GrayLog

    Jenkins

    Docker使用

    SkyWalking

    Kubernetes

    Spring Cloud

    Spring Cloud集成了各种微服务功能组件,并基于Spring Boot实现了这些组件的自动装配,从而提供了良好的开箱即用的体验

    Spring Cloud和Spring Boot版本的关系

    在这里插入图片描述

    服务拆分的注意事项

    1、不同的微服务,不要重复开发相同的业务

    2、微服务数据独立,不要访问其他的微服务的数据库

    3、微服务可以将自己的业务暴露为接口,供其他微服务调用

    远程调用

    注意:遵循每个微服务都独立拥有自己的数据库,其他微服务不能访问自己的数据库,只能调用自己暴露的接口。为此使用Java发起HTTP请求来远程调用其他微服务暴露出来的接口。

    使用RestTemplate

    在Spring中提供了RestTemplate来使用Java发起HTTP请求

    Spring装配RestTemplate
    /**
    * 创建RestTemplate对象并注入Spring
    * 容器
    * @return
    */
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    使用RestTemplate调用远程接口
    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private RestTemplate restTemplate;
    
    public Order queryOrderById(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.findById(orderId);
        // 使用RestTemplate发起HTTP请求
        // 发送GET请求使用getForObject
        // 发送POST请求使用postForOject
        User user = restTemplate.getForObject("http://localhost:8081/user/"+order.getUserId(), User.class);
        order.setUser(user);
        // 4.返回
        return order;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  • 相关阅读:
    学C++从CMake学起
    【老军医方】在脱发过程中遇到的各种疑难杂症
    基于springboot的校园食堂订餐系统
    2023年信息安全管理与评估(赛项)评分标准第三阶段夺旗挑战CTF(网络安全渗透)
    2022-12-02 mysql列存储引擎-trigger插入数据错误-记录
    一起Talk Android吧(第三百八十回:通知的基本使用方法)
    linux(ARM)架构下的mysql安装使用(完整版)
    k8s存储学习 emptyDir 卷
    三步,金蝶K3的数据可视化了
    【工作记录】css3 grid布局笔记
  • 原文地址:https://blog.csdn.net/weixin_43730516/article/details/126924102