转载

SpringCloud搭建注册中心与服务注册

上一篇文章 《微服务注册中心原理,看这篇就够了!》 介绍了注册中心的概念和原理,本文将介绍下利用Eureka搭建中心并注册服务到注册中心的过程。

本文目录

一、Eureka介绍

Eureka是Netflix开发的服务发现框架,SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。

Eureka包含两个组件:Eureka Server和Eureka Client

  • Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
  • Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。

二、搭建注册中心

首先新建一个SpringBoot项目,命名spring-cloud-eureka,然后按照下面步骤编写代码即可。

  1. pom.xml代码

    添加eureka-server的依赖,代码如下:

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

<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>Finchley.RELEASE</version><!-- eureka版本 -->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
  1. 启动类代码

    启动类添加注解@EnableEurekaServer即可,代码如下:

@EnableEurekaServer
@SpringBootApplication
public class SpringCloudEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudEurekaApplication.class, args);
}
}
  1. 配置文件

    使用yml的配置文件,application.yml配置如下:

server:
port: 9001 #服务端口
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false #是否将eureka自身作为应用注册到eureka注册中心
fetch-registry: false #为true时,可以启动,但报异常:Cannot execute request on any known server
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

配置项说明:

1. server.port=9001表示设置该服务注册中心的端口号 

2. eureka.instance.hostname=localhost表示设置该服务注册中心的hostname

3. eureka.client.register-with-eureka=false,由于我们目前创建的应用是一个服务注册中心,而不是普通的应用。默认情况下,这个应用会向注册中心(也是它自己)注册它自己,设置为false表示禁止这种默认行为

4. eureka.client.fetch-registry=false,表示不去检索其他的服务,因为服务注册中心本身的职责就是维护服务实例,它也不需要去检索其他服务
  1. 运行截图

    打开浏览器访问http://localhost:9001/,可以看到注册中心以及启动,运行截图如下:

SpringCloud搭建注册中心与服务注册

注册中心运行截图

三:注册服务

服务注册中心有了之后,我们可以向这个服务注册中心注册一个服务提供者,新建一个SpringBoot项目,命名spring-cloud-user-service,提供用户服务,然后按照下面步骤编写代码即可。

  1. pom.xml代码

    添加eureka-server的依赖,代码如下:

<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-netflix-eureka-server</artifactId>
</dependency>


</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version><!-- eureka版本 -->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
  1. 启动类代码

    启动类添加注解@EnableEurekaClient即可,代码如下:

@EnableEurekaClient
@SpringBootApplication
public class UserServiceDemoApplication {

public static void main(String[] args) {
SpringApplication.run(UserServiceDemoApplication.class, args);
}
}
  1. 配置文件

    使用yml的配置文件,application.yml配置如下:

server:
port: 8081 #服务端口
eureka:
client:
serviceUrl:
defaultZone: http://localhost:9001/eureka/
spring:
application:
name: user-service
  1. 运行截图

打开浏览器访问http://localhost:9001/,与上图相比可以看到注册中心中已经注册好了用户服务,截图如下:

SpringCloud搭建注册中心与服务注册

注册服务后注册中心截图

到此SpringCloud搭建服务注册中心与服务注册已经全部实现,有问题欢迎留言沟通哦!

完整源码地址: https://github.com/suisui2019/springboot-study

推荐阅读

1.SpringBoot整合ActiveMQ,看这篇就够了!

2.别在 Java 代码里乱打日志了,这才是正确的打日志姿势!

3.编码神器Lombok,学会后开发效率至少提高一倍!

4.利用Spring Boot+zxing,生成二维码还能这么简单

5.Spring Boot之Profile--快速搞定多环境使用与切换

限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。

关注下方公众号即可免费领取:

SpringCloud搭建注册中心与服务注册

Java碎碎念公众号

原文  http://www.cnblogs.com/haha12/p/11607276.html
正文到此结束
Loading...