Skip to content
Branch: master
Find file History

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
eureka-consumer
eureka-provider
eureka-server
pom.xml
readme.md

readme.md

SpringCloud服务注册中心-eureka
这个项目是利用eureka作为注册中心实现的简单服务调用demo,主要包括以下几部分:

eureka-server

在 springboot 的服务启动类中添加@EnableEurekaServer注解即可启动一个 eureka 服务实例。
通过启动不同的配置文件可以实现启动单机版,集群版的 eureka。
- 启动单机版的配置如下:

server:
  port: 8761 # 默认为8761

eureka:
  instance:
    hostname: localhost
  client:
    # registerWithEureka 是否自己当做服务注册  fetchRegistry 屏蔽注册信息  单机版都设置为false即可
    # 也可以先设置为true,打开配置页面查看是否注册上,做一个检查
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
- 集群配置时,需要将注册到本机的服务发送到其他集群节点。可以通过如下配置:
server:
  port: 8762

eureka:
  instance:
    hostname: localhost
    prefer-ip-address: true # 通过ip访问服务实例而不是主机名
  client:
    serviceUrl:
      # 一个设置了三个实例,分别为8762,3,4。在8762的实例中将注册信息发送到其他两个实例
      defaultZone: http://localhost:8763/eureka/,http://localhost:8764/eureka/ 

启动项目后,打开localhost:port即可查看 eureka 的配置页面。

eureka-provider

服务提供者,我在这里就是简单的将实例信息结合请求进行进行了返回 在启动类中添加@EnableEurekaClient即可将服务注册到注册中心上

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

@GetMapping(value = "/provider")
public String sayHello(@RequestParam(value = "name", defaultValue = "consumer") String name) {
    return "hello," + name + "。 i am the provider from port :" + port;
}

可以通过使用不同的配置文件,里面修改了不同的端口,从而启动多个实例。 在配置文件中需要声明这个项目的名称,消费者后面通过项目名称获取访问路径

spring:
  application:
    name: eureka-provider

可以通过命令行,ide等方式来启动,我是通过idea来启动的。

eureka-consumer

服务的调用者,实际来对提供者的信息来进行调用 在启动类中添加@EnableDiscoveryClient@EnableEurekaClient都可以将服务注册到注册中心
可以通过服务名来得到实例的地址和端口,从而获取请求地址,进行业务路径拼接访问。
也可以直接使用服务名来直接访问,但需要在声明RestTemplate时添加@LoadBalance注解。
默认的访问方式是轮询访问。

You can’t perform that action at this time.