1.微服务
定义:基于单个应用围绕业务进行拆分,拆分出来每一个服务独立项目单独部署运行自己计算机进程里面,基于分布式服务管理
2.springc loud
定义:用来帮助开发人员快速构建─套分布式应用微服务工具集(服务注册发现负载均衡路由组件统一配置管理)
3.环境搭建
springcloud&springboot
版本:
springcloud H.SR6
springboot 2.2.5版本
JDK1.8
maven 3.8
idea2021
a、创建springcloud parent
b、在父项目中继承springboot父项目
<!--引入springboot依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.2.5.RELEASE</version>
</parent>
<!--维护springcloud版本-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
服务注册中心
1.服务注册中心组件
定义:服务注册中心就是在整个微服务架构单独抽取―个服务,这个服务不完成项目中任何业务功能,仅仅用来在微服务中记录微服务以及对整个系统微服务进行健康状态检查,以及服务元数据信息存储
2.服务注册中心的开发
- 可以对所有的微服务的信息进行存储,如微服务的名称、IP、端口等
- 可以在进行服务调用时通过服务发现查询可用的微服务列表及网络地址进行服务调用
- 可以对所有的微服务进行心跳检测,如发现某实例长时间无法访问,就会从服务注册表移除该实例。
常用注册中心组件: - eureka(netflix)
- zookeeper(java)
- consul(GO)
- nacos(java阿里巴巴)
3.Eureka(默认端口8761)
简化:Eureka是Hetflix开发的服务发现框架springcloud-netflix-eureka服务注册中心
Eureka包含两个组件: Eureka server和Eureka client .
4.开发Eureka server服务注册中心
a. 创建springboot项目
b. 引入euraka server依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>3.0.3</version>
</dependency>
c. 配置文件
#eureka默认端口8761
serve:
port: 8761
#eureka server服务注册中心地址暴露服务地址
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka
d.在入口处开启加入注解
@SpringBootApplication
@EnableEurekaServer//开启eureka端
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class,args);
}
}
Eureka server细节
1.在项目启动成功之后默认在eureka server管理界面中出现UNKNOWN一个未知应用
注意:在微服务架构中服务名称代表服务唯一标识,至关重要,服务名称必须唯一使用时必须通过如下配置指定服务名称
spring . applicat ion . name=EUREKASERVER 注意服务名不能有下划线 默认服务名不区分大小写
2.在eureka server启动过程中报错:
出错解释: eureka含有两个组件erueka server、eureka client组件,当项目中引入eureka server组件时,这个组件同时将eurek aclient引入到项目中,因此启动时即会将自己作为一个服务中心启动,同时也会将自己作为服务客户端进行注册,默认启动时立即注册,注册时服务还没有准备完成因此会出现当前错误。
3.如何关闭erueka server自己注册自己
#关闭eureka的立即注册
eureka:
client:
fetch-registry: false
#让当前应用仅仅是服务服务注册中心
eureka:
client:
register-with-eureka: false