• SpringCloud-01


    版本选择:

            cloud:Hoxton.SR1        boot:2.2.2.RELEASE        cloud alibaba:2.1.0RELEASE

            Java:java8                   Maven:3.5及以上               MySQL:5.7及以上


    一 :微服务架构入门

    架构理论:

            分布式架构一般包含:

                    服务注册与发现        服务调用        服务熔断        负载均衡        服务降级

                    服务消息队列        配置中心管理        服务网关        服务监控        

                    全链路追踪        自动化构建部署        服务定时任务调度

    SpringCloud:

            分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶

    一般使用的技术栈:

            服务注册与发现:EUREKA        Zookeeper        Consul        Nacos

            服务负载与调用:Ribbon        LoadBalancer

            服务负载与调用:Feign        OpenFeign

            服务熔断降级:Hystrix        resilience4j        sentinel

            服务网关:Zuul        Zuul2        gateway

            服务分布式配置:Config        Nacos

            服务总线:Bus        Nacos


     二:服务之间的调用

            RestTemplate:

                    RestTemplate提供了多种便捷访问远程Http服务的方法,
                    是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集 

            

           向容器注入RestTemplate

    1. package com.chen.springcloud.config;
    2. import org.springframework.context.annotation.Bean;
    3. import org.springframework.context.annotation.Configuration;
    4. import org.springframework.web.client.RestTemplate;
    5. /**
    6. * Created by 莫荒 on 2022/9/17 20:09
    7. */
    8. @Configuration
    9. public class ApplicationContextConfig {
    10. @Bean
    11. public RestTemplate getRestTemplate(){
    12. return new RestTemplate();
    13. }
    14. }

            controller调用即可

    1. package com.chen.springcloud.controller;
    2. import com.chen.springcloud.entities.CommonResult;
    3. import com.chen.springcloud.entities.Payment;
    4. import lombok.extern.slf4j.Slf4j;
    5. import org.springframework.web.bind.annotation.GetMapping;
    6. import org.springframework.web.bind.annotation.RestController;
    7. import org.springframework.web.client.RestTemplate;
    8. import javax.annotation.Resource;
    9. /**
    10. * Created by 莫荒 on 2022/9/17 20:23
    11. */
    12. @RestController
    13. @Slf4j
    14. public class OrderController {
    15. public static final String PAYMENT_URL="http://localhost:8001";
    16. @Resource
    17. private RestTemplate restTemplate;
    18. @GetMapping("/consumer/payment/create")
    19. public CommonResult create(Payment payment){
    20. return restTemplate.postForObject(PAYMENT_URL+"/payment/create",payment,CommonResult.class);
    21. }
    22. }

    三:工程重构

              工程中有重复的部分,为减少冗余,新建一个module,用于放置重复部分

     clean后install,打包便于给其他服务引用

     需要引用的服务在pom中引入

  • 相关阅读:
    Python从入门到项目实战————程序逻辑结构
    uniapp 安装 u-view 组件库
    每个开发都应该懂的正则表达式
    Windows下QT实现托盘程序及系统托盘刷新
    Leetcode(695)——岛屿的最大面积
    找准边界,吃定安全 | 高性能硬件防御问题难解?硬件加速引擎闪亮登场
    【监督学习】基于合取子句进化算法(CCEA)和析取范式进化算法(DNFEA)解决分类问题(Matlab代码实现)
    50etf期权最多能开仓多少手?
    通用监控视频web播放方案
    轻量级神经网络算法-总结对比
  • 原文地址:https://blog.csdn.net/Ms_future/article/details/126904751