SpringCloud技术指南系列(一)服务注册发现之Eureka注册中心
SpringCloud技术指南系列(一)服务注册发现之Eureka注册中心
SpringCloud所谓的服务注册与发现,流程大致是:
- 将Springboot微服务客户端项目的地址等信息,通过网络发送到注册中心,由注册中心保存下来。
- 另一个客户端B访问已经注册到注册中心的服务A,通过注册中心提供的域名解析方式,解析出服务A的地址等信息。
- 如果提供服务A的客户端有多个,就按照某个策略(比如轮询、负载均衡等)选取一个地址返回。
- 客户端B访问注册中心返回的地址,获取结果,这里注意,是B直接访问A,而不是注册中心转发,因此要保证B和A是互通的。
目前服务发现的解决方案有Eureka,Consul,Zookeeper等,这三个是SpringCloud官方支持的。
本篇先讲下Eureka的服务注册发现的注册中心,因为它的注册中心是需要自己搭建的。
代码可以在SpringBoot组件化构建https://www.pomit.cn/java/spring/springcloud.html中的EurekaRegistry组件中查看,并下载。
首发地址:
品茗IT-同步发布
品茗IT提供在线支持:
一键快速构建Spring项目工具
一键快速构建SpringBoot项目工具
一键快速构建SpringCloud项目工具
一站式Springboot项目生成
Mysql一键生成Mybatis注解Mapper
Mysql一键生成SpringDataRest项目
如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。
一、引入依赖
需要引入spring-boot-starter-web和spring-cloud-starter-netflix-eureka-server。
依赖如下:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.pomit</groupId>
<artifactId>springcloudwork</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>EurekaRegistry</artifactId>
<name>EurekaRegistry</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven-jar-plugin.version>2.6</maven-jar-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
父模块pom文件可以在https://www.pomit.cn/spring/SpringCloudWork/pom.xml获取。
二、配置eureka注册中心
这里使用yaml文件写配置,application.yml:
server:
port: 8888
spring:
application:
name: eurekaRegistry
eureka:
instance:
hostname: localhost
prefer-ip-address: true
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
这里面,包含了端口、应用名、注册信息、方式。
spring.application.name是标识了应用名,注册到eureka之后,显示的就是它。
eureka.instance.prefer-ip-address是使用ip地址,如果不写它,默认是域名,那样测试起来很麻烦。
eureka.client这个,是配置是否将本服务也注册为客户端,这里不作为客户端,尽量只作为纯净版的注册中心。
三、启动注册中心
3.1 启动类
使用@EnableEurekaServer注解启动类,则该项目将作为注册中心使用。
EurekaRegistryApplication :
package cn.pomit.springbootwork.eurekaregistry;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class EurekaRegistryApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaRegistryApplication.class, args);
}
}
3.2 Eureka的管理页面
浏览器中输入http://127.0.0.1:8888/
,可以查看Eureka的管理页面,可以看到有哪些服务注册上来。
如图所示:
3.3 测试下应用的Http接口
EurekaRegistryRest :
package cn.pomit.springbootwork.eurekaregistry.web;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/eurekaRegistry")
public class EurekaRegistryRest {
@RequestMapping(value = "/test", method = { RequestMethod.GET })
public String welCome() {
return "Hello, Hello";
}
}
浏览器访问下test,如果接收到数据,应用正常启动。
快速构建项目
Spring组件化构建
SpringBoot组件化构建
SpringCloud服务化构建
喜欢这篇文章么,喜欢就加入我们一起讨论SpringBoot使用吧!
还没有评论,来说两句吧...