张坤的个人博客

  • 首页
  • 分类
  • 标签
  • 日志

  • 搜索
Jenkins RabbitMQ Zookeeper IDEA Logstash Kibana ELK NIO Netty Spring Cloud Golang DataX Elasticsearch React Native Mysql H2 Socket Spring Boot Kafka Mybatis Sqlmap Vue Postgresql Docker Vert.x Flutter Flink Redis

Spring Cloud环境搭建

发表于 2020-06-10 | 分类于 Spring Cloud | 0 | 阅读次数 43

Spring Cloud可以看成一堆Spring Boot项目
使用的IDEA,不像eclipse那样可以同时打开多个项目,所以用maven管理多个子模块(Spring Boot)做演示

首先创建一个父Maven项目,引入spring-cloud,spring-boot,spring-cloud-alibaba的依赖
pom.xml格式如下,如果用到了alibaba的Spring Cloud依赖,也要加入spring-cloud-alibaba-dependencies

<?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.coddox</groupId>
    <artifactId>springcloud-learning</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <!-- 子模块 -->
    <modules>
        <module>eureka</module>
    </modules>

    <!-- 版本管理 -->
    <properties>
        <spring-boot-dependencies>2.1.14.RELEASE</spring-boot-dependencies>
        <spring-cloud-denpendencies>Greenwich.SR6</spring-cloud-denpendencies>
        <spring-cloud-alibaba-denpendencies>2.1.2.RELEASE</spring-cloud-alibaba-denpendencies>
    </properties>

    <!-- 依赖管理 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot-dependencies}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud-denpendencies}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba-denpendencies}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

在这里注意一点,spring boot和spring cloud的大版本号要对应,虽然spring cloud都是英文字母,看不出对应关系,我这里在网上找的图,可以简要看下
image.png

这里给出一个接口,用来查看实时的版本信息:
https://start.spring.io/actuator/info
将返回json放到https://www.json.cn/中格式化一下就能看到了
image.png

如果用到了alibaba的spring cloud依赖,它也是有版本对应关系的,在
spring-cloud-alibaba版本对应关系 中可以看到
image.png

我这里spring cloud用的Greenwich,所以spring boot用的2.1x,spring-cloud-alibaba版本用的2.1.2.RELEASE 如果版本不对应,启动spring boot的时候就会发生莫名其妙的错误

创建子模块,这里简单做下演示,就创建个eureka算了
pom.xml加入spring-cloud-starter-netflix-eureka-server,提供eureka服务端支持,spring-boot-starter-web,提供内置的tomcat容器,和spring mvc的支持

<?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">
    <parent>
        <artifactId>springcloud-learning</artifactId>
        <groupId>com.coddox</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>eureka</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

这里给出工程目录
image.png

在eureka模块中的resources文件夹创建application.properties(yml),配置eureka和端口

# 单机版eureka服务端不需要注册本机信息到eureka服务端(单机版eureka服务端指的就是自己),eureka集群除外,因为要相互注册和同步客户端注册信息
eureka.client.register-with-eureka=false
# 单机版eureka不需要拉取所有eureka客户端的注册信息,因为注册信息注册地址就是自己,道理同上
eureka.client.fetch-registry=false
# 启动端口
server.port=8080	

创建启动类

package com.eureka;

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

/**
 * @author zhangkun
 * @date 2020/6/10 9:47
 */
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

启动之后就能访问eureka了
image.png

源码:https://codox.coding.net/public/springcloud-learning/springcloud-learning/git/files

# Jenkins # RabbitMQ # Zookeeper # IDEA # Logstash # Kibana # ELK # NIO # Netty # Spring Cloud # Golang # DataX # Elasticsearch # React Native # Mysql # H2 # Socket # Spring Boot # Kafka # Mybatis # Sqlmap # Vue # Postgresql # Docker # Vert.x # Flutter # Flink # Redis
Node环境Vue全家桶实战
Eureka服务搭建
  • 文章目录
  • 站点概览
会Coding的猴子

会Coding的猴子

57 日志
19 分类
28 标签
RSS
Github
Creative Commons
© 2021 会Coding的猴子
由 Halo 强力驱动
|
主题 - NexT.Gemini v5.1.4

湘ICP备18011740号