Eureka服务器,简单例子

服务器概念:

Eureka支持集群部署,实现高可用。

Eureka没有提供后台的存储,所有注册的服务都被保存在内存中的注册中心。他们通过心跳保存着最新的状态。

客户端存在相同的机制,同样在内存中存储了注册表信息,这样的机制提升了 eureka的性能。使得每次请求不必经过服务器端的注册中心。

服务器中存在两大对象:

1.服务提供者。

2.服务消费者(服务调用者)。

服务提供者: 主要功能:1.向服务器注册服务。2.发送心跳给服务器。3.向服务器获取注册表信息。

当服务器注册到服务器时,会提供一些自己的信息给服务器。例如:主机,端口等

服务器调用者: 主要是用来调用和发现服务,同时自身也可能作为服务被其他人调用。

 

实际应用:

@EnableEurekaServer 标记该服务器是Eureka服务

 

配置文件application.yml

#配置服务器端口
server:
  port: 8864 
#声明是否将自己作为服务注册到eureka,默认为true
eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false

#编写服务提供者

1.创建一个web 项目,添加jar包

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-netflix-eureka-client</artifactId>
   <version>1.3.1.RELEASE</version>
</dependency>

启动类加@EnableEurekaClient 标记此项目为服务提供者

创建@RestController

#编写服务调用者

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

编写yml

 
spring:
  	application:
    		name: web-api

server:
 	  port: 9001

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8864/eureka/

启动类 @EnableEurekaClient 表明是服务调用者,也作为提供者

此处的调用者同样是发布到eureka的客户端,简单来说就是eureka内部调用。调用过程中可能会部署多个实例,会涉及到负载均衡,服务器查找等问题,Netflix的项目已经帮我们解决,spring Could 已经封装,只需要简单的配置,编写少量代码即可实现。

@Bean
@LoadBalanced
public RestTemplate getRestTemplate() {
    return new RestTemplate();
}

@RequestMapping(value = "/info", method = RequestMethod.GET)
public String getStudentInfo() {
    RestTemplate restTemplate = getRestTemplate();
    String forObject =          restTemplate.getForObject("http://localhost:9000/student/info", String.class);
    System.out.println(forObject);
    return forObject;
}

RestTemplate 是spring-web下面的类,专门用来调用rest服务。RestTemplate本身不具备调用分布式服务的能力,但是被@LoadBalanced注解修饰后,就可以调用了。

 

下面在调用者服务上加@EnableDiscoveryClient,此注解的使得服务调用类有能力去发现服务,@EnableEurekaClient中其实已经包含了@EnableDiscoveryClient

浏览器访问: http://localhost:9001/stu/info

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值