feign调用走不走网关全局拦截_GitHub - zspdaodao/SpringCloudDemo: 商品微服务Demo,包括注册中心Euraka、通信Feign、网关Zuul、熔断器Hystri...

本文介绍了SpringCloud中Eureka作为服务注册与发现,Feign进行服务间的通信,以及Zuul作为API网关实现路由、过滤器功能。通过示例展示了如何使用Feign、RestTemplate以及Zuul过滤器进行服务调用,并讨论了服务降级和熔断策略。同时,提到了配置服务器ConfigServer和使用Bus进行配置动态刷新。
摘要由CSDN通过智能技术生成

SpringCloudDemo

商品微服务

Eureka 服务注册与发现

Eureka Server 注册中心

pom

org.springframework.cloud

spring-cloud-starter-netflix-eureka-server

Application加注解

@EnableEurekaServer

application.yml

## spring配置

spring:

application:

name: eureka

## 端口

server:

port: 8761

## eureka相关配置

eureka:

client:

# 服务端可选false不进行自注册

register-with-eureka: false

# 服务注册地址

service-url:

defaultZone: http://127.0.0.1:8761/eureka/

Eureka Client 服务注册

pom

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

org.springframework.boot

spring-boot-starter-web

Application加注解

@EnableDiscoveryClient

application.yml

spring:

application:

name: product

# eureka配置

eureka:

client:

service-url:

defaultZone: http://127.0.0.1:8761/eureka/

服务发现分两种方法

客户端发现(客户端可知道后端服务数量,ip)

Eureka

服务端发现(代理。客户端对后端服务不可知)

Nginx

Zookeeper

微服务通信方式

HTTP

SpringCloud

RPC

Dubbo

SpringCloud应用间通信方式

应用A

ServerController

@RestController

@RequestMapping

public class ServerController {

@GetMapping("/msg")

public String msg() {

return "this is product";

}

}

应用B

RestTemplate实现

ClientController

package com.springclouddemo.order.controller;

import lombok.extern.slf4j.Slf4j;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.cloud.client.ServiceInstance;

import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;

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

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

import org.springframework.web.client.RestTemplate;

/**

* author: mSun

* date: 2018/10/15

*/

@RestController

@Slf4j

public class ClientController {

@Autowired

private LoadBalancerClient loadBalancerClient;

@Autowired

private RestTemplate restTemplate;

@GetMapping("/getProductMsg")

public String getProductMsg() {

// 方法一(直接使用restTemplate,url写死)

// RestTemplate restTemplate = new RestTemplate();

// String url = "http://127.0.0.1:8080/msg";

// String response = restTemplate.getForObject(url,String.class);

// 方法二(利用loadBalancerClient通过应用名获取url,然后使用restTemplate获取)

// ServiceInstance serviceInstance = loadBalancerClient.choose("PRODUCT");

// RestTemplate restTemplate = new RestTemplate();

// String url = String.format("http://%s:%s",serviceInstance.getHost(),serviceInstance.getPort()+"/msg");

// String response = restTemplate.getForObject(url,String.class);

// 方式三(利用@LoadBalanc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值