F版本SpringCloud 4—Eureka注册中心开发和客户端开发

前言
通过前三篇文章,用大白话介绍了微服务和SpringCloud以及服务治理相关的概念,从这篇开始SpringCloud代码的开发。
SpringCloud 项目环境搭建
SpringCloud所有的demo都会采用 多模块开发 的方式,通过父项目约束整个项目所有Module的版本,如果你不知道什么是 多模块开发,请阅读我的文章:SpringBoot 多模块开发 https://mp.weixin.qq.com/s/CDWnG0wr6hk6TvDYIELIaQ
创建父项目「约束版本」
父项目最大的作用就是约束版本,所有的步骤请严格按照教程进行,会有全面的截图
1.在IDEA中创建一个maven项目(project)



2.修改pom文件
SpringCloud版本选择:Finchley.SR2,SpringBoot版本选择:2.0.3.RELEASE
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>
<!--Finchley 版本的SpringCloud 依赖2.0.X的SpringBoot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lby</groupId>
<artifactId>cloud-demo-20f</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 父级项目 使用pom-->
<packaging>pom</packaging>
<properties>
<java.version>1.8</java.version>
<!-- 定义SpringCloud的版本号-->
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
</properties>
<!-- 约束整个项目的SpringCloud版本-->
<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>
Eureka注册中心开发「单机版」
1.基于Project创建一个新的Module

至于骨架,不选择任何骨架,maven还是Spring Initializr主要看个人习惯,我选择maven。



2.修改eureka-server-8801项目的pom文件
观察pom文件可以发现,eureka-server-8801项目已经自动继承了父项目
注册中心的完整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">
<!-- 通过maven方式创建的项目,可以看到已经自动的继承了父项目,所以我们
只需要配置依赖就可以了
-->
<parent>
<artifactId>cloud-demo-20f</artifactId>
<groupId>com.lby</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eureka-server-8801</artifactId>
<dependencies>
<!-- 导入注册中心的依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
3.创建SpringBoot的启动类,添加注解

代码如下:
package com.lby;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* @author luxiaoyang
* @create 2020-03-29-16:16
* @SpringBootApplication 声明当前类为SpringBoot的启动类
* @EnableEurekaServer 声明当前项目为注册中心
*/
@SpringBootApplication
@EnableEurekaServer
public class EurekaServer8801 {
public static void main(String[] args) {
SpringApplication.run(EurekaServer8801.class,args);
}
}
4.创建配置文件,写入注册中心的配置
server:
port: 8801
eureka:
client:
# 在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为
# 因为当前服务就是注册中心 不需要向任何人注册
# eureka.client. register-with-eureka:由于该应用为注册中心,所以设置为false,代表不向注册中心注册自己
registerWithEureka: false
# eureka. client . fetch-registry:由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以也设置为false。
# 不主动发现别人
fetchRegistry: false
# 声明注册中心的地址
serviceUrl:
defaultZone: http://localhost:8801/eureka/
通过以上四步 就完成注册中心的搭建
5.启动项目,访问http://localhost:8801可以访问注册中心的管理页面

No application available 目前没有客户端注册到注册中心
Eureka客户端开发
不用关闭注册中心,接下来创建一个客户端,让客户端注册到注册中心上
创建客户端的步骤和注册中心类似
- 创建项目结构
- 修改pom
- 修改启动类
- 修改配置文件
1.创建客户端项目 eureka-client-8803


2.修改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">
<parent>
<artifactId>cloud-demo-20f</artifactId>
<groupId>com.lby</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eureka-client-8803</artifactId>
<dependencies>
<!-- Eureka 客户端的依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- web的依赖-->
<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>
</dependency>
</dependencies>
</project>
3.创建启动类

package com.lby;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
/**
* @EnableDiscoveryClient 声明当前项目为一个 Eureka客户端 可以被发现的客户端
* @EnableEurekaClient 声明当前项目为一个 Eureka客户端
*
* 区别:
* @EnableEurekaClient 只能向 Eureka 注册中心注册
* @EnableDiscoveryClient 除了向 Eureka 注册中心注册 可以向其他的注册中心注册 zookeeper consul
*/
@SpringBootApplication
@EnableEurekaClient
public class EurekaClient8803 {
public static void main(String[] args) {
SpringApplication.run(EurekaClient8803.class,args);
}
}
4.创建并修改配置文件

通过上面的四步,就完成一个Eureka 客户端的搭建
5.启动项目 观察注册中心的监控页面 看一看有没有服务注册到注册中心
确保注册中心和客户端都启动了
打开注册中心的网址http://localhost:8803 可以看到

通过以上步骤就完成了最基本的注册中心和客户端的开发
总结
通过SpringCloud做微服务开发,不管是注册中心,还是客户端,还是网关等,SpringCloud几乎所有的组件都是四板斧:
- 导入依赖
- 启动类上加注解
- 写配置文件
- 直接使用
恭喜你完成了本章的学习,为你鼓掌!如果本文对你有帮助,请帮忙点赞,评论,转发,这对作者很重要,谢谢。

