注册中心Nacos/Eureka/zookeeper/Consul/etcd哪家强

1、Nacos专为 Dubbo 而生的注册中心与配置中心

nacos官方文档
Nacos 有三大主要功能:

  • 服务发现和服务健康监测
    Nacos 提供对服务的实时健康监测,阻止向不健康的主机或服务实例发送请求。
  • 动态配置管理
  • 动态 DNS 服务
    服务发现的未来一定是基于标准的 DNS 协议,而不是像 Eureka 或者像 ZooKeeper 这样的私有 API 或者协议, 同时在云上,在服务发现场景中,注册中心更关注的是可用性而不是数据一致性

除了对于阿里开源生态体系如 Dubbo 等自身的支持,Nacos 也非常强调融入其它的开源生态,包括 Java 的微服务生态体系 Spring Cloud,Kubernetes云原生生态体系。Nacos 无缝支持 Spring Cloud,为 Spring Cloud 用户其提供更简便的配置中心和注册中心的解决方案。

未来会有越来越多 java 生态的用户会选择 Kubernetes+Spring Cloud 组合,但不幸的是,在服务发现和配置管理的解决方案上,这 2 个体系都采用了完全不同的方案,这给同时采用 2 个体系的用户在注册中心和配置中心的需求上带来了非常大的不必要的复杂性。

nocos优点与缺点

Nacos 极易上手,几乎免安装,只需要简单的解压包(建议用1.0以上版本),启动服务即可。
Spring Cloud支持使用Eureka、Zookeeper、Consul实现服务发现的能力。Eureka 是其默认的也是推荐的服务注册中心组件。但从Eureka切换成Zookeeper、consul只需要改个依赖,加两行配置就可以了。

辟谣

  • Eureka没有闭源,是Eurkea 2.x分支不再维护!
  • Spring Cloud并不强依赖Eureka,不要过分解读

nacos依赖


    
        com.alibaba
        dubbo-registry-nacos
        0.0.1
       
    
    
    
        com.alibaba
        dubbo
        2.6.5
    
    
    
    
        com.alibaba.spring
        spring-context-support
        1.0.2
    

xml方式配置provider和consumer时只需将





启动docker镜像

docker search nacos
docker pull nacos/nacos-server
//单机方式启动
docker run --name nacos-standalone -e MODE=standalone -p 8848:8848 nacos/nacos-server:latest

测试

http://192.168.99.100:8848/nacos

linux/windows下单机启动

nohup sh startup.sh -m standalone &
startup.cmd -m standalone

应用启动个报错

    java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848]) tried

本地应用启动时报错,说明不是单机启动

nacos如何修改用户名密码

默认情况下用户名密码为:nacos/nacos
生产使用:


	org.springframework.boot
	spring-boot-starter-security

public static void main(String[] args) {
    //每次执行生成密文不同
    System.out.println(new BCryptPasswordEncoder().encode("nacos123"));
}

分别在usersroles增加一条记录


2、springboot Eureka

springcloud Eureka是基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。服务端和客户端均采用java编写,所以主要适用于java实现的分布式系统。

  • Eureka服务端即服务注册中心

    org.springframework.cloud
    spring-cloud-starter-eureka-server

通过@EnableEurekaServer注解启动一个注册中心

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false #默认情况下,该服务注册中心会将自己作为客户端注册自己,需禁用
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  • Eureka客户端用于处理服务的注册与发现

    org.springframework.cloud
    spring-cloud-starter-eureka

通过@EnableDisCoveryClient发现服务
通过如下属性指定服务注册中心的地址,启动应用Eureka信息面板就可以看到服务实例了。

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

客户端服务通过注解和参数配置方式,嵌入在客户端应用程序中,应用启动时向注册中心注册自身服务,并周期性的发送心跳来更新他的服务;同时也可以从服务端查询注册的服务信息并缓存到本地,并且周期性的刷新服务状态。

Eureka高可用注册中心


你可能感兴趣的:(springcloud)