springCloud是目前非常流行的一款微服务框架,springCloud本身集成了很多优秀的第三方开源框架用来快速创建微服务系统,简便易用,关于springCloud更多的信息可以在百度搜索有更加专业和详细的介绍
本节主要讲解如何集成服务注册组件,eureka是netflix开源的一款服务治理和服务发现的组件,所有的服务都需要被注册才能使用微服务的方式访问和调用
微服务是多个组件的集合体,需要服务发现,配置中心,消息总线,负载均衡,断路器,数据监控等,包括后期采用doker部署微服务,需要的知识面比较多而且比较广,搭建一套微服务系统也并不容易,接下来开始入正题
目录
1、创建一个微服务项目
用idea,新建一个maven项目
输入groupId和Artifactid
项目名和目录名可以采用驼峰法好看点
完成后删除src目录,只留下pom.xml文件
2、添加微服务通用的依赖
在pom.xml添加都会用到的springBoot依赖以及springCloud依赖,以及maven编译插件,然后点idea弹出的导入maven依赖
<?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> <packaging>pom</packaging> <modules> <module>cloud-eureka</module> </modules> <groupId>com.apgblogs</groupId> <artifactId>spring-cloud-study</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> </project>
3、创建eureka服务注册组件并添加依赖
在项目右键新建一个maven子模块
模块名加入分隔符-,也可以不加,显得好看点
点击完成后,在pom.xml中添加eureka服务端组件,完整pom.xml文件如下,并点击idea弹出的maven依赖导入
<?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>spring-cloud-study</artifactId> <groupId>com.apgblogs</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.apgblogs</groupId> <artifactId>cloud-eureka</artifactId> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies> </project>
4、创建eureka启动类和配置文件
创建一个包并创建启动类,如下图所示
- @EnableEurekaServer 此注解表示启用服务注册组件,是一个eureka的服务端
创建springBoot配置文件,配置文件中采用两个端口,这样做的目的是实现eureka的高可用,也就是互相注册,如果其中一个服务出问题了,还有另一个服务在运行着不会导致严重的宕机,当然也可以用docker-compose实现高可用,暂时采用这种方式
- service-url.defaultZone 表示当前服务注册到服务中心的地址,后续的其他服务组件都将采用这种方式注册
- profile 表示启动时激活那个配置文件
- --- 此分隔符就是实现分割多个配置参数的作用
5、启动eureka服务注册中心
在idea启动配置里面,复制一个同样的启动配置,填入激活的配置文件名称
出现多个springBoot启动的时候,idea会提示是否使用run dashboard面板,这个面板对于我们同时启动多个组件很方便还可以分组管理
两个同时启动
6、浏览器访问eureka可视化注册中心
在浏览器访问 http://localhost:8801/
会发现服务注册中心已经都出现了,有两个而且是高可用的
7、项目源码,分支为eureka
https://gitee.com/apgblogs/springCloudStudy/tree/eureka/
现在就已经完成了第一个组件,服务注册中心,后续其他的组件都将注册到服务中心,有任何问题可以留言评论