SpringCloud的Eureka搭建
今天终于有空搭建一下SpringCloud,因为之前之前一直没有实际用到过这个框架,最早接触的是SSH,下来用SSM,再下来就是SpringBoot+Mybatis+vue
觉得技术更新迭代太快,学不过来,我就是个最下层码代码的小小程序员,接触的也都接触了,也不是很精,代码这东西忘的比学的快,现在项目中用到了这个框架,不过我们是一个子系统服务,也就是网上所说的消费者,别人给我们提供一个Eureka的服务,但是这一个子系统服务也很大了,又看了些文档,跟着网上大神门的方式,学着先简单搭建一个,没有任何业务逻辑,没有任何实体类,没有任何pom配置,就是个简单的SpringCloud,在我看来就是SpringBoot,就是多了些组件,就成为了SpringCloud
项目路径
Eureka服务端搭建(服务提供者)
首先,我是将Eureka服务端单独搭建成一个project,然后将所有的客户端建成module
1.新建project,出现下图,选中蓝色框next
2.然后创建项目名称、包名及构建环境,这里是Maven,根据自己喜好起名字就好,点击next
3.进入到选择SpringCloud Dis模块,接着选择Eureka Server,就完成一大步了
4.接下来就会提示import各种包,最好是先检车一下项目的maven和自己电脑配置的环境是否一样,点击setting,检查看一下,不然导包可能一直导不成功
5.pom.xml文件,这里大部门都是默认生成的,因为你在创建的时候已经点击过了,
<modules>
<module>shop-server</module>
<module>user-server</module>
</modules>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
完整的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.aklcoming.springcloud</groupId>
<artifactId>spring-cloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-cloud</name>
<description>Demo project for Spring Boot</description>
<modules>
<module>shop-server</module>
<module>user-server</module>
</modules>
<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>Hoxton.SR3</spring-cloud.version>
</properties>
<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-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<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>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
6.给项目的applicon增加配置,我这里将prop改成了yml,
这里可参考SpringCloud中文文档
[https://www.springcloud.cc/spring-cloud-dalston.html]
server:
port: 9990
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
Eureka客户端搭建(消费者/客户端)
我搭建了两个客户端,user-server和shop-server
1.新建Module
2.同理,不解释
3.选择SpringWeb和Eureka客户端,这里就是主要生成包的,不需要再单独引入了
4.下来项目就生成了,不过还要再加相应的配置,要和服务端的Eureka关联起来,也就是注册到其中
5.pom.xml配置内容,里边配置的Swagger2
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.aklcoming</groupId>
<artifactId>shop-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>shop-server</name>
<description>Demo project for Spring Boot</description>
<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>Hoxton.SR3</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--swagger 文档注释-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.1</version>
</dependency>
<!--swagger-->
</dependencies>
<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>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
6.user-server的建立方式是一样的,不同的是yml的端口不一样,是9992,其余都一样,注意的是pom,只需要把Swagger2
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
不要把上边的pom全部复制,因为项目名成不同
启动项目
三个全部启动
Eureka访问展示
9991-user-server项目Swagger
9992-shop-server项目Swagger