Eureka 服务的注册与发现

(一)服务的注册于发现(eureka);

Eureka Server: 服务注册中心,负责服务列表的注册、维护和查询等功能

在Idea里,新建项目,选择Spring initializer.

下面的pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.example</groupId>
	<artifactId>spring-clound-eureka-demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>spring-clound-eureka-demo</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.0.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud.version>Greenwich.M3</spring-cloud.version>
	</properties>

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

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

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

</project>

配置properties文件参数;

server.port=8882

#域名
eureka.instance.hostname=localhost

#禁用 Eureka的客户端注册行为
eureka.client.register-with-eureka=false

eureka.client.fetch-registry=false

#eureka注册中心服务地址
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

在启动类上添加注解@EnableEurekaServer

// @EnableEurekaServer 代表启动注册服务中心
@EnableEurekaServer
@SpringBootApplication
public class SpringCloundEurekaDemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringCloundEurekaDemoApplication.class, args);
	}
}

  

启动项目,打开连接  http://localhost:8882

二.创建一个服务提供者(Eureka-client)

服务提供方,同时也是一个Eureka Client,负责将所提供的服务向Eureka Server进行注册、续约和注销等操作。注册时所提供的主要数据包括服务名、机器ip、端口号、域名等,从而能够使服务消费方能够找到

Eureka服务器我们已经编写好了,接下来我们就可以编写一个Eureka的客户端了。这个客户端可能是一个服务提供者,也可能是一个服务消费者,甚至两者都是。

我们先编写一个简单的Eureka Client

在Idea里,新建项目,选择Spring initializ.

下面的pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.example</groupId>
	<artifactId>spring-clound-ribbon-example</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>spring-clound-ribbon-example</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.0.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud.version>Greenwich.M3</spring-cloud.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
			<version>1.4.4.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
		</dependency>
		<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>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

</project>

配置yml文件参数;(换下配置方式)

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8882/eureka/
server:
  port: 8883
spring:
  application:
    name: service-hello

  

在启动类上添加注解@EnableEurekaClient

// @ EnableEurekaClient   表示申明自己是一个发服务提供者;
@EnableEurekaClient
@SpringBootApplication
public class SpringCloundEurekaClientExampleApplication {

   public static void main(String[] args) {
      SpringApplication.run(SpringCloundEurekaClientExampleApplication.class, args);
   }
}

  

  

创建conroller

@RestController
public class HelloController {
    @Value("${server.port}")
    String port;

    @Value("${spring.application.name}")
    String name;

    @RequestMapping("/index")
    public String index() {
        return "服务提供者client:" + name + "服务端口:" + port;
    }
}

  

  

启动项目

然后我们再来看一下服务注册中心;就会看到,已经注册了一个服务提供者;

为了接下来测试Ribbon负载

我们将client的配置文件属性注册的端口改为8884;;然后在IDEA把该服务再启动一个实例

(把single instance only勾选去掉)

回到服务中心,已经有两个client了

原文地址:https://www.cnblogs.com/skyLogin/p/10002472.html

时间: 2024-08-02 15:52:37

Eureka 服务的注册与发现的相关文章

Eureka 服务的注册和发现

一.新建一个 maven module 子项目 microservicecloud-eureka-server 二.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht

springCloud(3):微服务的注册与发现(Eureka)

一.简介 服务消费者需要一个强大的服务发现机制,服务消费者使用这种机制获取服务提供者的网络信息.即使服务提供者的信息发生变化,服务消费者也无须修改配置. 服务提供者.服务消费者.服务发现组件三者之间的关系大致如下: 1.各个微服务在启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息. 2.服务消费者可以从服务发现组件查询服务提供者的网络地址,并使用该地址调用服务提供者的接口. 3.各个微服务与服务发现组件使用一定机制(如:心跳)通信,服务发现组件如长时间无法与某微服务

史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

最新Finchley版本请访问:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/或者http://blog.csdn.net/forezp/article/details/81040925 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境简单,可以在开发人员的电脑上跑.另外说明spring cl

springcloud 的学习(一) 服务的注册与发现

水滴石穿 知道springcloud 很久了,但是一直没有时间学习和练习,正好这两天有这个冲动,那就趁热打铁...!!!!! 搜寻了一些资料后发现了一个简单易上手的系列博客 http://blog.csdn.net/forezp/article/details/70148833   借此练手....感谢前辈的知识总结和分享 -------------------------------------------------------------------- 1.创建项目,我这里使用的是IDE,

使用consul实现服务的注册和发现

服务注册 - 服务进程在注册中心注册自己的位置.它通常注册自己的主机和端口号,有时还有身份验证信息,协议,版本号,以及运行环境的详细资料. 服务发现 - 客户端应用进程向注册中心发起查询,来获取服务的位置.服务发现的一个重要作用就是提供一个可用的服务列表 服务定义的格式类似如下: [plain] view plain copy { "service":{ "id": "jetty", "name": "jetty&q

go微服务框架go-micro深度学习(三) Registry服务的注册和发现

服务的注册与发现是微服务必不可少的功能,这样系统才能有更高的性能,更高的可用性.go-micro框架的服务发现有自己能用的接口Registry.只要实现这个接口就可以定制自己的服务注册和发现. go-micro在客户端做的负载,典型的Balancing-aware Client模式. 服务端把服务的地址信息保存到Registry, 然后定时的心跳检查,或者定时的重新注册服务.客户端监听Registry,最好是把服务信息保存到本地,监听服务的变动,更新缓存.当调用服务端的接口是时,根据客户端的服务

企业级 SpringCloud 教程 (一) 服务的注册与发现(Eureka)

一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境简单,可以在开发人员的电脑上跑.另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解,如果不了解的话可以看这篇文章:2小时学会springboot.另外对于"微服务架构" 不了解的话,可以通过搜索引擎搜索"微服务架构

Spring Cloud学习(一) 服务的注册与发现(Eureka)

1 创建服务注册中心 在这里,我需要用的组件是Spring Cloud Netflix的Eureka ,eureka是一个服务注册和发现模块. 1.1    创建model工程作为服务注册中心Eureka-server 项目结构 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xml

第一篇:服务的注册与发现Eureka(Finchley版本)

一 springcloud简介 目前的springcloud的版本 Finchley.RELEASE springboot的版本 2.0.3.RELEASE Finchley版本的官方文档如下: http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