Eureka
Eureka_Server:存储各个微服务的联系信息
Eureka_client:说明该微服务的联系信息需要交给Eureka_Server中介进行备份
Eureka_Serve原理:
服务向中介Eureka_Serve发送 (心跳包),用来证明服务是有效,可供给其他微服务使用的 – 默认30s发送一次。如果中介Sureka_Server在90s内没有收到该微服务的心跳包,则会从中介移除该服务的联系信息
Eureka_Serve信息中介集群
复制方式完成集群内中介信息的同步
Eureka_Client:具有缓存机制,即可以缓存曾经使用到的其他服务的联系信息
2. 使用
2.1 Eureka_Server服务
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BeKsqOcj-1587806443382)(en-resource://database/24620:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
步骤1 – 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
步骤2 – 启动类中添加注解@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
步骤3 – 设置全局配置文件application.properties
#----配置服务名称及端口----
spring.application.name=eurekaServer
server.port=1111
#----服务注册中心配置----
#服务注册中心实例的主机名
eureka.instance.hostname=localhost
#是否向服务注册中心注册自己,默认为true
eureka.client.register-with-eureka=false
#由于注册中心的职责是维护服务实例,它并不需要去检索服务,所以也设置为false
eureka.client.fetch-registry=false
#服务注册中心的配置内容,指定服务注册中心的位置 - 使用逗号分隔配置多个中介进行信息集群
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
spring.cloud.inetutils.timeout-seconds=60
spring.profiles.active=product
#关闭中介的 服务联系信息自我保护功能 -- 只要服务没在90s内发送心跳包则直接从中介删除该服务联系信息
#eureka.server.enable-self-preservation=false
#注册中心检查服务的存活时间
#eureka.server.eviction-interval-timer-in-ms=1000
步骤4 – 启动Eureka_Server中介服务,访问http://localhost:1111/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LwWQhwDX-1587806443387)(en-resource://database/24618:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
2.2 Eureka_Client服务
创建一个Product_Server微服务为例
步骤1 – 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
步骤2 – 启动类中添加注解@EnableEurekaClient
@SpringBootApplication
@EnableEurekaClient
public class ProductServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ProductServiceApplication.class, args);
}
}
步骤3 – 设置全局配置文件application.properties
server:
port: 4040
eureka:
instance:
instance-id: productService
prefer-ip-address: true
client:
service-url:
defaultZone: http://127.0.0.1:1111/eureka/
spring:
application:
name: productService
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/springcloudproject?serverTimezone=UTC
driver-class-name: com.mysql.jdbc.Driver
mybatis:
type-aliases-package: top.linruchang.product_service.domain
mapper-locations: classpath:mapper/*Mapper.xml
configuration:
cache-enabled: true
lazy-loading-enabled: true
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
returnPageInfo: check
步骤4 – 启动Eureka_Server中介、以及多个Eureka_Client微服务,访问http://localhost:1111/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-10nn1K6y-1587806443394)(en-resource://database/24728:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
2.3 IDEA模拟集群,即在多个端口号配置服务
在配置文件中,用逗号分隔即可
# 配置在Eureka_Server即集群中介,他们之间的信息是同步的
# 配置在Eureka_Client则他们的联系信息会同时发送心跳包向这几个中介进行注册联系信息
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:1111/eureka/,http://127.0.0.1:1112/eureka/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LMiGEZvX-1587806443400)(en-resource://database/24752:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nNtrflxf-1587806443405)(en-resource://database/24748:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vLF5erbG-1587806443408)(en-resource://database/24750:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/46490.html
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!