要掌握SpringCloud更多的用法,请持续关注本系列教程。
求关注,求点赞,求转发
欢迎关注本人公众号:鹿老师的Java笔记,将在长期更新Java技术图文教程和视频教程,Java学习经验,Java面试经验以及Java实战开发经验。
F版本SpringCloud 4—Eureka注册中心开发和客户端开发的更多相关文章
- SpringCloud之Eureka注册中心原理及其搭建
一.Eureka简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCl ...
- F版本SpringCloud 5—Eureka集群和自我保护机制
源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials 前言 上篇文章中,通过代码搭建了Eureka注册中心和客户端,是Eureka的简单应用 ...
- SpringCloud(二) - Eureka注册中心,feign远程调用,hystrix降级和熔断
1.项目模块介绍 2. 父项目 主要依赖 spring-cloud 的 版本控制 <properties> <!-- springCloud 版本 --> <scd.ve ...
- SpringCloud(一)Eureka注册中心
Eureka简介 Eureka作为注册中心,管理各种服务功能包括服务的注册.发现.熔断.负载.降级等 Eureka注册中心实例 Eureka Server 1.pom文件配置SpringBoot.Sp ...
- SpringCloud之eureka注册中心入门
eureka注册中心 一.基本概念 SpringCloud封装 了Netflix公司的eureka作为自己微服务的注册中心.这个注册中心和dubbo中的zookeeper很相似,简单来说,只要你可以将 ...
- springCloud 之 Eureka注册中心高可用配置
springCloud的eureka高可用配置方案思路是:几个服务中心之间相互注册,比如两个注册中心,A注册到B上,B注册到A上,如果是三个注册中心则是:A注册到BC上,B注册到AC上,C注册到AB上 ...
- springcloud之Eureka注册中心
参考博客:https://www.cnblogs.com/ityouknow/p/6854805.html 背景: Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Ser ...
- Spring-Cloud之Eureka注册中心环境搭建(单节点)
一 Eureka概述 服务启动时会生成服务的基本信息对象InstanceInfo,然后在启动时会register到服务治理中心. 注册完成后会从服务治理中心拉取所有的服务信息,缓存在本地. 之后服务会 ...
- 微服务——SpringCloud(Eureka注册中心搭建)
IDE:IDEA,说实话,真不怎么喜欢用Eclipse这个IDE,太锻炼人了 配置模式:Grandle 微服务框架:SpringCloud 第一步 创建一个Spring Initializr项目 第二 ...
随机推荐
- 使用hexo,创建博客
下载hexo工具 1 npm install hexo-cli -g 下载完成后可以在命令行下生成一个全局命令hexo搭建博客可用thinkjs 创建一个博客文件夹 1 hexo init 博客文件夹 ...
- Java GUI记账本(基于Mysql&&文件存储两种版本)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.java * 作者:常轩 * 微信公众号:Worldh ...
- win10 64位 安装JDK1.8
win10 64位 jdk1.8 配置Java环境,是否安装JRE. 一.安装得有JRE JDK和JRE分别安装再不同的文件夹下 新建:JAVA_HOME 值:JDK的安装路径 新建:CLASSPAT ...
- Flask设置Access-Control_Allow_Origin实现跨域访问
前端访问Flask的接口,浏览器报错:has been blocked by CORS policy: No 'Access-Control-Allow-Origin' heade 需要将Flask的 ...
- USB小白学习之路(3) 通过自定义请求存取外部RAM
通过自定义请求存取外部RAM 1. 实验简述 此实验是对自定义的供应商特殊命令(vendor specific command bRequest = 0xA3)进行解析,程序中的read me说明如下 ...
- 解决getImageData跨域问题
在项目开发过程中要用到html5增加的getImageData方法来实现刮刮卡的效果,后台上传图片,手机端用手刮.在本地开发没遇到问题,上线之后发现刮不了,提示"Uncaught Secur ...
- Ubuntu 18.04安装搜狗输入法
Ubuntu 18.04安装搜狗输入法 打开 terminal,输入 fcitx,检查是否安装搜狗输入法依赖,若提示未安装使用以下命令安装 sudo apt-get install fcitx-bin ...
- Apollo 高可用配置中心搭建教程
Apollo开源文档中搭建流程讲的很详细,此处只提供传送门 1.Apollo配置中心开源地址 2.服务包下载地址 3.教程文档地址 4.视频教程地址 5.Apollo使用指南 说明: apollo-c ...
- 使用NPOI将Excel表导入到数据库中
public string ExcelFile() { //指定文件路径, string fileName=@"d:\Stu.xls"; //创建一个文件流,并指定其中属性 usi ...
- 基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境
基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境 前言一.环境准备环境介绍软件下载VMware下安装UbuntuUbuntu下Anaconda的安 ...
