创建一个spring cloud实例,spring cloud 入门: 注册中心(eureka)

第一:创建父项目,普通java项目;

1  直接选择 next

2  填写项目名称,选择项目地址

3  创建完项目后:配置 pom.xml

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
        <springboot.version>2.0.5.RELEASE</springboot.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${springboot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

第二:创建注册中心

1 在父项目上创建module

2  直接进入next

 3  名字可以自定义

配置 pom.xml

    <artifactId>eureka_server</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!--Eureka服务端的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

4  在eureka项目中创建启动类

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

@SpringBootApplication
@EnableEurekaServer
public class Application_Eureka {
    public static void main(String[] args){
        SpringApplication.run(Application_Eureka.class);
    }
}

5  在项目路径  src\main\resources  创建配置文件:application.yml 

server:
  port: 9001
eureka:
  instance:
    hostname: 127.0.0.1
  client:
    fetch-registry: false
    register-with-eureka: false

6 记得配置 vm 参数

 -Xms512m -Xmx512m -XX:PermSize=1024M -XX:MaxPermSize=1024m

7  启动:eureka_server 主函数;

第三:创建服务器提供者

1  创建项目方式和eureka一致,在父项目下创建子项目,直接配置pom.xml

 2  pom.xml 配置

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--Eureka客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>
 

3  创建启动类,提供服务

启动类

@SpringBootApplication
@EnableEurekaClient
public class Application_Provider {
    public static void main(String[] args){
        SpringApplication.run(Application_Provider.class);
    }
}
 

服务器

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("provider")
public class ProviderController {

    @RequestMapping("get")
    public String getData(){
        return "提供了数据";
    }
}
 

创建配置文件application.yml 

server:
  port: 8008
spring:
  application:
    name: TEST-PROVIDER   #服务名称,随意取
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka #注册到Eureka的地址
 

 5.(测试)启动项目,访问 127.0.0.1:8001/provider/get

第四:创建消费项目

1  创建方式与生产项目一致

2  配置xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
 </dependencies>

3  创建启动类和消费接口

 启动类:

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

 消费接口 :

@RestController
@RequestMapping("consumer")
public class ConsumerController {
	//资源路径
    private final String url = "http://127.0.0.1:8008/provider/get";

    @RequestMapping("get")
    public String get(){
        RestTemplate template = new RestTemplate();
        String data = template.getForObject(url, String.class);
        return data;
    }
}
 

4 配置文件application.yml(名称必须),配置端口

server:
  port: 9001

5  启动项目,访问: 127.0.0.1:9001/consumer/get 成功获取到了数据

5  创建spring cloud的网关

1.创建子项目,方式和上面的一致


2.配置pom.xml


<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!--Eureka的客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!--Zuul网关的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
    </dependencies>
 

3   创建启动类

package com.pooj.zuul;

@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
public class Application_Zuul {
    public static void main(String[] args){
        SpringApplication.run(Application_Zuul.class);
    }
}

4  配置文件application.yml

server:
  port: 9527
spring:
  application:
    name: ZUUL-SERVER		#Zuul网关在Eureka的服务名称,随便取
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka	 #Eureka的注册地址
zuul:
  routes:
    provider.serviceId: TEST-PROVIDER	#没有提示,自己取名称,值为服务的名称
 

5  .启动网关,通过网关访问服务提供
规则:127.0.0.1:9527/网关服务名称(小写)/服务提供者名称(小写)/服务路径
例:127.0.0.1:9527/zuul-server/test-provider/provider/get

 

6 . 在配置文件中继续配置,简化路径访问

server:
  port: 9527
spring:
  application:
    name: ZUUL-SERVER
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka
zuul:
  routes:
    provider.serviceId: TEST-PROVIDER
    provider.path: /pooj/**  #匹配指定的路径,资源匹配的路径才会拦截,转发
 

7  重新启动后测试


原来路径:127.0.0.1:9527/zuul-server/test-provider/provider/get
网关访问路径变为: 127.0.0.1:9527/pooj/provider/get

 8  屏蔽掉原始资源(提供者)访问地址

server:
  port: 9527
spring:
  application:
    name: ZUUL-SERVER
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka
zuul:
  routes:
    provider.serviceId: TEST-PROVIDER
    provider.path: /pooj/**  #匹配指定的路径,资源匹配的路径才会拦截,转发
  ignored-services: "*"      #忽略直接使用服务名   *忽略所有的服务
  prefix: /server            #统一给访问前缀
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小道士写程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值