Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)

什么是Eureka?

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Spring Cloud将它集成在其他子项目spring-cloud-netflix中,以实现spring cloud服务发现功能。

 

 

 

Spring Cloud和Dubbo

    SpringCloud整合了一套较为完整的微服务解决方案框架,而Dubbo只是解决了微服务的几个方面的问题

 

content     Dubbo    Spring Cloud
服务注册中心 zookeeper Spring Cloud Netflix Eureka
服务调用方式 RPC REST API
服务网关 Spring Cloud Netflix Zuul
断路器 不完善 Spring Cloud Netflix Hystrix
分布式配置 Spring Cloud Config
服务跟踪 Spring Cloud Sleuth
消息总线 Spring Cloud Bus
数据流 Spring Cloud Stream
批量任务 Spring Cloud Task

 

关于Eureka和Dubbo那些事,推荐以下几篇博客参考:

微服务架构的基础框架选择Spring Cloud还是Dubbo?:https://blog.csdn.net/kobejayandy/article/details/52078275

为什么Eureka比ZooKeeper更适合做服务发现与注册服务https://blog.csdn.net/coorz/article/details/70921252

服务发现和注册和Eureka详细讲解:https://blog.csdn.net/zhanglh046/article/details/78651914

 

 

一、创建服务注册中心

在这里,我们需要用的的组件上Spring Cloud Netflix的Eureka ,eureka是一个服务注册和发现模块。

下面以创建server为例子,详细说明创建过程:

1、File-->New-->Project

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第1张图片

 

 

2、New Project-->Spring Initializr

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第2张图片

 

 

3、填写Group和Artifact

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第3张图片

 

 

4、选择Eureka

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第4张图片

 

 

5、完成后弹出窗口选New Windows

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第5张图片

 

6、pom.xml



	4.0.0

	com.eurekaserver
	eurekaserver
	0.0.1-SNAPSHOT
	jar

	eurekaserver
	Demo project for Spring Boot

	
		org.springframework.boot
		spring-boot-starter-parent
		2.0.2.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
		Finchley.RC2
	

	
		
			org.springframework.cloud
			spring-cloud-starter-netflix-eureka-server
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
		
	

	
		
			
				org.springframework.cloud
				spring-cloud-dependencies
				${spring-cloud.version}
				pom
				import
			
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	

	
		
			spring-milestones
			Spring Milestones
			https://repo.spring.io/milestone
			
				false
			
		
	



 

 

 

 

二、启动一个服务注册中心,只需要一个注解@EnableEurekaServer,这个注解需要在springboot工程的启动application类上加

package com.eurekaserver.eurekaserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication
public class EurekaserverApplication {

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

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第6张图片

 

 

三、修改配置文件

server.port=8761
#注册中心默认端口就是8761,也可通过下面的方式定义其他端口
#eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第7张图片

 

 

 

四、启动访问--debug模式可以断点调试

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第8张图片

 

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第9张图片

 

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第10张图片

 

 

 

五、创建服提供者

这里就直接提供配置文件和主要代码了,建项目步骤同上。

 

1、修改配置文件

 

需要指明spring.application.name,这个很重要,这在以后的服务与服务之间相互调用一般都是根据这个name 。

你会发现一个服务已经注册在服务中了,服务名为HELLO-SERVICE,端口为8764

server.port=8764
spring.application.name=hello-service
#eureka注册中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第11张图片

 

 

 

2、pom.xml



	4.0.0

	com.eurekaclient
	eurekaclient
	0.0.1-SNAPSHOT
	jar

	eurekaclient
	Demo project for Spring Boot

	
		org.springframework.boot
		spring-boot-starter-parent
		2.0.2.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
		Finchley.RC2
	

	
		
			org.springframework.cloud
			spring-cloud-starter-netflix-eureka-server
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
		
	

	
		
			
				org.springframework.cloud
				spring-cloud-dependencies
				${spring-cloud.version}
				pom
				import
			
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	

	
		
			spring-milestones
			Spring Milestones
			https://repo.spring.io/milestone
			
				false
			
		
	


 

3、编写服务

package com.cloud.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {


    @Value("${server.port}")
    String port;
    @RequestMapping("/hi")
    @ResponseBody
    public String home(@RequestParam String name) {
        System.out.println("hi "+name+",i am from port:" +port);
        return "hi "+name+",i am from port:" +port;
    }
}

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第12张图片

 

4、修改启动类添加注解@EnableEurekaClient表明自己是一个服务提供者

package com.eurekaclient.eurekaclient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.ComponentScan;


@EnableEurekaClient
@SpringBootApplication
@ComponentScan("com.cloud.*")
public class EurekaclientApplication {

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

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第13张图片

 

5、启动访问查看服务

Spring Cloud入门教程之服务注册与发现Eureka(一)(Finchley版本+Boot2.0)_第14张图片

 

到这里,Spring Cloud的服务注册发现Demo已经完成,下一遍博客将介绍服务消费者Feign/Ribbon。

 

Spring Boot与Spring Cloud学习使用可参看笔者博客

       ①Spring Cloud入门教程之服务注册与发现Eureka

       ②Spring Cloud入门教程之服务消费者 Ribbon

       ③Spring Cloud入门教程之服务消费者 Feign

       ④Spring Cloud入门教程之断路器 Hystrix

       ⑤Spring Cloud入门教程之断路由网关 Zuul

       ⑥Spring Cloud入门教程之分布式配置中心 Spring Cloud Config

       ⑦idea下新建Spring Boot项目并配置启动

       ⑧Spring Boot无法自动注入bean问题解决方案

       ⑨idea 设置Spring Boot热部署

 

 

 

你可能感兴趣的:(Spring,Cloud,Spring,Cloud系列教程)