【SpringCloud(1)】初识微服务架构:创建一个简单的微服务;java与Spring与微服务;初入RestTemplate

微服务架构是What??

微服务架构是一种架构模式,它提出将单一应用程序划分为一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。

每个服务允许在其独立的进程中,服务于服务间采用轻量级的通信机制互相协作(通常是Http协议的RESTful API或RPC协议)。

每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建

SpringCloud

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

其中包括了:服务注册与发现、服务调用、服务熔断、负载均衡、服务降级、服务消息队列、配置中心管、服务网关、服务监控、全链路追踪、自动化构建部署、服务定时任务调度操作

SpringCloud 技术栈



创建SpringCloud

通常由一个大的maven项目中包括子项目:

maven主项目:

​ springboot项目2(集成SpringCloud等jar包);

​ springboot项目2(集成SpringCloud等jar包);

当所有子项目组合起来就是SpringCloud;

SpringCloud项目的版本控制非常严苛。请依据版本来管理其他所依赖框架的版本

RestTemplate

  • HttpClient 的实现接口

使用restTemplate访问restful接口非常的简单粗暴无脑

(url,requestMap,ResponseBean.class)这三个参数分别代表:

  1. REST请求地址
  2. 请求参数
  3. HTTP响应转换被转换成的对象类型
java 复制代码
@Slf4j
@RestController
public class OrderController {

    public static final String PAYMNT_URL = "http://localhost:8001";

    @Resource
    private RestTemplate restTemplate;

    @GetMapping("/consumer/payment/create")
    public CommonResult<Payment> create(Payment payment){
        return restTemplate.postForObject(PAYMNT_URL+"/payment/create",payment,CommonResult.class);
    }

    @GetMapping("/consumer/payment/get/{id}")
    public CommonResult<Payment> getPayment(@PathVariable("id") Long id){
        return restTemplate.getForObject(PAYMNT_URL+"/payment/get/"+id,CommonResult.class);
    }
}

踩坑

发送请求,提示请求成功

json 复制代码
{
    "code": 200,
    "message": "插入数据库成功",
    "data": 1
}

但是数据为回填为null

请注意在对数据库操作前,两个模块之间接收参数是否使用RequestBody注解接收了!

两模块之间接收消息走的是json,若不使用注解,将会造成数据丢失

java 复制代码
@PostMapping("/create")
public CommonResult create(@RequestBody Payment payment){
    int result = paymentService.create(payment);
    log.info("********插入结果:"+result);
    if (result>0){
        return new CommonResult(200,"插入数据库成功",result);
    }else
    {
        return new CommonResult(500,"插入数据库失败",null);
    }
}

🥸🏏SpringCloud微服务专栏

  1. 【SpringCloud(1)】初识微服务架构:创建一个简单的微服务;java与Spring与微服务;初入RestTemplate

💕👉博客专栏

相关推荐
文心快码BaiduComate27 分钟前
百度云与光本位签署战略合作:用AI Agent 重构芯片研发流程
前端·人工智能·架构
Derek_Smart43 分钟前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP2 小时前
MyBatis-mybatis入门与增删改查
java
JavaTalks3 小时前
高并发保护实战:限流、熔断、降级如何配合落地
后端·架构·设计
stark张宇4 小时前
微服务架构必备:Gin + gRPC + Consul + Nacos + GORM 打造用户服务
微服务·gin·grpc
孟陬5 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
想用offer打牌5 小时前
一站式了解四种限流算法
java·后端·go
兆子龙5 小时前
别再用 useState / data 管 Tabs 的 activeKey 了:和 URL 绑定才香
前端·架构
葫芦的运维日志5 小时前
Higress鉴权限流插件架构深度解析
架构
绝无仅有5 小时前
Redis过期删除与内存淘汰策略详解
后端·面试·架构