微服务之间的通信的方式

本文介绍了Spring Cloud中微服务之间通信的三种方式:RestTemplate的基本使用及三种调用方式,Ribbon作为客户端负载均衡器的作用和配置,以及Feign声明式REST客户端的使用。同时,文中详细阐述了如何结合Eureka实现服务发现和负载均衡,以及Feign的便利性和工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RestTemplate的三种使用方式

SpringCloud中服务之间的两种调用RESTful接口通信的方式:

  1. RestTemplate
  2. Feign

RestTemplate是一个Http客户端,类似于HTTPClient,org但比HTTPClient更简单。我们通过RestTemplate来简单演示一下服务之间的调用,我们使用两个服务来做演示。一个商品服务,一个订单服务。首先创建一个商品服务工程:
微服务之间的通信的方式
微服务之间的通信的方式

选择相应的依赖:
微服务之间的通信的方式

项目创建完成后,编辑配置文件,需要配置服务的名称以及服务注册中心的地址:

spring:
  application:
    name: product

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
  instance:
    prefer-ip-address: true

注:如果对eureka还不太清楚的话,可以参考我的另一篇关于eureka的文章:Spring Cloud Eureka-服务注册与发现

不要忘了在启动类中,加上@EnableEurekaClient注解:

package org.zero.example.product;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient
public class ProductApplication {

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

接着创建一个controller类,用于模拟商品列表接口,提供给订单服务调用。代码如下:

package org.zero.example.product.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

/**
 * @program: product
 * @description: product demo
 * @author: 01
 * @create: 2018-09-06 22:09
 **/
@RestController
@RequestMapping("/product")
public class ProductController {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值