Spring cloud 学习(一)

xiaoxiao2021-02-28  111

参考网址:

http://blog.csdn.net/lc0817/article/details/53266212

环境:JDK1.8

工具:Eclipse

1.新建Maven Project

 

 

 

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>   <groupId>springcloudtest</groupId>   <artifactId>springcloudtest</artifactId>   <version>0.0.1-SNAPSHOT</version>   <packaging>pom</packaging>   <modules>       <module>discovery</module>       <module>service0</module>       <module>service1</module>       <module>gateway</module>   </modules>      <!--以下dependency来自官方-->      <parent>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-parent</artifactId>          <version>1.4.0.RELEASE</version>      </parent>        <dependencyManagement>          <dependencies>              <dependency>                  <groupId>org.springframework.cloud</groupId>                  <artifactId>spring-cloud-dependencies</artifactId>                  <version>Camden.SR2</version>                  <type>pom</type>                  <scope>import</scope>              </dependency>          </dependencies>      </dependencyManagement>        <dependencies>          <dependency>              <groupId>org.springframework.cloud</groupId>              <artifactId>spring-cloud-starter-config</artifactId>          </dependency>          <dependency>              <groupId>org.springframework.cloud</groupId>              <artifactId>spring-cloud-starter-eureka</artifactId>          </dependency>          <dependency>             <groupId>org.springframework.cloud</groupId>             <artifactId>spring-cloud-starter-eureka-server</artifactId>         </dependency>         <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-devtools</artifactId>              <optional>true</optional>          </dependency>                  <dependency>             <groupId>org.springframework.cloud</groupId>             <artifactId>spring-cloud-starter-zuul</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.cloud</groupId>             <artifactId>spring-cloud-starter-feign</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-actuator</artifactId>         </dependency>     </dependencies>  </project>

 

2.新建Maven Module discovery

 

 

新建一个包:

cn.demo.discovery

 

在包里面新建一个Class:Discovery,代码如下:

package cn.demo.discovery;

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

@SpringBootApplication @EnableEurekaServer public class Discovery {

    public static void main(String[] args) {         // TODO Auto-generated method stub         SpringApplication.run(Discovery.class, args);

    }

}

 

 

在resources目录下新建一个配置文件application.yml(注意yml格式与properties文件不同):

 

配置信息如下(注意排版):

 

server:            port: 8080 #注册中心占用8080端口,冒号后面必须要有空格       eureka:           instance:               hostname: localhost #冒号后面必须要有空格           client:               registerWithEureka: false #冒号后面必须要有空格               fetchRegistry: false #冒号后面必须要有空格               serviceUrl:                  defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/  #其实就是 http://localhost:8080/eureka/,冒号后面必须要有空格

 

 

运行项目:

 

控制台输出信息:

 

 

浏览网页,http://localhost:8080/:

 

 

3.新建Maven Module service0

在springcloudtest项目中添加maven模块

 

 

 

新建一个Class:Service0,代码如下:

package service0;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication @EnableDiscoveryClient @RestController public class Service0 {         @GetMapping("/service0")     public String service0(){         return "service0";     }

    public static void main(String[] args) {         // TODO Auto-generated method stub         SpringApplication.run(Service0.class, args);     }

}

 

在resources目录下新建一个配置文件application.yml(注意yml格式与properties文件不同):

 

spring:           application:              name: service0 #冒号后面必须要有空格        eureka:            client:              serviceUrl:                 defaultZone: http://localhost:8080/eureka/ #冒号后面必须要有空格 #  instance: #    hostname: localhost #冒号后面必须要有空格 #    instance-id: http://localhost:8081 #冒号后面必须要有空格       server:              port: 8081 #冒号后面必须要有空格

 

 

先运行discovery项目,再运行本项目(同上):

 

浏览服务器,http://localhost:8080/,可以看到service0:

 

 

4.新建Maven Module service1

操作方法同service0

 

Service1.java,代码如下:

package service1;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication @EnableDiscoveryClient @RestController public class Service1 {

    @GetMapping("/service1")     public String service1(){         return "service1";     }         public static void main(String[] args) {         // TODO Auto-generated method stub         SpringApplication.run(Service1.class, args);     }

}

 

 

配置文件application.yml,配置信息如下:

 

spring:           application:               name: service1 #冒号后面必须要有空格       eureka:           client:              serviceUrl:                 defaultZone: http://localhost:8080/eureka/ #冒号后面必须要有空格 #  instance: #    hostname: localhost #冒号后面必须要有空格 #    instance-id: http://localhost:8082 #冒号后面必须要有空格       server:              port: 8082 #冒号后面必须要有空格

 

 

先运行discovery项目,再运行service0和service1(同上)。

 

浏览服务器,http://localhost:8080/,可以看到service0和service1:

4.新建Maven Module gateway(网关)

 

新建一个包cn.demo.gateway:

 

新建一个Class:Gatewa,代码如下:

package cn.demo.gateway;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@SpringBootApplication @EnableZuulProxy @EnableEurekaClient public class Gateway {

    public static void main(String[] args) {         // TODO Auto-generated method stub         SpringApplication.run(Gateway.class, args);     }

}

 

配置文件application.yml,配置信息如下:

eureka:   client:     serviceUrl:       defaultZone: http://localhost:8080/eureka/ spring:   application:     name: gateway server:   port: 8083 zuul:   routes:     service0: /service/0/**     service1: /service/1/**

 

 

首先启动Discovery,其次的服务和网关启动顺序随意.通过访问http://localhost:8083/service0/service0/,即可看到,gateway帮我们转发了请求.

 

 

 

转载请注明原文地址: https://www.6miu.com/read-24812.html

最新回复(0)