• 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 46 日期和时间函数(一)
    最长公共子序列(最详细的动态规划案例)
    k8s--基础--22.13--storageclass--类型--ScaleIO
    MySQL补充,视图,触发器,事务,MVCC多版本并发控制,内置函数,流程控制,索引,慢查询优化,测试索引,联合索引
    扬州大学858程序设计与数据结构专业课(资料篇)
    植被参数遥感反演与数据同化
    微服务入门
    测试到底是个啥
    软件压力测试:测试方法与步骤详解
    “数字化重构系统,搞定 CEO 是第一步”
  • 原文地址:https://blog.csdn.net/Ms_future/article/details/126904751