springcloud 子项目怎么导入_使用eclipse一步一步创建SpringCloud项目(二)—— 使用feign和ribbon调用微服务...

本文介绍了如何在Eclipse中创建SpringCloud项目,包括服务提供者service-hi的创建、配置及启动类、测试控制器的编写。接着详细讲述了服务调用者service-consumer的构建,添加Eureka、OpenFeign依赖,以及启用Feign和Ribbon进行服务调用和负载均衡。最后,通过测试接口展示了负载均衡的效果。

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

一、创建服务提供者service-hi

1、创建子项目方法类似eureka,略

2、修改pom文件,主要是添加jar包

4.0.0

com.landcode

land

1.0.0-SNAPSHOT

land-service-hi

com.landcode

land-common

1.0.0-SNAPSHOT

org.springframework.cloud

spring-cloud-starter-netflix-eureka-server

land-service-hi // jar包名

org.springframework.boot

spring-boot-maven-plugin

repackage

org.apache.maven.plugins

maven-compiler-plugin

utf-8

1.8

1.8

3、resource目录下添加配置文件application.yml

server:

port: 8855

spring:

application:

name: service-hi

eureka:

instance:

prefer-ip-address: true #开启显示IP地址

instance-id: ${spring.cloud.client.ip-address}:${server.port} #eureka页面显示IP地址:端口号

client:

serviceUrl:

defaultZone: http://localhost:8761/eureka/

4、新建启动类,注意加上@EnableEurekaClient 注解,到eureka 注册服务

@SpringBootApplication

@EnableEurekaClientpublic classHiApplication {public static voidmain(String[] args) {

SpringApplication.run(HiApplication.class, args);

}

}

5、新建一个测试controller,方便服务调用方测试。测试功能中会返回服务方的端口号,方便做负载均衡测试

@RestControllerpublic classHiController {

@Value("${server.port}")privateString port;

@RequestMapping(value= "/hi")publicString hi() {return "hi " + port; //返回端口号,方便负载均衡功能测试

}

}

6、新建子项目service-consumer 作为服务调用方,方法类似eureka(略),修改pom文件,添加eureka、openfeign的jar包

4.0.0

com.landcode

land

1.0.0-SNAPSHOT

land-service-consumer

com.landcode

land-common

1.0.0-SNAPSHOT

org.springframework.cloud

spring-cloud-starter-netflix-eureka-server

org.springframework.cloud

spring-cloud-starter-openfeign

land-service-consumer

org.springframework.boot

spring-boot-maven-plugin

repackage

org.apache.maven.plugins

maven-compiler-plugin

utf-8

1.8

1.8

7、resource目录添加项目配置文件application.yml

server:

port: 8866

spring:

application:

name: service-consumer

eureka:

instance:

prefer-ip-address: true #开启显示IP地址

instance-id: ${spring.cloud.client.ip-address}:${server.port} #eureka页面显示IP地址:端口号

client:

serviceUrl:

defaultZone: http://localhost:8761/eureka/

8、添加项目启动类,@EnableFeignClients 表示使用feign调用服务接口,Ribbonclient 注解表示采用ribbon做负载均衡,configuration = RibbonConfig.class, RibbonConfig 是Ribbon 负载均衡机制配置类

@SpringBootApplication

@EnableEurekaClient

@EnableFeignClients(basePackages= { "com.landcode.service.consumer.service"})

@RibbonClient(name= "service-hi", configuration = RibbonConfig.class)public classConsumerApplication {public static voidmain(String[] args) {//TODO Auto-generated method stub

SpringApplication.run(ConsumerApplication.class, args);

}

@Bean

@LoadBalancedpublicRestTemplate restTemplate() {return newRestTemplate();

}

}

9、RibbonConfig配置类,指定使用某种负载均衡策略

@Configurationpublic classRibbonConfig {

@Resource

IClientConfig clientConfig;

@BeanpublicIRule ribbonRule(IClientConfig clientConfig) {//return new RandomRule();//随机选择策略

return newWeightedResponseTimeRule();

}

}

10、新建service,调用服务service-hi,会自动采用ribbon的负载均衡策略

@FeignClient(value = "service-hi")public interfaceITestHi {

@RequestMapping("/hi")publicString testHi();

}

11、新建测试 controller,测试服务调用和负载均衡。这里注意:如果ITestHi还有实现类bean的话,注入时注意通过name区分

@RestControllerpublic classTestHiController {

@AutowiredprivateITestHi testHi;

@RequestMapping("/consumer/hi")publicString testHi() {returntestHi.testHi();

}

}

12、启动eureka,启动几个service-hi服务(只需修改为不同端口号),启动service-consumer服务,打开浏览器输入http://192.168.0.3:8866/consumer/hi 调用服务消费测试接口,可以看见每次调用打印了服务提供方不同的端口号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值