springcloud之eureka

2021-01-04  本文已影响0人  GG_lyf

前言

  终于把所有的事都搞的差不多了,现在终于闲下来可以更博客了,老早之前就把springcloud给搞完了,一直没时间更它,我把它记在这里,希望不会忘记。


开搞

注册中心涉及三大角色:服务提供者,服务消费者,注册中心。他们的关系如下:

  各个微服务在启动时,将自己的网络地址等信息注册到注册中心,注册中心存储这些数据

  服务消费方从注册中心查询服务提供方者的地址,并通过该地址调用服务提供方的接口

  各个微服务与注册中心使用一定机制(例如心跳)进行通信。如果注册中心与某个微服务长时间无法通信,就会注销该服务

  微服务网络地址发送发生变化(例如实例增加或IP变动)时,会重新注册进注册中心,这样,服务消费者就无需人工修改提供者的网络地址了。

这些都是白嫖的

1.先用idea创建一个父springboot项目(咱们默认都用的是maven创建的项目,因为用脚手架还要改东西,我这里就不创建了),要用一个父依赖和springcloud的版本控制

2.在父springboot项目中再创建一个springboot项目,叫注册中心(叫啥都行,名字而已)

3.添加依赖(这里由于依赖了父工程的版本,因此就不需要再添加父工程依赖了)

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

4.修改application.yml

server:
  port: 9000  #端口名随便叫,只要和主机中现有的端口不冲突就行
spring:
  application:
    name: eureka #微服务名,随便起,只要不耽误自己记就行
eureka:
  instance:
    hostname: eureka  #相当于127.0.0.1
  client:
    fetch-registry: false #是否从eureka中获取注册信息
    register-with-eureka: false #是否将自己注册进eureka,本身就在,无需注册
    service-url:  #下面两个都可以,都是指定注册中心的位置的
      #      defaultZone: http://127.0.0.1:${server.port}/eureka/
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

5.改写启动类

@SpringBootApplication
@EnableEurekaServer//启动eureka的服务端
public class RegisterApplication {
  public static void main(String[] args) {
    SpringApplication.run(RegisterApplication.class);
  }
}

6.在和注册中心同级的目录下再创建一个springboot项目,就是一个小小的微服务,创建方法和注册中心一模一样

7.添加客户端的依赖

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

8.修改application.yml

eureka:
  instance:
    prefer-ip-address: true  #如果设置eureka.instance.prefer-ip-address为false时,那么注册到Eureka中的Ip地址就是本机的Ip地址; 如果设置了true并且也设置了eureka.instance.ip-address=ipValue那么就将此ipValue注册到Eureka中
  client:
    service-url:
      defaultZone: http://127.0.0.1:9000/eureka/

9.修改启动类

@SpringBootApplication
@EnableEurekaClient//eureka的客户端注解
public class UserApplication {

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

}

使用 localhost:9000访问


image.png
上一篇下一篇

猜你喜欢

热点阅读