eureka java_SpringCloud注册中心Eureka

本篇概论

在上一篇中我们介绍了微服务相关的内容。微服务的本质就是让服务与服务之间进行互相调用。那么在调用之前需要有一个前提。就是不同的服务与服务之间怎么知道彼此的存在的呢?因为服务都是独立部署的,根本没有任何关联。如果都不知道要调用的服务地址,那还怎么进行互相调用呢?为了解决这样的问题,于是SrpingCloud提供了注册中心的组件。我们在开发项目时,都向注册中心注册,在进行服务调用时,注册中心返回要调用服务的地址,这样就解决了上述问题了。

创建Eureka服务端步骤

在SrpingCloud中Eureka是注册中心的组件,通过Eureka我们可以很方便的搭建一个注册中心。在SrpingCloud中Eureka组件分为服务端和客户端。如果有Dubbo项目开发经验的人可以理解为Eureka中的服务端,就相当于zokeerper服务,也就是记录服务地址的。而Eureka中的客户端,即是我们Dubbo项目中真真正正的服务。下面我们来详细介绍一下,怎么搭建一个Eureka服务端。

搭建一个Eureka服务端非常的简单,和创建一个SpringBoot的项目差不多,不同之处,就是添加依赖不一样。下面我们来详细介绍一下。

在IDEA中选择Spring Initializr选项。也就是如下图所示:

16408efea88f51d478759e6c344a3309.png

设置项目的相关参数,在这一点和创建SpringBoot的项目没有任何区别。

19ac7c45b915990025f5cb0fca7f0f08.png

这一块是最重要的,也就是唯一和创建SpringBoot项目不同的地方。

44a76c529a78eb805de7beb3efc21e38.png

这一步还是和SpringBoot项目一样,直接点击完成就可以了。

32cc3dbc381289748ed91447b9d31396.png

下图就是项目的架构图,比较简单和SpringBoot一样,唯一的区别就是pom.xml中的不同,也就是依赖不同。

8460c56c5b066dbcd00365912d87d7ae.png

下面我启动直接启动项目看一下运行结果。启动日志:

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112) ~[eureka-client-1.9.8.jar:1.9.8]

at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.9.8.jar:1.9.8]

at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) ~[eureka-client-1.9.8.jar:1.9.8]

at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) ~[eureka-client-1.9.8.jar:1.9.8]

at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.9.8.jar:1.9.8]

at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:829) ~[eureka-client-1.9.8.jar:1.9.8]

at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121) ~[eureka-client-1.9.8.jar:1.9.8]

at com.netflix.discovery.InstanceInfoReplicator$1.run(InstanceInfoReplicator.java:101) [eureka-client-1.9.8.jar:1.9.8]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_191]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_191]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_191]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_191]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_191]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_191]

at java.lang.Thread.run(Thread.java:748) [na:1.8.0_191]

2019-03-09 18:20:09.617 INFO 1752 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''

2019-03-09 18:20:09.618 INFO 1752 --- [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8080

我们发现和SpringBoot启动有一些不同,我们什么都没有改,也就是都是用默认的配置,启动的时候,居然抛出异常了。而在SpringBoot的项目中是可以正常启动的。虽然项目抛出了异常,但项目已经启动成功了,因为日志已经正确的输出了项目的端口了。下面我们直接访问这个端口,看看会返回什么信息。访问地址:

@EnableEurekaServer注解

看上面的返回结果我们应该很熟悉,这是因为我们没有写Controller导致的,在SpringBoot的文章中我们介绍过,这里就不详细介绍了。但这显然是不对的,因为刚刚我们介绍过SpringCloud中是使用Eureka来提供注册中心服务的,并且Eureka有客户端和服务端之分,所以我们只在项目添加了Eureka的依赖还是不够的,我们还要在项目的代码中添加注解,来标识当前的Eureka服务是客户端服务还是服务端服务。这也就是本篇介绍的第一个注解。也就是@EnableEurekaServer注解。我们只要将该注解添加到SpringCloud项目中的启动类中即可。具体代码如下:

package com.jilinwula.eureka;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication

@EnableEurekaServer

public class JilinwulaSpringcloudEurekaServerApplication {

public static void main(String[] ar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值