how2j.cn


13分33秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器

步骤 1 : 先运行,看到效果,再学习   
步骤 2 : 模仿和排错   
步骤 3 : SpringCloud 开发   
步骤 4 : eclipse 还是 idea?   
步骤 5 : 注册中心概念   
步骤 6 : 删除子模块   
步骤 7 : 父项目 pom.xml   
步骤 8 : 创建子模块   
步骤 9 : 模块名称   
步骤 10 : pom.xml   
步骤 11 : EurekaServerApplication   
步骤 12 : application.yml   
步骤 13 : 启动并访问   

步骤 1 :

先运行,看到效果,再学习

edit
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
老规矩,先下载右上角的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。

作为 SpringCloud 项目,里面是有很多的微服务的。 为了管理这些微服务,SpringCloud 提供了现成的产品: Eureka 注册中心。 本知识点就是讲解如何创建这个注册中心滴。

运行 EurekaServerApplication,并访问:

http://127.0.0.1:8761/
先运行,看到效果,再学习
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。
模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较正确答案 ( 可运行项目 ) 和自己的代码,来定位问题所在。
采用这种方式,学习有效果,排错有效率,可以较为明显地提升学习速度,跨过学习路上的各个槛。

推荐使用diffmerge软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。
这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来
这里提供了绿色安装和使用教程:diffmerge 下载和使用教程
步骤 3 :

SpringCloud 开发

edit
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
接下来,我们就会对这个项目,用 SpringCloud 的方式进行开发了
步骤 4 :

eclipse 还是 idea?

edit
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
在这个项目的开发过程中,站长是使用的 eclipse 进行的,换句话说,这个项目是一定可以在 eclipse 里跑起来的。
而在教程制作过程中, 站长就准备用 idea 来制作了,这样在 idea 使用过程中,如果碰到了什么问题,也可以当场解决,这样就可以帮助同学们扫清一些学习上的障碍,使得本项目可以同时在 eclipse 和 idea 里都顺滑地运行起来。
步骤 5 :

注册中心概念

edit
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
作为 SpringCloud 项目,里面是有很多的微服务的。 为了管理这些微服务,SpringCloud 提供了现成的产品: Eureka 注册中心。 本知识点就是讲解如何创建这个注册中心滴。
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
首先删除掉在前面父子项目里创建的 testChildProject 这个子项目,因为它存在的目的是为了演示如何用不同的 IDE 子模块的过程。
这里不用它了,为了看起来更清爽, 就把它删掉吧。
选中 testChildProject 然后点击 delete 键,ok 确认。

删除之后,记得在 pom.xml 里把 modules 也删除掉。
删除子模块
步骤 7 :

父项目 pom.xml

edit
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
当前的父项目,只是一个空项目,里面仅仅有一个 Hutool 工具类的依赖。
我们要开发 springcloud 项目,就需要建立对 springcloud 的依赖。
使用如下 pom.xml, 它有以下改动:
1. 基于 springboot 2.x. 站长有个 springboot 系列教程:Springboot 系列教程,它是基于 1.x的。 而springcloud,我们采用 2.x 来开发。

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/>
</parent>

2. springcloud 有很多版本,我们采用 Finchley.RELEASE 来进行开发。

<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
<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>cn.how2j.trend</groupId> <artifactId>trendParentProject</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> <relativePath/> </parent> <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>Finchley.RELEASE</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.3.1</version> </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> </project>
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
创建子模块: eureka-server
创建子模块流程在前面的教程里也有讲过,这里就不赘述了。
创建子模块
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
模块名称这里记得输入 eureka-server,否则会使用默认的 没有分割线的 eurekaserver, 就不好看啦
模块名称
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
修改子模块的 pom.xml 如下。
主要是增加了 spring-cloud-starter-netflix-eureka-server 这个 jar包的依赖,而这个 jar 包就是用来构建注册中心项目的。
<?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>trendParentProject</artifactId> <groupId>cn.how2j.trend</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>eureka-server</artifactId> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies> </project>
步骤 11 :

EurekaServerApplication

