springcloud入门实例(二:Eureka的使用)

        书接上回,原文再续,上次我们搭建了一个很简单的微服务的架子,这次我们来使用一下Eureka。

        Eureka是用来做服务注册与发现的。一听到注册这俩字基本就说明这玩意要有个服务端,所以我们首先写一个Eureka服务端子工程,名为microservicecloud-eureka-server-6006,目录结构如下:

        pom.xml内容如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.sunsy.springcloud</groupId>
    <artifactId>microservicecloud</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>microservicecloud-eureka-server-6006</artifactId>
  
  <dependencies>
  	<dependency>
  		<groupId>org.springframework.cloud</groupId>
  		<artifactId>spring-cloud-starter-eureka-server</artifactId>
  	</dependency>
  	
  	<!-- 热部署 -->
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>springloaded</artifactId>
  	</dependency>
  	<dependency>
  		<groupId>org.springframework.boot</groupId>
  		<artifactId>spring-boot-devtools</artifactId>
  	</dependency>
  </dependencies>
  
</project>

        application.yml内容如下(有一点需要注意,hostname可以写IP,但是由于我后边要搭建Eureka集群,而且是在本机这一台电脑上,所以如果hostname都写我自己的IP192.168.44.63的话搭建会失败,所以我在本机的hosts文件里给127.0.0.1配了euraka1、eureka2、eureka3三个hostname):

server:
   port: 6006
   
eureka:
   instance:
      hostname: eureka1
   client:
      register-with-eureka: false   #false不向注册中心注册自己
      fetch-registry: false         #false标识自己就是注册中心,不需要和client端一样检索服务
      service-url:
         defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/   #查询服务和注册服务的地址

        最后是主启动类EurakaServer6006.java:

package com.sunsy.springcloud;

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

@SpringBootApplication
@EnableEurekaServer
public class EurekaServer6006 {

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

        访问192.168.44.63:6006会进入如下界面,说明EurekaServer搭建启动成功:

        服务中心已经搭建好了,我们就需要向服务端注册服务了,基于我们上一次的子工程microservicecloud-provider-dept,我们做一些小改动。

        首先要在主启动类DeptProviderApp上加@EnableEurekaClient注解,告诉spring这是个EurekaClient,之后在application.yml里加入如下内容:

eureka:
   client:
      service-url:
         defaultZone: http://192.168.44.63:6006/eureka

       启动该子工程(别忘了把Server端也启动),再访问192.168.44.63:6006会进入如下界面,可以看到microservicecloud-dept服务已经注册到服务中心了:

        但是看我右边的红色提示,如果我们想要自定义status中的服务名以及显示正确的IP,还需要做一点修改,在application.yml里作如下修改:

eureka:
   client:
      service-url:
         defaultZone: http://192.168.44.63:6006/eureka
   instance:
      instance-id: dept-provider-8001    #自己命名instance-id,替代默认值
      prefer-ip-address: true            #把鼠标放在status上时会在浏览器的左下角显示真实的IP和端口号

        修改后由于我们启动了热部署,所以保存修改服务自动重启,发现问题已解决。

        最后我们来搭建Eureka集群,对microservicecloud-eureka-server-6006子工程中的application.yml做如下修改:

server:
   port: 6006
   
eureka:
   instance:
      hostname: eureka1
   client:
      register-with-eureka: false   #false不向注册中心注册自己
      fetch-registry: false         #false标识自己就是注册中心,不需要和client端一样检索服务
      service-url:
         #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/   #查询服务和注册服务的地址
         defaultZone: http://eureka2:6007/eureka/,http://eureka3:6008/eureka/

        然后新建一个microservicecloud-eureka-server-6007子工程,复制一下microservicecloud-eureka-server-6006中的所有内容,然后修改application.yml,如下:

server:
   port: 6007
   
eureka:
   instance:
      hostname: eureka2
   client:
      register-with-eureka: false   #false不向注册中心注册自己
      fetch-registry: false         #false标识自己就是注册中心,不需要和client端一样检索服务
      service-url:
         #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/   #查询服务和注册服务的地址
         defaultZone: http://eureka1:6006/eureka/,http://eureka3:6008/eureka/

        同理,建一个microservicecloud-eureka-server-6008子工程,和6007做相同处理,之后把这三个服务端以及microservicecloud-provider-dept都启动,访问192.168.44.63:6006(访问192.168.44.63:6007,192.168.44.63:6008也能看到大约类似的信息)可看到如下效果:

        OK,至此一个简单的Eureka使用示例就完成了。github地址如下:https://github.com/ssystc/springcloud-demo

        下次讲啥下次再说吧,溜了溜了....

        

猜你喜欢

转载自blog.csdn.net/u014627099/article/details/86132481
今日推荐