springcloud(Eureka)一

1、新建maven项目 springcloud-eureka-7001

2、添加相关依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <scope>true</scope>
        </dependency>
    </dependencies>

3、修改application.yml

spring:
  devtools:
    restart:
      enabled: true
      additional-paths: src/main/java,src/main/resources

server:
  port: 7001

eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false #是否向eureka服务端注册自己
    fetch-registry: false #false表明自己为注册中心
    service-url: #监控页面
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

4、新建启动类

image

5、测试访问http://localhost:7001/

image

6、注册服务到eurekaserver

  • 在springcloud-provider-dept-8001的pom.xml中添加依赖
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-eureka</artifactId>
	<version>1.4.6.RELEASE</version>
</dependency>
  • 在springcloud-provider-dept-8001的application.yml中添加注册配置信息
#eureka的配置,服务注册到哪里
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/
  • 在springcloud-provider-dept-8001的启动类上添加@EnableEurekaClient

  • 启动springcloud-provider-dept-8001,再次访问http://localhost:7001/, 显示服务已经注册到eureka中
    image

  • 可以通过如下配置修改页面上Status下的显示信息

eureka:
  instance:
    instance-id: springcloud-provider-dept-8001
  • 配置info信息(有错误信息,很不友好)我们可以自定义配置显示信息
    image
    image
    操作步骤

    在springcloud-provider-dept-8001的pom.xml中添加依赖

    <!--完善监控信息-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    

    在springcloud-provider-dept-8001的application.yml中添加监控配置信息

    #info信息
    info:
      app.name: 这是app的名字,可以自定义
      company.name: 这是公司的名字,同样可以自定义
    

    重启springcloud-provider-dept-8001,再次点击

    image

7、服务发现DiscoveryClient

  • 在springcloud-provider-dept-8001中的DeptController添加
    @Autowired
    private DiscoveryClient discoveryClient;

    @GetMapping("/discovery")
    public DiscoveryClient discovery(){

        System.out.println("==========================================");
        //获取微服务列表的清单
        discoveryClient.getServices().forEach(System.out::println);
        System.out.println("==========================================");

        //得到具体的微服务信息,通过具体的微服务id
        List<ServiceInstance> instances = discoveryClient.getInstances("SPRINGCLOUD-PROVIDER-DEPT");
        for (ServiceInstance instance : instances) {
            System.out.println(
                    instance.getHost() + "	" +
                    instance.getPort() + "	" +
                    instance.getUri() + "	" +
                    instance.getServiceId() + "	"
            );
        }
        return this.discoveryClient;
    }
  • 在springcloud-provider-dept-8001的启动类添加注解@EnableDiscoveryClient(好像不加也可以)
  • 访问http://localhost:8001/dept/discovery
    image
    同时后台打印出如下信息
    image

8、eureka集群(三台机器)

由于之前有一台,所以现在新建两台即可。

  • 修改hosts文件,为了演示三台集群
    image

  • 修改三台机器的application.yml
    image

  • 访问http://eureka7001.com:7001/ ,显示如下代表集群搭建成功(访问三台的任意一个都可以看到另外两台)
    image

9、在eureka集群注册服务

  • 在springcloud-provider-dept-8001的application.yml修改如下配置
    image

  • 访问http://eureka7001.com:7001/ ,可以看到如下信息
    image

原文地址:https://www.cnblogs.com/kaka-qiqi/p/14617209.html