iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Nacos 注册中心和配置中心
  • 148
分享到

Nacos 注册中心和配置中心

java分布式开发语言 2023-08-31 21:08:09 148人浏览 安东尼
摘要

一,Nacos介绍         1, 什么是nacos? Nacos(na代表Naming,co代表Configuration,s为Service)是阿里巴巴一个开源的注册中心、配置中心组件         2、nacos的启动器 ​​

一,Nacos介绍

        1, 什么是nacos?

Nacos(na代表Naming,co代表Configuration,s为Service)是阿里巴巴一个开源的注册中心、配置中心组件

        2、nacos的启动器

​​​​​​​ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery    com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config​​​​​​​ 

   

二、nacos的安装和启动

        1、上传并解压

                        打开nacos虚拟机

cd /usr/uploadrz nacos包tar -zxvf nacos-server-1.4.1.tar.gz -C /usr/local

        2、启动和关闭

cd /usr/local/nacos/bin./startup.sh -m standalone

        3、测试

浏览器访问:Http://192.168.23.130:8848/nacos        默认用户名/密码为:nacos/nacos

三、nacos注册中心(服务的ip和端口)

        1、服务提供者:nacos_provider

1, pom.xml文件            spring-boot-starter-WEB            spring-cloud-starter-alibaba-nacos-discovery            SpringCloud_common2, application.yml 配置文件            spring:              cloud:                nacos:                  discovery:                    server-addr: 192.168.23.130:8848 #nacos的IP地址和端口              application:                name: nacos-provider  #服务名3, 启动类  添加注解 允许注册服务和发现服务            @EnableDiscoveryClient​

        2,服务消费者 nacos_cosumer

​​ 1,pom.xml                spring-boot-starter-web                spring-cloud-starter-alibaba-nacos-discovery                sprinGCloud_common 2,application.yml                spring:                  cloud:                    nacos:                      discovery:                        server-addr: 192.168.23.130:8848                  application:                    name: nacos-consumer #向注册中心注册的名字 3, 启动类                @EnableDiscoveryClient​​

        3、测试
​​​​​​​

@RestController@RequestMapping(value = "/consumer")public class ConsumerController {@Autowiredprivate RestTemplate restTemplate;@Autowiredprivate DiscoveryClient discoveryClient;@RequestMapping(value="/getUserById/{id}")public User getUserById(@PathVariable Integer id){//获取nacos中注册的所有服务信息List serviceList = discoveryClient.getServices();for (String service : serviceList) {System.out.println(service);}//获取nacos中注册的指定服务信息ServiceInstance instance = discoveryClient.getInstances("nacos-provider").get(0);String serviceUrl = instance.getHost() + ":" + instance.getPort();String url = "http://"+serviceUrl+"/provider/getUserById/"+id;return restTemplate.getForObject(url, User.class);}}

四、配置中心(配置文件)
    1,集中管理配置文件
       

​1、pom.xml            spring-boot-starter-web            spring-cloud-starter-alibaba-nacos-discovery            spring-cloud-starter-alibaba-nacos-config 2、bootstrap.yml            spring:              cloud:                nacos:                  config: #(系统级别的配置)                    server-addr: 192.168.23.130:8848 #配置中心的地址                    prefix: nacos-config #默认值是spring.application.name                    file-extension: yaml #默认值是properties 3、启动类            @SpringBootApplication            @EnableDiscoveryClient​


        2、在nacos中新建配置文件
           

 

Data Id:${spring.cloud.nacos.config.prefix}.${spring.cloud.nacos.config.file-extension}


            配置格式: .yaml结尾
           
        3、测试nacos集中管理配置文件  实时更新配置

   

package com.bjpowernode.controller;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RefreshScope //重新从BeanFactory获取一个新的实例(该实例使用新的配置)public class ConfigController {    @Value("${spring.datasource.driver-class-name}")    private String driverClassName;    @Value("${spring.datasource.url}")    private String url;    @Value("${spring.datasource.username}")    private String username;    @Value("${spring.datasource.passWord}")    private String password;    @Value("${spring.datasource.type}")    private String type;    @GetMapping("/config/info")    public String getConfigInfo() {        System.out.println(this);        String configInfo = driverClassName+"
"+url+"
"+username+"
" +password+"
"+type; return configInfo; }}

4.测试实时更新配置信息
    注意:需要引入logback.xml 查看完整信息
    原理:nacos监听MD5 每次更新,MD5 都不一样

5.配置隔离

    namespace ---------------- 环境:dev、test、prod    group     ---------------- 项目名:springcloud_parent    Data Id   ---------------- 配置文件/工程名:nacos-config.yaml

五、持久化
​​​​​​​
    1、为什么要持久化?

      nacos有自带嵌入式数据库derby,如果搭建集群则每台nacos的配置文件都不一样,请求的时候可能会找不到配置文件
  


    2、持久化

        1,切换数据库
          

### If use Mysql as datasource:spring.datasource.platfORM=mysql### Count of DB:db.num=1### Connect URL of DB:db.url.0=jdbc:mysql://192.168.23.131:3306/nacos?characterEncoding=utf8&connectTimeout=1000&SocketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user.0=rootdb.password.0=1111


        2,建库建表

             1.新建nacos数据库
            2.初始化数据库  关闭nacos 再打开
            3.找到/usr/local/nacos/conf/nacos-mysql.sql并在Navicat执行

 

        3)测试

           1.重启nacos
           2.上传配置文件,观察是否写到了mysql

 


   


           


​​​​​​​

来源地址:https://blog.csdn.net/xianshaoss/article/details/127719144

--结束END--

本文标题: Nacos 注册中心和配置中心

本文链接: https://www.lsjlt.com/news/387177.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作