美文网首页
服务发现:Spring Cloud Alibaba Nacos

服务发现:Spring Cloud Alibaba Nacos

作者: 睦月MTK | 来源:发表于2020-05-21 11:19 被阅读0次

    声明:入门级文档,更多内容会持续更新,不足之处,望不吝指点


    一、启动Nacos注册中心
    • 下载Nacos
    • 解压后进入到nacos/conf下,修改你想要修改的配置(比如启动的端口号、metric的输出、集群信息、日志信息等等),默认是使用h2内存数据库运行,但是同时也提供了nacos-mysql.sql来进行mysql数据库的配置。示例如下
    db.num=2
    db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.url.1=jdbc:mysql://11.163.152.9:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=nacos_devtest
    db.password=nacos
    
    • 进入nacos/bin选择对应的启动文件打开nacos
    • 浏览器访问localhost:8848/nacos/index.html(如果你在本机运行且没有修改配置的情况下),登录的用户名和密码都是nacos
    • 左侧选择命名空间,进行命名空间的配置,如果服务不进行命名空间的配置,那么服务默认注册到public空间之中,命名空间之间的幻境是隔离的,故可以用来隔离不同的应用或者是同应用的不同环境

    二、将服务注册到Nacos上
    • 添加nacos-discovery的依赖
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>
    
    • 修改配置
    server.port=8081
    spring.application.name=nacos-client-provider
    #配置该服务的服务名,默认是spring.application.name的值
    #spring.cloud.nacos.discovery.service=xxx
    #配置nacos服务中心的地址,如果是集群,多个地址之间用逗号隔开
    spring.cloud.nacos.discovery.server-addr=localhost:8848
    #配置该服务索要注册到nacos的命名空间Id,命名空间Id不是命名空间的名字,在创建命名空间后会自动生成
    spring.cloud.nacos.discovery.namespace=0d12689e-cd5b-483b-a050-162398ee9482
    #配置该服务的权重,权重越高越优先被访问到
    #spring.cloud.nacos.discovery.weight=1
    #强制配置服务的注册ip
    #spring.cloud.nacos.discovery.ip=xxx
    #强制配置服务的注册端口
    #spring.cloud.nacos.discovery.port=-1
    #是否启用内置的ribbon
    #ribbon.nacos.enabled=true
    
    • 使用注解@EnableDiscoveryClient开启服务发现功能
    @SpringBootApplication
    @EnableDiscoveryClient
    public class NacosClientProviderApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(NacosClientProviderApplication.class, args);
        }
    
    }
    
    • 使用RestTemplate访问指定服务的接口
    String result = restTemplate.getForObject("http://nacos-client-provider/provider/getHello" , String.class);
    

    地址名就是http://服务名/接口路径


    参考文档:
    [1] spring cloud alibaba

    相关文章

      网友评论

          本文标题:服务发现:Spring Cloud Alibaba Nacos

          本文链接:https://www.haomeiwen.com/subject/uyxzohtx.html