注册中心的建立
1、增加pom文件;
2、修改yml配置文件;
3、添加@EnableEurekaServer注解;
4、启动进入服务注册页面。
微服务注册到注册中心
1、添加yml配置,寻找注册中心地址
2、添加@EnableEurekaClient注解在启动类;
3、启动服务注册页面,新增了一个注册的微服务。
配置修改:
<wiz_code_mirror>
Eureka:
instance:
instance-id: microservicecloud-8081 //主机映射名称的修改
prefer-id-address: true //访问路径可以显示ip
//info内容构建,替换error页面,添加maven的build标签配置后,增加以下配置。
info:
app.name: microservice
company.name: sun
build.artifact.id: $project.artifactId$
build.version: $project.version$
自我保护机制:
好死不如赖活着:宁可保留错误的服务注册信息,也不盲目注销健康的服务实例。
当心跳数重新恢复到阀值以上时,该节点自动退出自我保护机制。
<wiz_code_mirror>
eureka:
server:
enable-self-preservation: false//禁用自我保护机制,一般不使用
服务发现:
1、在启动类上新增注解@EnableDiscoveryClient
2、注入并访问发现的服务
<wiz_code_mirror>
@AutoWired
private DiscoveryClient client;
@GetMapping(value = "/dept/discovery")
public Object discovery(){
List<String> list = client.getServices();
List<ServiceInstance> srvList = client.getInstances("MICROSERVICE");
}
Eureka集群:
1、新增2个Eureka模块,修改hosts配置文件;
2、修改yml配置文件
<wiz_code_mirror>
eureka:
client:
service-url:
#defaultZone: http://localhost:7001/eureka //单机版
#defaultZone:http://eureka7002.com:7002/eureka/,http://eureka7002.com:7002/eureka/ #集群版
3、访问任意注册中心,在Ds Replicas 下新增了另外两个集群节点。
Eureka和ZooKeeper比较:
关系型数据库:事务实现了ACID理论;
非关系型数据库:分布式集群系统只能保证CAP原则的两项。
1、CP原则:Zookeeper实现,一台宕机后,会再次寻找leader,这个时间段无法达到A原则;
2、CA原则:Eureka实现,平等集群,一台宕机后,立即转发到另一台上。
自我保护机制保证高可用,在没心跳的情况下不会停止过期服务。
一般配合BASE原则使用,保证最终的一致性即可。
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false">
原文地址:https://www.cnblogs.com/shuchen007/p/10294036.html
时间: 2024-10-07 15:53:17