搭建一个简单的SpringCloud环境

简介: 搭建一个简单的SpringCloud环境

简介

SpringCloud为开发人员提供了在分布式系统中快速构建一些通用模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线)。

这是一个含概多个子项目的开发工具集,集合了众多的开源框架,利用了Spring Boot开发的便利性实现了很多功能,比如服务注册、服务注册发现、负载均衡等。SpringCloud在整合过程中主要是针对Netflix开源组件的封装。

SpringCloud的出现真正的简化了分布式架构的开发。NetFlix是美国的一个在线视频网站,微服务业的翘楚,是公认的大规模生产级微服务的杰出实践者。NetFlix的开源组件已经在大规模分布式微服务环境中经过多年的生产实战验证。因此SpringCloud中很多组件都是基于NetFlix。

核心组件

名称 代表
注册中心 EurekaServer、Consul、Nacos
负载均衡和调用 Rabbion、OpenFeign
熔断和监控 Hystrix & Hystrix Dashboard
网关 Zuul、Gateway
配置中心 Config
消息总线 Bus

版本

SpringCloud是一个由众多独立子项目组成的大型综合项目,原则每个子项目上有不同的发布节奏,都维护自己发布版本号。为了更好的管理SpringCloud的版本,通过一个资源清单BOM(Bill of Materials),为避免与子项目的发布号混淆,所以没有采用版本号的方式,而是通过命名的方式。这些名字是按字母顺序排列的。如伦敦地铁站的名称(“天使”是第一个版本,“布里斯顿” 是第二个版本,"卡姆登"是第三个版本)。当单个项目的点发布累积到一个临界量,或者其中一个项目中有一个关键缺陷需要每个人都可以使用时,发布序列将推出名称以“.SRX”结尾的“服务发布”,其中“X”是一个数字。

SpringCloud与SpringBoot有严格的版本对应关系

开发环境

  • JDK:1.8
  • Maven:3.6
  • SpringBoot:2.5.2
  • SpringCloud:Hoxton.SR6
  • IDEA:2019.3

创建Maven项目

创建一个Maven项目,并删除src文件夹,修改pom文件为以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<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>com.moti</groupId>
    <artifactId>SpringCloud</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>cloud-eureka-server</module>
        <module>cloud-eureka-client</module>
        <module>cloud-consul-client</module>
        <module>cloud-users</module>
        <module>cloud-orders</module>
    </modules>
    <!--管理版本号-->
    <properties>
        <spring.boot-version>2.2.5.RELEASE</spring.boot-version>
        <spring.cloud-version>Hoxton.SR6</spring.cloud-version>
        <lombok-version>1.18.20</lombok-version>
    </properties>
    <!--管理依赖-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <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.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok-version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

之后创建SpringCloud的其他组件只需要在当前项目的基础上新建Module即可。

相关文章
|
8月前
|
消息中间件 Java 测试技术
Spring Cloud Alibaba环境问题之测试环境失败如何解决
Spring Cloud Alibaba提供了一套在Spring Cloud框架基础上构建的微服务解决方案,旨在简化分布式系统的开发和管理;本合集将探讨Spring Cloud Alibaba在实际应用中的部署和使用技巧,以及该框架常见问题的诊断方法和解决步骤。
|
4月前
|
Cloud Native Java 对象存储
面向未来的架构设计:Spring Cloud和Netflix OSS在云原生环境下的发展趋势
展望未来,随着5G、边缘计算等新技术的兴起,微服务架构的设计理念将会更加深入人心,Spring Cloud和Netflix OSS也将继续引领技术潮流,为企业带来更为高效、灵活且强大的解决方案。无论是对于初创公司还是大型企业而言,掌握这些前沿技术都将是在激烈市场竞争中脱颖而出的关键所在。
75 0
|
3月前
|
Cloud Native Java 对象存储
面向未来的架构设计:Spring Cloud和Netflix OSS在云原生环境下的发展趋势
面向未来的架构设计:Spring Cloud和Netflix OSS在云原生环境下的发展趋势
60 1
|
消息中间件 Java API
微服务技术系列教程(43)- SpringCloud -Zipkin环境集成
微服务技术系列教程(43)- SpringCloud -Zipkin环境集成
109 0
|
人工智能 监控 数据可视化
一套智慧工地云平台源码,基于Spring Cloud +UniApp框架开发,包含:视频监控、劳务实名制、环境监测、GIS地理信息、数据统计等功能
一套智慧工地平台源码,一体化云服务,包含:视频监控、劳务实名制、环境监测、停车管理、安质管理、GIS地理信息、数据统计、智能AI等功能。 技术架构:微服务+Java+Spring Cloud +UniApp +MySql 端到端的数据安全通信和安全认证,保障项目看板信息、劳务管理、视频管理、设备告警等数据的安全传输。
369 0
一套智慧工地云平台源码,基于Spring Cloud +UniApp框架开发,包含:视频监控、劳务实名制、环境监测、GIS地理信息、数据统计等功能
|
Java Spring
Spring Cloud配置多环境
Spring Cloud配置多环境
|
存储 安全 Java
十.SpringCloud+Security+Oauth2实现微服务授权-环境准备
SpringCloud+Security+Oauth2实现微服务授权-环境准备
|
SpringCloudAlibaba 关系型数据库 MySQL
SpringCloud Alibaba微服务实战 - 基础环境准备
SpringCloud Alibaba微服务实战 - 基础环境准备
278 0
|
Kubernetes Java jenkins
SpringCloud微服务实战——搭建企业级开发框架(三十五):SpringCloud + Docker + k8s实现微服务集群打包部署-集群环境部署【下】
• sonarqube默认用户名密码: admin/admin • 卸载命令:docker-compose -f jenkins-compose.yml down -v 六、Jenkins自动打包部署配置   项目部署有多种方式,从最原始的可运行jar包直接部署到JDK环境下运行,到将可运行的jar包放到docker容器中运行,再到现在比较流行的把可运行的jar包和docker放到k8s的pod环境中运行。每一种新的部署方式都是对原有部署方式的改进和优化,这里不着重介绍每种方式的优缺点,只简单说明一下使用Kubernetes 的原因:Kubernetes 主要提供弹性伸缩、服务发现、自我修复,
743 57
SpringCloud微服务实战——搭建企业级开发框架(三十五):SpringCloud + Docker + k8s实现微服务集群打包部署-集群环境部署【下】
|
消息中间件 Oracle Java
SpringCloud微服务实战——搭建企业级开发框架(二):环境准备【上】
这里简单说明一下在Windows系统下开发SpringCloud项目所需要的的基本环境,这里只说明开发过程中基础必须的软件,其他扩展功能(Docker,k8s,MinIO,XXL-JOB,EKL,Keepalived,Nginx,RabbitMQ,Kafka等)用到的软件会在具体使用时详细说明,本地开发的环境软件以Windows版本的安装配置为例,数据库等中间件以Linux(CentOS7)的安装配置为例,其他系统Mac/Linux可自行配置
397 57
SpringCloud微服务实战——搭建企业级开发框架(二):环境准备【上】