一、spring cloud简介

 

      Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。 

      Spring Cloud对微服务基础框架Netflix的多个开源组件进行了封装,同时又实现了和云端平台以及和Spring Boot开发框架的集成。 

      Spring Cloud为微服务架构开发涉及的配置管理,服务治理,熔断机制,智能路由,微代理,控制总线,一次性token,全局一致性锁,leader选举,分布式session,集群状态管理等操作提供了一种简单的开发方式。

      Spring Cloud 为开发者提供了快速构建分布式系统的工具,开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。   

 

1创建Eureka-server

 

1 创建一个maven model 

2 pom文件中加入如下依赖

            <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-eureka-server</artifactId>

        </dependency>

application.yml文件加入如下配置

    server:

  port: 8761

eureka:

  client:

    register-with-eureka: false 

    fetch-registry: false

    service-url:

      defaultZone: http://localhost:8761/eureka

启动类上加注解  

    @EnableEurekaServer

2创建Eureka-client

1在pom文件中加入如下依赖

<!--暴露各种指标 -->          

  <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-actuator</artifactId>

        </dependency>

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

2启动类上加注解

    @EnableEurekaClient或者 @EnableDiscoveryClient

3application.yml文件中加配置

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
//显示项目名称  
 application:

   name: microservice-provider-user

 

 

//显示ip以及各式

 

 

instance:

    prefer-ip-address: true

    

instance-

 

id: ${spring.application.name}:${spring.cloud.client.ipAddress}:${spring.appl

 

ication.instance_id:${server.port}}  

 

3Eureka-server认证

 

1修改Eureka项目的defaultZone为:

        http://user:password666@localhost:8761/eureka

 

2yml配置文件中添加配置:

        security:

  basic:

    enabled: true

  user:

    name: user

    password: password666

3添加依赖:

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-security</artifactId>

    </dependency>

 

4Eureka-client识别认证

 

1直接修改client项目的defaultZone与server的地址一样即可

 

5Eureka-server健康检查

 

1添加依赖

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

2yml添加配置

eureka:
  client:
    healthcheck:
      enabled: true

 

 

6获取当前项目的基本信息

 

方法一:

@Autowired
private EurekaClient discoveryClient;

 @GetMapping("/info")

public String serviceUrl() {

        InstanceInfo instance = discoveryClient.getNextServerFromEureka("user"false);

        return instance.getHomePageUrl();

    }

 

方法二:

导入的包:import org.springframework.cloud.client.discovery.DiscoveryClient;

 

            @Autowired

     private DiscoveryClient discoveryClient;

 

 

                 @GetMapping("/instance-info")

   public ServiceInstance showInfo() {

     ServiceInstance localServiceInstance = this.discoveryClient.getLocalServiceInstance( );

        return localServiceInstance;

      }

 

 

 

 

 

 

 

 

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