SpringCloud学习之手把手教你用IDEA搭建入门项目【番外篇】(一)
之前的文章里,我曾经搭建了一个Springcloud项目,但是那个时候我对于SpringCloud架构的很多组件不甚清楚,只是通过查找资料然后动手稀里糊涂的把一个项目成功搭建起来了,其中有很多不合理和不清楚的地方,所以现在我想重新搭建一个入门的SpringCloud项目,这是对我SpringCloud学习之路的致敬
搭建环境:
- JDK8(或者叫Java1.8)
- IDEA ULTIMATE2019.3版本(说明:如果用Community社区版,新建项目时候看不到Spring Initializer这个启动项,请下载如下插件Spring Assistant插件即可)
- SpringCloud版本是Hoxton.M3,读者也可以选择其他版本,建议版本不要太低
一、搭建一个空的Maven项目
选择【New】-->【Project】新建项目
填写项目名称,然后点击Finish
删除src目录,我们只需要这个maven项目的模板(或者说壳子)
接下来,我们将正式新建我们的项目了,我们需要新建一个Eureka注册中心和两个消费者,并把他们注册到Eureka注册中心上
一、我们新建一个注册中心名字叫eureka-server-8760,8760是我配置的端口,这个你自己可以随便取
右键项目名,选择新建New-->Module
<?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.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xu</groupId>
<artifactId>eureka-server-8760</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-server-8760</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.M3</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>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
</project>
application.yml文件
server:
port: 8760
eureka:
instance:
hostname: eureka-server-8760
client:
register-with-eureka: false #false 表示不向注册中心注册自己
fetch-registry: false # false 表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
#设置与Eureka Server交互的地址 查询服务和注册服务都需要依赖这个地址
启动类里的注解配置如下
package com.xu.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer // EurekaServer服务器端启动类,接受其它微服务注册进来
public class EurekaServer8760Application {
public static void main(String[] args) {
SpringApplication.run(EurekaServer8760Application.class, args);
}
}
现在我们试着启动这个注册中心模块,找到EurekaServer8760Application这个启动类,右键选择Debug运行
不出意外,正常启动如下
我们在浏览器中输入http://localhost:8760/,可以看到我们的注册中心暂时没有服务被注册到注册中心
二、我们现在新建我们的服务端,并把我们的服务端注册到我们的注册中心上去,我们的两个服务端叫eureka-client-8761和
eureka-client-8762
这里我们不再右键项目用New-》Module的方式,我们直接复制我们刚才的eureka-server-8760,修改子项目名称和Module名称
我们找到刚才复制粘贴的新模块的pom文件,右键选择【Add as Maven Project】,这样我们的项目就成功便成一个Maven项目了
先看我们的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.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xu</groupId>
<artifactId>eureka-client-8761</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-client-8761</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.M3</spring-cloud.version>
</properties>
<dependencies>
<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-web</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>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
</project>
application.yml文件如下
server:
port: 8761
spring:
application:
name: eureka-client-8761
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8760/eureka/
instance:
prefer-ip-address: true
启动类
package com.xu.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient
public class EurekaClient8761Application {
public static void main(String[] args) {
SpringApplication.run(EurekaClient8761Application.class, args);
}
}
我们右键启动这个启动类,可以看到成功启动后如下
我们刷新我们的注册中心地址http://localhost:8760/,看看有什么变化没有
另一个服务提供者类似,详细过程不赘述,直接复制eureka-client-8761模块可以得到eureka-client-8762服务提供者模块
启动这个新建(复制)的服务提供者eureka-client-8762
再次刷新我们的注册中心http://localhost:8760/
当然,当我们的两个服务提供者是同名的时候,他就是集群了,今天的内容到此为止,谢谢大家!
===============================================================================
如果您觉得此文有帮助,可以打赏点钱给我支付宝或扫描二维码
最新文章
- 孙鑫MFC学习笔记16:异步套接字
- 捉襟见肘之 CoreImage初级自制相机图片效果
- 如何修改 EM12c 中 SYSMAN 用户的密码?
- JDK的安装!力求简单明了!
- 【BZOJ】【3007】拯救小云公主
- visual studio 调试grunt
- 移动H5开发入门知识,CSS的单位汇总与用法
- Java数据结构和算法(七)——链表
- 为eclipse离线安装hibernate tools插件
- Spark SQL1.2测试
- SpringMVC 注解式开发
- Unity C# 自定义TCP传输协议以及封包拆包、解决粘包问题
- AI要被祭天了!删Bug,删着删着把全部代码都删了
- &;,~,|,^
- replicatedhq-ship 基于Kustomize 项目的快速kubernetes 应用部署工具
- Hadoop 新增删除节点
- C# Owin 创建与测试自己的中间件Middleware(二)
- clip-path的任意元素的碎片拼接动效
- __attribute__ ((attribute-list))
- vue实现前端导出excel表格
热门文章
- node - multer 加图片后缀
- Java虚拟机03(Java虚拟机内存模型)
- C# 控件缩写规范
- Django(五)1 - 4章实战:从数据库读取图书列表并渲染出来、通过url传参urls.py path,re_path通过url传参设置、模板语法
- Ubuntu1804 双网卡的设置
- Problem I: Ingenious Lottery Tickets
- 《ES6标准入门》(阮一峰)--8.函数的扩展
- 安装npm install时,长时间停留在fetchMetadata: sill 解决方法——换npm的源
- tensorflow学习笔记--dataset使用,创建自己的数据集
- JavaWeb开发校园二手平台项目 源码