edit
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
本来有个 App.java 删掉就是了。
创建 EurekaServerApplication 启动类。
1. @SpringBootApplication 注解表示它是个启动类
2. @EnableEurekaServer 表示它是个注册中心服务器
3. 默认端口号是 8761
4. 进行端口号判断,如果这个端口已经被占用了,就给出提示信息。
5. 使用 SpringApplicationBuilder 进行启动
package cn.how2j.trend; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; import cn.hutool.core.util.NetUtil; @SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { //8761 这个端口是默认的,就不要修改了,后面的子项目,都会访问这个端口。 int port = 8761; if(!NetUtil.isUsableLocalPort(port)) { System.err.printf("端口%d被占用了,无法启动%n", port ); System.exit(1); } new SpringApplicationBuilder(EurekaServerApplication.class).properties("server.port=" + port).run(args); } }
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
配置文件,提供 eureka 的相关信息。
hostname: localhost 表示主机名称。
registerWithEureka:false. 表示是否注册到服务器。 因为它本身就是服务器,所以就无需把自己注册到服务器了。
fetchRegistry: false. 表示是否获取服务器的注册信息,和上面同理,这里也设置为 false。
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 自己作为服务器,公布出来的地址。 比如后续某个微服务要把自己注册到 eureka server, 那么就要使用这个地址: http://localhost:8761/eureka/

name: eurka-server 表示这个微服务本身的名称是 eureka-server

注: 此时是没有 resources 目录的,解决办法请看: idea 创建的 maven项目没有 resources目录
application.yml
eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ spring: application: name: eureka-server
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

spring:
  application:
    name: eureka-server
完整的 SpringCloud 趋势量化投资项目,使用 Springboot 、Vue.js、redis, Zipkin, RabbitMQ, SpringCloud 等一整套技术栈, 从无到有涵盖全部58个知识点,378个开发步骤, 充实 SpringCloud 项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
运行 EurekaServerApplication,并访问:
http://127.0.0.1:8761/
这就是注册中心的管理界面,主要看 :Instances currently registered with Eureka, 可以发现信息是:No instances available。
这表示 暂时还没有微服务注册进来。
接下来的课程,就会讲解如何注册微服务进来啦。
启动并访问


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2020-03-18 想了下为什么要有Eureka
文正

使用SpringCloud开发,就代表你项目是个分布式的项目,而分布式的项目避免不了的就是每个服务之间的通信问题,比如数据获取的子系统IP是123,视图展示的子系统发的IP是124,当一个请求传到试图展示的时候,试图展示就要向数据获取服务发送远程调用,没有eureke的话,就是在代码里显示的调用http://124,假如有一头服务器地址变了变成125,你想想你是不是得进代码里重新改,并且重新部署,万一你的调用显示的在代码里写了很多,改个代码都是噩梦,还存在漏改的可能。而有了Eureka,就好办了,首先数据服务在Eureka注册,并给个服务名,当视图展示需要数据的时候,就去Eureka找这个数据服务,通过服务名调用他,服务名里又有IP地址,而地址会变,服务名一般不会变,以后你需要改就很方便,只需要在配置文件改,同时再局部的重启项目,也不用整个项目全部重新部署,实际上Eureka起到的不止这个作用,还有监视每个再其上面注册的服务的健康状态,会一直和注册的服务保持联系,当某个服务死了,他就会把他从注册中心下架,或者某个服务某段时间内的请求失败的比例达到一定,就产生服务的自我保护。




1 个答案

how2j
答案时间:2020-03-18
很好的总结,赞!



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2020-03-14 为什么我启动以后端口变成8080
reganhcf




照着做的,不知道为什么端口就变成了8080
加载中
package cn.how2j.trend;

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

import cn.hutool.core.util.NetUtil;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
	
	public static void main(String[] args) throws Exception {
		int port = 8761;
		if(!NetUtil.isUsableLocalPort(port)) {
			System.out.printf("端口%d被占用 " ,port);
			System.exit(1);
		}
		
		SpringApplication.run(EurekaServerApplication.class, args);
	}

}



spring:
  application:
    name: eureka-server

eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

							


2 个答案

how2j
答案时间:2020-03-15
/ok

reganhcf
答案时间:2020-03-14
没事了 找到问题了



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2020-02-23 启动ApplicationContext出错,打开不了localhost:8761
2020-02-22 创建 EurekaServerApplication 启动类的快捷键是什么啊?
2020-02-04 配置好maven但是jar老导不进去


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 10 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 实践项目-趋势投资SpringCloud-服务注册中心 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 745032160
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图