温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring Cloud常见模块有哪些

发布时间:2021-11-17 13:55:22 来源:亿速云 阅读:160 作者:iii 栏目:大数据

这篇文章主要讲解了“Spring Cloud常见模块有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Cloud常见模块有哪些”吧!

什么是Spring Cloud :  

  • Spring Cloud 是一系列框架的集合

  • 利用Spring Boot的简化了开发

Spring Cloud 常见模块 :

  • Eureka:注册中心,用于注册所有服务(项目/应用)

  • Ribbon:负载均衡,用于搭建集群的。(同一个功能多个tomcat,ribbon帮着选择一个tomcat)

  • Hystrix:熔断器,与正主断了联系,使用备选方案(备胎)。

  • Feign:服务与服务之间调用。类似HttpClient

  • zuul 网关:确定统一入口,方便进行管理。

Spring Cloud常见模块有哪些

spring cloud版本 : spring cloud 采用 Greenwich版本,对应spring boot 2.1.*版本

Eureka 入门

Eureka职责:

  • 服务注册:服务提供方将服务注册到注册中心

  • 服务发现:服务调用方法,从注册中心中,获得需要的服务

  • 服务检测:注册中心与服务之间采用心跳检测服务状态

Eureka 入门案例

搭建父项目

  • 步骤一:创建父项目 cloud_parent

  • 步骤二:修改pom.xml文件,确定spring cloud版本

<!--1 确定spring boot的版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
    </parent>

    <!--2  确定sprig cloud版本-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <spring-cloud-release.version>Greenwich.RELEASE</spring-cloud-release.version>
    </properties>

    <!-- 3 锁定sprig cloud版本-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud-release.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- 4 确定spring cloud私有仓库-->
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

搭建注册中心

  • 步骤一:创建子项目 eureka_demo

  • 步骤二:修改pom.xml文件,添加web和 eureka service 依赖

  <dependencies>
        <!--web起步依赖-->
        <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-server</artifactId>
        </dependency>
    </dependencies>
  • 步骤三:创建yml文件,配置端口号、服务名、eureka注册地址

#服务端口号
server:
  port: 10086
#服务名称
spring:
  application:
    name: eurekaDemo
#注册中心地址
eureka:
  client:
    service-url:
      defaultZone: http://localhost:${server.port}/eureka   #eureka服务注册地址
    register-with-eureka: false     #关闭将自己注册到注册中心中
    fetch-registry: false           #关闭从注册中心获得列表(不拉去其他服务信息)
  • 步骤四:创建启动类,添加开启 eureka service 注解 @EnableEurekaService

package com.czxy;

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

@SpringBootApplication
@EnableEurekaServer     //开启eureka服务端
public class EurekaDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaDemoApplication.class ,args);
    }
}

搭建服务提供方

  • 步骤一:创建提供方项目,eureka_service

  • 步骤二:修改pom.xml文件,添加 web、eureka client、spring boot 监控依赖  (监控依赖可加可不加)

<dependencies>
        <!--web起步依赖-->
        <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>
        <!--spring boot监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
  • 步骤三:创建application.yml文件,配置端口号、服务名、eureka注册中心位置

#端口号
server:
  port: 8080
#服务名称
spring:
  application:
    name: service
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka
  • 步骤四:编写启动类,添加启动客户端注解 @EnableEurekaClient

package com.czxy;

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


@SpringBootApplication
@EnableEurekaClient   //开启eureka客户端
public class ServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(ServiceApplication.class,args);
    }
}

步骤五:编写controller , 测试程序

  • 测试路径:http://localhost:8080/test  

  • 显示结果:  "测试数据"

package com.czxy.controller;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
@RequestMapping("/test")
public class TestController {
    @GetMapping
    public ResponseEntity<String> test(){
        return ResponseEntity.ok("测试数据");
    }
}

搭建 服务调用方

  • 步骤一:创建调用方项目,eureka_client

  • 步骤二:修改pom.xml文件,添加 web、eureka client、spring boot 监控依赖(与eureka_service项目一样)

<dependencies>
        <!--web起步依赖-->
        <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>
        <!--spring boot监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
  • 步骤三:创建yml文件,(与eureka_service项目相似,有不同端口和服务名)

#端口号
server:
  port: 9090
#服务名称
spring:
  application:
    name: client
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka
  • 步骤四:编写启动类,添加eureka客户端注解,(与eureka_service项目相似,有不同类名)

package com.czxy;

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


@SpringBootApplication
@EnableEurekaClient     //开启eureka客户端
public class ClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(ClientApplication.class,args);
    }
}


调用方测试数据

Spring Cloud常见模块有哪些

  • 步骤一:编写config配置类,用于配置RestTemplate(远程调用)实例

package com.czxy.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;


@Configuration
public class HttpConfig {
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}
  • 步骤二:编写DataDao,用于进行远程调用

package com.czxy.dao;

import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;


@Component
public class DataDao {
    @Resource
    private RestTemplate restTemplate;

    public ResponseEntity<String> data(){ 
                                          //服务提供方地址
        return restTemplate.getForEntity("http://localhost:8080/test",String.class);
    }
}
  • 步骤三:编写DataController,提供接口进行访问

package com.czxy.controller;

import com.czxy.dao.DataDao;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;


@RestController
@RequestMapping("/data")
public class DataController {
    @Resource
    private DataDao dataDao;\

    @GetMapping
    public ResponseEntity data(){
        return dataDao.data();
    }
}
  •  测试路径 :  http://localhost:9090/data

  • 显示结果 "测试数据" 说明就Eureka入门案例就完成了

追加 ----> 配置eureka instance

Spring Cloud常见模块有哪些

yml文件配置

  • instance-id : 用于配置可视化页面中,显示的服务名称

    • ${spring.application.name} 获得服务名

    • ${spring.cloud.client.ip-address} 获得ip地址

    • ${server.port} 获得端口号

    • 默认服务名称:计算机名称:服务名:端口号

    • 自定义服务名称:

  • prefer-ip-address:用于配置可视化页面中,访问时是否显示ip地址

    • 默认显示的是:计算机名称:端口号

eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka
  instance:
    instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
    prefer-ip-address: true   #注册中心可视化中显示IP地址
  • properties文件配置(不建议),参考学习

eureka.client.service-url.defaultZone=http://localhost:10086/eureka
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
eureka.instance.prefer-ip-address=true

感谢各位的阅读,以上就是“Spring Cloud常见模块有哪些”的内容了,经过本文的学习后,相信大家对Spring Cloud常见模块有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI