精华内容
下载资源
问答
  • 注册中心Nacos

    万次阅读 2019-04-23 20:23:24
    Nacos专为 Dubbo 而生的注册中心与配置中心 nacos官方文档 Nacos 有三大主要功能: 服务发现和服务健康监测 Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。 动态配置管理 配置中心化...

    nacos

    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依赖

    <!-- Dubbo Nacos registry dependency -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo-registry-nacos</artifactId>
            <version>0.0.1</version>
        </dependency>   
        
        <!-- Dubbo dependency -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.5</version>
        </dependency>
        
        <!-- Alibaba Spring Context extension -->
        <dependency>
            <groupId>com.alibaba.spring</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>1.0.2</version>
        </dependency>
    
    

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

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />
    或<dubbo:registry  address="zookeeper://127.0.0.1:2181" />
    
    <!-- 使用 Nacos 注册中心 -->
    <dubbo:registry address="nacos://127.0.0.1:8848"/>
    

    启动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
    生产使用:

    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    
    public static void main(String[] args) {
        //每次执行生成密文不同
        System.out.println(new BCryptPasswordEncoder().encode("nacos123"));
    }
    

    分别在usersroles增加一条记录


    展开全文
  • 注册中心nacos

    2021-07-23 08:41:54
    官网文档 仓库地址 一。下载安装运行 ... mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U ls -al distribution/target/ // change the $version to your actual path cd distributi

    官网文档
    仓库地址

    一。下载安装运行

    安装方式一:下载源码编译运行
        git clone https://github.com/alibaba/nacos.git
    				cd nacos/
    				mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  ls -al distribution/target/
    				// change the $version to your actual path
    				cd distribution/target/nacos-server-$version/nacos/bin
    
    安装方式二:下载压缩包解压方式
       https://github.com/alibaba/nacos/releases
       unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
      	运行nacos服务:
    	  	linux:         sh startup.sh -m standalone
    	    Windows:cmd 输入 startup.cmd -m standalone
    	    访问:http://localhost:8848/nacos     账号:nacos      密码:nacos
    	    
        关闭nacos服务
    		Linux/Unix/Mac     sh shutdown.sh
    		Windows  shutdown.cmd  或者双击shutdown.cmd运行文件。
    

    二。服务注册&发现和配置管理

    服务注册  
    curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
    
    服务发现  
    curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
    
    发布配置  
    curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
    
    获取配置  
    curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
    

    三。微服务注册到nacos

    1.pom引入依赖
    	<dependency>
    	    <groupId>com.alibaba.cloud</groupId>
    	    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        	<version>2.2.4.RELEASE</version>
    	</dependency>
    	
    2.yml指定微服务名称和注册中心
    	spring:
    	  application:
    	    	name: mock
    	  cloud:
    	    	nacos:
    	      		discovery:
    	        		server-addr: localhost:8848
    	      			namespace:   命名空间id
    
    3.主启动类加注解@EnableDiscoveryClient, 也可不用加
    4.访问nocos服务列表看是否有这个服务
    

    四。微服务从Nacos读取配置文件

    1.pom引入依赖
    	<dependency>
    	    <groupId>com.alibaba.cloud</groupId>
    	    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    	    <version>2.2.4.RELEASE</version>
    	</dependency>
    
    2.nacos页面添加配置文件,dataid为配置文件名称,为b步骤里面的服务名称+后缀
    3.主启动类加注解@EnableDiscoveryClient, 也可不用加
    4.resources下添加bootstrap.yml文件(application.yml文件就可以去掉)
    
    	spring:
    	  cloud:
    	    nacos:
    	      discovery:
    	        server-addr: localhost:8848   #配置中心地址
    	      config:
    	        file-extension: yml          #配置文件后缀
    	  application:
    	    name: mockConfig                 #配置文件名称
    	  profiles:
    	    active: dev,prod                 #项目中哪些bootstrap.yml生效
    	
    	
    	spring-Cloud-nacos-config-server-adds:配置中心地址
    	spring.application.name:配置名称
    	spring.cloud.nacos.config.file-extesion 后缀yaml
    	spring.profiles.active:dev  active-profile test-dev.yaml
    	spring.cloud.nacos.namespace:  命名空间(在nacos里面查看) 这个空间下的配置文件
    	spring.cloud.nacos.config.group:这个分组下的配置文件
    	一次启动多个配置redis mybatis等
    	spring.cloud.nacos.config.extensionsConfigs[0].data-id:redis.yml,mybatis.yml
    	spring.cloud.nacos.config.extensionsConfigs[0].group:
    	spring.cloud.nacos.config.extensionsConfigs[0].refresh:
    	spring.cloud.nacos.config.extensionsConfigs[1].data-id:redis.yml,mybatis.yml
    	spring.cloud.nacos.config.extensionsConfigs[1].group:
    	spring.cloud.nacos.config.extensionsConfigs[1].refresh:
    	    
    	通用配置
    	spring.cloud.nacos.config.shared-dataids:
    	spring.cloud.nacos.config.refreshable-dayside:动态刷新,配置中心改了,程序自动感应刷新
    	
    	如果多个配置文件有相同内容,加载优先级
    	名称-profile-后缀
    	名称-后缀
    	应用名称
    	大于扩展
    	大于共享
    

    五。Java SDK读取nacos上配置文件的内容

    private void readNacosConfig() throws NacosException {
        Properties properties = new Properties();
        // nacos服务器地址,127.0.0.1:8848
        properties.put(PropertyKeyConst.SERVER_ADDR, "127.0.0.1:8848");
        // 配置中心的命名空间id
        properties.put(PropertyKeyConst.NAMESPACE, "public");
        ConfigService configService = NacosFactory.createConfigService(properties);
        // 根据dataId、group定位到具体配置文件,获取其内容. 方法中的三个参数分别是: dataId, group, 超时时间
        String content = configService.getConfig("configFileName-dev.yml", "DEFAULT_GROUP", 3000L);
        // 因为我的配置内容是JSON数组字符串,这里将字符串转为JSON数组
        System.out.println(content);
    }
    
    展开全文
  • 注册中心nacos集群环境搭建 本文主要介绍:搭建高可用的Nacos集群环境,其中Nginx作负载均衡,Mysql存储持久化数据,搭建环境使用组件版本如下,搭建是可以根据实际需要更改版本: Linux :centos7 Mysql :5.7.2...

    注册中心nacos集群环境搭建

    本文主要介绍:搭建高可用的Nacos集群环境,其中Nginx作负载均衡,Mysql存储持久化数据,搭建环境使用组件版本如下,搭建是可以根据实际需要更改版本:

    1. Linux :centos7
    2. Mysql :5.7.2(建议使用版本大于5.7,持久化数据)
    3. Nginx :1.18.0 (负载均衡)
    4. nacos :1.1.4 (注册中心)
    5. jdk:8u162-linux-x64 (nacos运行需要jdk环境)

    环境整体架构:
    整体架构规划

    搭建环境分为以下几步,具体如下:

    1、JAVA环境准备

    ① 下载jdk上传的linux目录,解压;

    ② 配置环境变量:编辑 etc/profile文件添加如下内容,添加后重新加载配置文件即可:source /etc/profile;

    export JAVA_HOME=/opt/java8/jdk1.8.0_162 
    export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ 
    export PATH=$PATH:$JAVA_HOME/bin
    

    ③ java -version 验证是否安装成功

    2、Mysql环境准备

    这里使用的docker创建mysql数据库,生产环境中mysql一般不建议使用docker,docker安装Mysql的方法如下,连接正常表示创建成功,这里设置的root的密码为root:

    docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
    -d:后台运行容器
    -p 将容器的端口映射到本机的端口
    -v 将主机目录挂载到容器的目录
    -e 设置参数
    

    3、Nacos环境准备

    nacos的数据配置存储在每个实例对应的数据库,nacos源码的依赖可以看到使用的数据库是derby:

    <dependency>
       <groupId>org.apache.derby</groupId>
       <artifactId>derby</artifactId>
       <version>${derby.version}</version>
    </dependency>
    

    我们这里多个nacos实例搭建集群,需要将配置数据统一管理,这里选择Mysql数据库,因此我们需要对nacos的配置文件进行更改:

    ① 下载Linux版的nacos,下载地址:

    https://github.com/alibaba/nacos/releases/tag/1.1.4
    

    ② 上传到Linux指定目录,解压:

    tar -xvf nacos-server-1.1.4.tar.gz
    

    ③ 先添加数据库相关配置,更改conf下的application.properties文件,添加数据库相关信息如下:

    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=root
    

    ④ 创建nacos的数据库初始表和数据:/opt/mynacos/nacos/conf下的文件nacos-mysql.sql,连接安装的数据库后,创建database:nacos_config,然后执行数据库sql语句,执行完可以看到数据库中有对应的表数据,这样nacos中的配置信息都会使用mysql进行持久化。

    nacos-mysql数据库表

    ⑤ 更改nacos集群配置,有三个地方需要修改:

    • 修改conf下的cluster.conf文件:
    192.168.56.10:3333
    192.168.56.10:4444
    192.168.56.10:5555
    # 添加以下文件,代表集群情况下,三个实例端口分别为3333、4444、5555、ip为本地ip,此处不能填写127.0.0.1
    
    • 添加端口启动配置,修改startup.sh文件

    修改如下

    • 添加启动传入端口识别,可以按照自己需要的端口启动,添加 -Dserver.port=${PORT}

    在这里插入图片描述

    上述更改完之后,nacos启动方式为

    ./startup.sh -p 3333 
    # -p 填写相应端口
    

    4、修改nginx的配置

    ① 下载Nginx

    http://nginx.org/en/download.html
    

    ② 上传下载的tar包,并解压

    tar -xvf nginx-1.18.0
    

    ③ 如果没有sbin目录,需要编译

    ./configure --prefix=/opt/mynginx/nginx-1.18.0
    # /opt/mynginx/nginx-1.18.0 为nginx所在的目录
    

    ④ make & make install 编译,则可以生成sbin目录

    ⑤ 作三个nacos实例的负载均衡,需要修改conf下的配置文件nginx.conf:

    在这里插入图片描述

    # 修改说明:
    1、修改nginx默认监听端口,从80改为1111;
    2、采取负载均衡的方式访问后进行分流
    

    5、启动环境验证

    至此,环境配置相关的修改已经完成,可以启动nacos、nginx等验证环境是否正常,启动顺序如下:

    ​ 1、启动nacos,进入nacos的bin目录:

    ./startup.sh -p 3333 
    ./startup.sh -p 4444
    ./startup.sh -p 5555
    # -p 指定端口启动
    

    ​ 2、启动nginx,进入nginx的sbin目录下:

    ./nginx -c /opt/mynginx/nginx-1.18.0/conf/nginx.conf
    # -C 指定启动的配置文件
    

    ​ 3、访问验证,出现如下页面说明,环境搭建正常:

    http://192.168.56.10:1111/nacos/#/login
    # 192.168.56.10 为linux的ip,用户名密码均为 nacos
    

    nacos集群环境搭建成功的访问页面如下:
    在这里插入图片描述

    展开全文
  • 前言 注释掉的配置项,一般不需要设置,默认即可,特殊情况下可自定义 详解 ... # 是否开启Nacos注册 enabled: true # Nacos服务注册地址 server-addr: localhost:8848 # Nacos 认证用户 usernam

    前言

    注释掉的配置项,一般不需要设置,默认即可,特殊情况下可自定义

    详解

    spring:
      application:
        name: pearl-test
      cloud:
        nacos:
          discovery:
            # 是否开启Nacos注册
            enabled: true
            # Nacos服务注册地址
            server-addr: localhost:8848
            # Nacos 认证用户
            username: nacos
            # Nacos 认证密码
            password: 123456
            # 配置命名空间ID
            namespace: ba42e722-81aa-48f1-9944-9dca57d5f396
            # 分组名称
            group: PEARL_GROUP
            # 连接Nacos Server指定的连接点
            #endpoint: localhost
            # 设置注册时本服务IP地址
            #ip: 127.0.0.1
            # nacos客户端向服务端发送心跳的时间间隔,单位s
            #heart-beat-interval: 5
            # 集群名称
            #cluster-name: DEFAULT
            # 心跳超时时间,单位s
            #heart-beat-timeout: 15
            # 是否注册服务,默认为true
            #register-enabled: true
            # 当要上阿里云时,阿里云上面的一个云账号名
            #access-key:
            # 当要上阿里云时,阿里云上面的一个云账号密码
            #secret-key:
            # nacos客户端日志名,默认naming.log:
            #log-name:
            # 服务元数据标签
            #metadata:
            # 服务超时时,多少秒后删除
            #ip-delete-timeout: 30
            # 负载均衡权重,默认1,取值范围 1 到 100,数值越大,权重越大
            #weight: 1
            # 监视延迟,从nacos服务器拉取新服务的持续时间,单位ms
            #watch-delay: 30000
            # 注册服务时的服务名,默认${spring.application.name}
            #service: pearl-service
            # 服务是否是https
            #secure: false
            # 注册时本服务的端口,无需设置,自动探测
            #port: 8088
            # 选择固定网卡
            #network-interface: eth0
            # 是否从本地缓存中,默认false
            #naming-load-cache-at-start: false
    
    
    展开全文
  • 注册中心nacos完整部署及与eureka区别

    万次阅读 2019-10-15 12:12:00
    1. 场景描述 nacos最近用的比较多,介绍...(1)springcloud eureka是注册中心,负责微服务的注册与发现,起到承上启下的作用,在微服务架构中相当于人体的 大脑,很重要,nacos是阿里巴巴出的,功能类似eureka,区...
  • Java springboot 整合 Nacos

    2021-04-06 20:38:34
    Nacos注册中心使用 1)工程添加依赖包 <!-- nacos注册中心依赖包 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-...
  • 本文,我们来学习下如何在 Spring Boot 中,将 Nacos 作为一个注册中心,实现分布式环境下的服务注册与发现。 友情提示:对 Nacos 作为配置中心感兴趣的胖友,可以看看《芋道 Spring Boot 配置中心 Nacos 入门》...
  • 先去注册中心查询服务的服务器地址 调用方给对方发送http请求 1.1. 什么是 Nacos Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 ...
  • 一、ZooKeeper注册中心 Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,推荐使用。 流程说明: 服务提供者启动时: 向 ...
  • 本文主要对SpringCloudAlibaba组件Nacos实现服务注册发现和作为配置中心使用进行简单总结,其中SpringBoot使用的2.4.5版本,SpringCloud使用的2020.0.2版本,SpringCloudAlibaba使用的2021.1版本。
  • Nacos是一个注册中心组件,Nacos也是一个配置中心,比如SpringCloud中的Config,将配置文件版本化管理。 那么Nacos到底是什么呢, 总结为官网一句话就是: Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一...
  • 阿里注册中心nacos是今年开源的框架,一开始以为就是个zk。后面看了图才明白他对标的竟然是consul\eureka,最重要是完美支持dubbo。我想今年开源它也是别有用意 。(目前nacos0.7版本) Dubbo 融合 Nacos ...
  • 微服务注册中心 nacos 进github的nacos仓库,下载nacos的安装包, 使用的版本为nacos-server-1.1.3 双击如下的文件, 进行nacos服务的启动 启动完成后, 浏览器输入http://127.0.0.1:8848/nacos, 进入nacos的管理页面. ...
  • Spring Cloud(七):注册中心nacos-客户端视角
  • renren-fast注册中心nacos

    2020-04-27 12:25:31
    nacos版本1.1.3 1.renren-fast项目pom.xml中添加依赖 <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> ...
  • SpringBoot使用Nacos进行...2、SpringBoot应用使用Nacos作为注册中心需要引入依赖nacos-discovery-spring-boot-starter,该依赖的版本为0.2.4,引入如下依赖: <!-- 1. nacos-配置管理功能依赖 --> <
  • 07-服务注册中心Nacos应用实践

    千次阅读 2021-07-22 08:41:40
    Nacos注册中心简介 背景分析 在微服务中,首先需要面对的问题就是如何查找服务(软件即服务),如何在不同的服务之间进行通信?如何更好更方便的管理应用中的每一个服务,如何建立各个服务之间联系的纽带,由此注册...
  • 2.下载后上传到服务器的某个目录下 解压文件:tar -zxvf nacos-server-1.4.0.tar.gz 3.进入解压文件的bin目录下 cd nacos/bin 4.启动nacos 启动命令:sh startup.sh -m standalone 如报如下错误 说明需要配置...
  • 文章目录前言服务注册发现: Nacos Discovery Starter如何引入 Nacos Discovery StarterAliyun Java Initializr 创建工程并引入 Nacos Discovery(推荐)Maven pom.xml 依赖 Nacos Discovery启动Nacos Server启动一个...
  • (1)springcloud eureka是注册中心,负责微服务的注册与发现,起到承上启下的作用,在微服务架构中相当于人体的 大脑,很重要,nacos是阿里巴巴出的,功能类似eureka,区别不再啰嗦了。 (2)nacos的部署方式与...
  • Nacos Server 安装1.Nacos Server 的下载2.Nacos Server 目录的说明3.配置 Nacos Server4.Mysql 表的导入5.Nacos Server 的启动 在使用 Nacos 之前我们首先要获取和安装 Nacos。 1.Nacos Server 的下载 因为 ...
  • Nacos主要提供以下四大功能: 服务发现与服务健康检查 Nacos使服务更容易注册自己并通过DNS或HTTP接口发现其他服务。...Nacos支持加权路由,使您可以更轻松地在数据中心的生产环境中实施中间层负载平衡,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,396
精华内容 5,758
关键字:

java注册中心nacos

java 订阅