Spring Cloud Eureka —— 服务发现与消费

ribbon简单介绍

1服务发现的任务由Eureka的客户端完成,服务消费的任务由Ribbon完成。

2Ribbon是一个基于HTTP和TCP的客户端负载均衡器,它可以在通过客户端中配置的ribbonServerList服务端列表去轮询访问以达到负载均衡的作用。

构建实例

准备工作

1启动服务注册中心Eureka-server和hello-serve服务。

通过java -jar 命令行的方式来启动两个不同端口的hello-serve。

java -jar hello-service.jar --server.port=8081
java -jar hello-service.jar --server.port=8082

2成功启动后,会在Eureka信息面板看到两个hello-serve的服务。

创建ribbon-consumer的spring-boot项目实现消费者

1创建pom.xml依赖

<dependencies>
		<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>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-ribbon</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
	</dependencies>

2创建应用主类ConusumerAppliction,通过@EnableDiscoueryclient注解让该应用注册为Eureka的客户端应用,获得服务发现的能力。创建RestTemplate的SpringBean实例,通过@LoadBalanced注解开启客户端负载均衡。

@EnableDiscoveryClient
@SpringBootApplication
public class ConsumerApplication {

	@Bean
	@LoadBalanced
	RestTemplate restTemplate() {
		return new RestTemplate();
	}
	public static void main(String[] args) {
		SpringApplication.run(ConsumerApplication.class, args);
	}

}

3创建ConsumerController累并实现/ribbon-consumer接口。

@RestController
public class ConsumerController {

    @Autowired
    RestTemplate restTemplate;

    @RequestMapping(value = "/ribbon-consumer", method = RequestMethod.GET)
    public String helloConsumer() {

        return restTemplate.getForEntity("http://HELLO-SERVICE//hello",String.class).getBody();

    }

}

4配置application.properties。

spring.application.name=ribbon-consumer
server.port=9000

eureka.client.serviceUrl.defaultZone=http://localhost:1110/eureka/

5自动ribbon-consumer。

6向http://localhost:9000/ribbon-consumer发起请求,返回“Hello World”。

7尝试多次请求,观察两个hello-serve的控制台,实现负载均衡效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值