springcloud(2):服务注册与发现

目录

实例

服务端

客户端

测试

集群


上一篇文章我们介绍了eureka服务注册中心的搭建,这篇文章介绍一下如何使用eureka服务注册中心,搭建一个简单的服务端注册服务,客户端去调用服务使用的案例。案例中有三个角色:服务注册中心、服务提供者、服务消费者,其中服务注册中心就是我们上一篇的eureka单机版启动既可,流程是首先启动注册中心,服务提供者生产服务并注册到服务中心中,消费者从服务中心中获取服务并执行。

实例

服务端

(1)添加依赖

<!-- 注册中心:客户端 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>

(2)配置文件

spring.application.name=spring-cloud-producer
server.port=9000
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/

(3)启动类添加@EnableDiscoveryClient

(4)controller

@RestController
public class HelloController {
	private final Logger logger = LoggerFactory.getLogger(HelloController.class);
	@RequestMapping("/hello")
    public String index(@RequestParam String name) {
        return "hello "+name+",this is first messge";
    }
}

客户端

(1)添加依赖

<!-- 注册中心:客户端 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
		<!-- 远程访问 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-openfeign</artifactId>
		</dependency>

(2)配置文件

spring.application.name=spring-cloud-consumer
server.port=9001
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
#用于远程调用的熔断
feign.hystrix.enabled=true

(3)启动类添加

@EnableDiscoveryClient//启用服务注册与发现
@EnableFeignClients//启用feign进行远程调用

(4)interface

@FeignClient(name= "spring-cloud-producer",fallback = HelloRemoteHystrix.class)
public interface HelloRemote {
	@RequestMapping(value = "/hello")
    public String hello(@RequestParam(value = "name") String name);

}

(5)controller

@RestController
public class ConsumerController {
	@Autowired
    HelloRemote HelloRemote;
	
    @RequestMapping("/hello/{name}")
    public String index(@PathVariable("name") String name) {
        return HelloRemote.hello(name);
    }
   
}

测试

集群

修改spring-cloud-producer

配置文件

spring.application.name=spring-cloud-producer
server.port=9004
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/

controller

@RequestMapping("/hello")
    public String index(@RequestParam String name) {
        return "hello "+name+",this is producer 2  send first messge";
    }

部署spring-cloud-producer,访问http://localhost:9001/hello/fdfd,效果交替返回。可以实现负载均衡功能

猜你喜欢

转载自blog.csdn.net/qq_42683700/article/details/85244271
今日推荐