首页 > 其他分享 >SpringCould总结 | 第四篇 服务负载均衡feign

SpringCould总结 | 第四篇 服务负载均衡feign

时间:2023-09-13 11:35:38浏览次数:33  
标签:feign SpringCould springframework server org import 第四篇 cloud


//工程结构

SpringCould总结 | 第四篇 服务负载均衡feign_maven

//pom文件

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.spc.feign.server</groupId>
	<artifactId>spc-feign-server</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.8.RELEASE</version>
		<relativePath />
	</parent>

	<name>eurake-server</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-ribbon</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-feign</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

//配置文件

spring.application.name=spc-feign-server
server.port=2500

eureka.client.service-url.defaultZone=http://localhost:1000/eureka/

#eureka.instance.preferIpAddress=true
#eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}

//服务类

package com.spc.feign.server.spc_feign_server;

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(value = "SPC-SERVICE-ORDER")
public interface AppService {
	
	@RequestMapping(value = "/queryOrderStatusById", method = RequestMethod.GET)
	String queryOrderStatusById(@RequestParam(value = "orderId") String orderId);
	
}
package com.spc.feign.server.spc_feign_server;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class AppController {

    @Autowired
    AppService appService;
    
    @RequestMapping(value = "/queryOrderStatusById",method = RequestMethod.GET)
    public String queryOrderStatusById(@RequestParam String orderId){
        return appService.queryOrderStatusById(orderId);
    }
}
package com.spc.feign.server.spc_feign_server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class FeignServer {

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

//1.启动eureka注册中心

//2.注册启动spc-service-order 3001端口启动 修改端口3002再启动一次

//3.启动feign服务

//运行结果

SpringCould总结 | 第四篇 服务负载均衡feign_maven_02

SpringCould总结 | 第四篇 服务负载均衡feign_maven_03


SpringCould总结 | 第四篇 服务负载均衡feign_spring_04



标签:feign,SpringCould,springframework,server,org,import,第四篇,cloud
From: https://blog.51cto.com/ratelcloud/7453127

相关文章

  • Open Feign调用返回值失败: feign.codec.DecodeException: syntax error, pos 1
    【问题描述】使用OpenFeign调用第三方微服务的时候,可以找到对应的微服务和方法,只是在返回数据的时候报错了,具体报错信息如下:2023-09-0809:42:42.035INFO7---[http-nio-8233-exec-9]c.c.common.config.seata.FeignDecoder:feign调用响应:app-websocket-test2023-09-0809......
  • SpringCloud:Feign实现微服务之间相互请求
    上篇文章说了通过RestTemplate实现微服务之间访问:https://blog.csdn.net/Ber_Bai/article/details/125460941,这篇文章将通过Feign实现微服务之间访问。代码基于RestTemplate实现微服务之间访问基础上进行修改。......
  • 关于openfeign的使用以及降级
    首先第一步导入依赖:<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency> 然后编写Feign接口,注意加@feig......
  • SpringCloud - Feign
    目录Feign入门Feign入门先看RestTemplate发起远程调用的代码:Stringurl="http://userservice/user/"+order.getUserId();Useruser=restTemplate.getForObject(url,User.class);存在以下问题:代码可读性差,编程体验不统一参数复杂URL难以维护......
  • SpringBoot+Nacos+OpenFeign实现服务的注册、发现、远程调用
    一、概述微服务的开发必定会用到SpringBoot、Nacos(服务发现、注册、配置中心)、OpenFeign(服务远程调用,也就是通过注解调用其他服务的接口)。今天写这篇是想把这三个功能集成在一起。让他们一起参与微服务的开发工作。要实现的目标:nacos要能够注册及发现服务,openfeign......
  • 手写Openfeign实现原理——极简版
    文章目录前言Openfeign实现思路前期准备基本依赖项开始实现自定义注解自定义代理类定义创建代理对象的工厂InstantiationAwareBeanPostProcessor实现bean的注入OpenInstantiationAwareBeanPostProcessor自定义feign接口启动类小结踩坑记录@Import@Component和@Configuration区别......
  • 多线程学习第四篇
    4、线程同步机制并发:同一对象被多个线程同时操作(抢票)线程同步是一个等待机制,多个需要同时访问次对象的线程进入这个对象的等待池形成队列,等待前一个线程使用完毕,下一个线程才能使用。形成线程安全的条件:队列和锁由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也......
  • 全局调用链路traceId网关到业务层、feign调用统一问题记录
           项目里面使用的traceId是基于skywalking进行打印的,但是实际使用的过程中发现网关处的traceId为空,而且feign调用其他服务时候的traceId都不一样。显示如下:       网关traceId为空:           基于此,想要把项目里面的......
  • Feign-性能优化
         ......
  • Feign的自定义配置
           ......