Eureka服务注册与发现

注册中心的建立
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