Spring Cloud 学习记录及实践(1)-DS 服务注册中心
在正式学习Spring Cloud之前,可能需要先了解一下微服务的概念。知乎有文: https://zhuanlan.zhihu.com/p/24777431
Spring Cloud 简介
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。(官网照搬)
在 Spring Cloud 中有多种服务注册中心的实现,包括支持最好的Eureka,基于zookeeper的注册中心等等。本质上的区别在这里就不赘述了。本文使用Eureka作为整个学习demo的服务注册中心,包括后面会用到的服务中心的HA机制。
下面就开始搭建一个最基本的Spring Cloud项目。项目全程使用maven来构建,如果不熟悉maven的童鞋可以自己先了解下maven。
当然这里创建 Spring Cloud项目有多种方式,最方便的方式是使用IDEA直接创建一个Spring Cloud项目
使用maven的方式
1. 创建一个根目录的文件夹,用于存放以后所有Spring Cloud项目的相关项目,然后在IDEA中打开这个文件夹 Spring-Cloud-Project
2. 创建一个基本的maven项目。右键IDEA中打开的文件夹,选择new -> module 选中maven选项,选中Create from archetype, 在archetype列表中选择 maven-archetype-quickstart -> next, 指定groupId 为 com.bool.spring, artifactId 为 eureka-server。然后一直next 直到项目创建完成。至此 不出意外一个基本的maven项目创建完毕
结构如下:
--Spring-Cloud-Project --eureka-server --src --main --java --resources --test --pom.xml
3. 打开eureka-server, 在pom.xml文件中引入如下代码
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.7.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>Dalston.SR3</spring-cloud.version> </properties> <dependencies> <!--eureka server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <!--spring项目的maven 打包插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.6.RELEASE</version> </dependency> </dependencies> <!--指定jar文件的启动类--> <configuration> <mainClass>com.bool.spring.App</mainClass> </configuration> </plugin> </plugins> </build> <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>
4. 打开eureka-server, 修改java目录下的启动类文件 **.java (一般在groupId 生成的包路径下),添加以下代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication // 基本的spring boot 项目环境 @EnableEurekaServer // 启用服务注册中心 public class App{ public static void main(String[] args) { SpringApplication.run(App.class, args); } }
5. 在main文件夹中创建resources文件夹,或直接在IDEA Project structure (ctrl+shift+alt+s)中创建,并指定为 resources 类型。接下来创建 application.yml 文件(直接File->New->file application.yml创建即可)并添加如下内容:
server: port: 8080 # 指定启动端口 spring: application: name: eureka-ha # 指定应用名称 eureka: instance: hostname: localhost # 指定运行的主机 client: serviceUrl: defaultZone: http://localhost:${server.port}/eureka/ # 注册中心地址
- 接下来就可以启动这个Spring Cloud 基于 Eureka 创建的独立的服务注册中心了,打开App.java 右键run AS,启动完成后打开浏览器 http://localhost:8080 即可看到注册中心的信息页面
使用IDEA 创建Spring项目的方式
1. 使用IDEA打开创建好的Spring-Cloud-Project文件夹,
选中项目右键 new -> module 选中左边项目类型中的 Spring Initializr -> next ->
自此整个基于Spring Boot 的环境以及Spring Cloud Eureka 的基本环境就搭建好了
2. 接下来就是将上面的第4步和之后的流程走一下就Ok了
这样Spring Cloud服务中心的搭建就全部结束了,整个流程还算是比较简单,但初次尝试的时候还是会遇到一些莫名的问题,包括maven,spring boot 相关的一些问题都有可能出现,希望大家在尝鲜的时候多多分享一下其中遇到的坑。
声明一下,本人也是刚刚接触Spring Cloud 不久,包括后续更新的博文中肯定会存在一些不足和缺陷,希望大家谅解
项目文件地址: https://github.com/heart-bool/Spring-Cloud-Project/
注: 由于创建的时间是在国庆之前,也没想过写博文,其中也包括了一些我自己加的一些东西,参考的时候可以忽略
- 点赞
- 收藏
- 分享
- 文章举报
- spring-cloud项目学习与实践记录之——服务注册与发现
- SpringCloud学习记录(1)— Eureka 服务的注册与发现(Finchley篇)
- SpringCloud 学习记录(一):服务注册与发现(eureka+feign)
- 学习笔记:微服务-2.spring cloud Eureka server 注册中心搭建
- SpringCloud微服务架构学习(三)注册中心
- Spring cloud学习笔记1-服务注册中心Eureka
- 微服务学习SpringCloud之注册中心界面配置 actuator
- SpringCloud微服务04-关于Eureka注册中心可能出现的相关问题和解觉方案(高可用、失效剔除、自我保护)
- Spring Cloud微服务实战学习记录(第二章)
- Spring Cloud Eureka 服务注册与发现中心(一)
- Spring Cloud Eureka 入门 (一)服务注册中心详解 「Spring Cloud Eureka 入门系列」 Spring Cloud Eureka 入门 (一)服务注册中心详解 Spr
- SpringCloud学习五:服务注册以消费测试
- Spring Cloud构建微服务架构(六)高可用服务注册中心
- SpringCloud 笔记 (一)---- 简单搭建服务注册中心与服务,实现服务注册中心高可用
- SpringCloud服务注册与发现(Eureka 注册中心)
- 【Spring Cloud】Eureka服务注册中心搭建
- 【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)
- SpringCloud 学习笔记------服务的注册和发现
- SpringCloud学习笔记----Euraka注册中心
- spring cloud快速入门教程(二)服务注册中心Eureka