首页 > 其他分享 >springcloudalibaba -nacos config 配置中心以及服务发现和注册

springcloudalibaba -nacos config 配置中心以及服务发现和注册

时间:2023-07-09 19:55:23浏览次数:29  
标签:spring nacos id config public cloud springcloudalibaba

springcloud-config-nacos-client3377

pom

<!--nacos-config-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

 application.yml

spring:
  profiles:
#    active: info
#    active: test
    active: dev # 表示开发环境

 bootstrap.yml

# nacos配置
server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
      config:
        server-addr: localhost:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置
        group: DEV_GROUP  # 配置分组
        namespace: c938430c-8261-4c06-a8cf-4217d76936b7   # 命名空间
  # ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
  #   nacos-config-client     -  dev(application.yml文件中的配置)                  .  yaml

controller

@RestController
@RefreshScope //在控制器类加入@RefreshScope注解使当前类下的配置支持Nacos的动态刷新功能。
public class ConfigClientController
{
    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }
}

主启动类

@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClientMain3377
{
    public static void main(String[] args) {
            SpringApplication.run(NacosConfigClientMain3377.class, args);
    }
}

 

 

springcloudalibaba-consumer-nacos-order83

pom核心依赖同上

yml配置文件

server:
  port: 83

spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848   #nacos服务的地址


#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)  大概就是生产者端的spring.application.name
service-url:
  nacos-user-service: http://nacos-payment-provider

 注入一个restTemplate防止报错

@Configuration
public class RestConfig {

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }
}

controller测试类

@RestController
public class OrderNacosController
{
    @Resource
    private RestTemplate restTemplate;

    @Value("${service-url.nacos-user-service}")
    private String serverURL;

    @GetMapping("/consumer/payment/nacos/{id}")
    public String paymentInfo(@PathVariable("id") Long id)
    {
        return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);
    }

}

主启动类只需要添加服务发现注解@EnableDiscoveryClient 即可

 

 

 

springcloudalibaba-config-provider-nacos9001

依赖

        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

yaml

server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址

# 暴露端点
management:
  endpoints:
    web:
      exposure:
        include: '*'

controller测试类

@RestController
public class PaymentController
{
    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/payment/nacos/{id}")
    public String getPayment(@PathVariable("id") Integer id)
    {
        return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
    }
}

启动类

@EnableDiscoveryClient
@SpringBootApplication
public class PaymentMain9001
{
    public static void main(String[] args) {
            SpringApplication.run(PaymentMain9001.class, args);
    }
}

 

标签:spring,nacos,id,config,public,cloud,springcloudalibaba
From: https://www.cnblogs.com/huoziqi/p/17539264.html

相关文章

  • springcloud -config配置中心 整合github 或者gitee 单个刷新配置
    配置中心,通过从开源仓库上拉去配置,而不是在本地修改服务端配置cloud-config-center-3344     <dependency>       <groupId>org.springframework.cloud</groupId>       <artifactId>spring-cloud-config-server</artifactId>   ......
  • Springcloud2021+Nacos2.2+Dubbo3+Seata1.6实现分布式事务
    示例代码地址:https://gitee.com/gtnotgod/Springcloud-alibaba.git更详细参考Gitee完整的项目:https://gitee.com/gtnotgod/Springcloud-alibaba.git官网下载Nacoshttps://nacos.io/zh-cn/index.html压缩包解压:配置Nacos:**/nacos/conf/application.properties#********......
  • docker 容器的详细信息中ContainerConfig与config区别
    在Docker中,dockerinspect命令用于检查容器的详细信息。当我们运行dockerinspect<容器ID或名称>时,将返回一个包含容器的元数据和配置的JSON对象。ContainerConfig和Config是dockerinspect输出中的两个字段,它们分别表示容器的初始配置和当前配置。下面是它们之间的区别:C......
  • Docker安装Nacos并以单例模式运行
    Nacos单例模式运行使用嵌入式数据库即可,这里不依赖于mysql。拉取指定版本Nacos镜像:dockerpullnacos/nacos-server:2.0.3查看镜像列表:dockerimages以单例模式启动:dockerrun-d--namenacos-p8848:8848-eMODE=standalonenacos/nacos-server:2.0.3查看容器列表......
  • ubuntu pip is configured with locations that require TLS/SSL
    使用pip时出现pipisconfiguredwithlocationsthatrequireTLS/SSL是因为在编译时候没有加上开启SSL的参数,现在大部分的网络链接为了安全,都开启了SSL加密,常见的有HTTPS。加上--with-openssl=/usr参数--with-openssl需要指定的是openssl的源码目录,经过测试u......
  • linux安装nacos设置开机自启动
    1.设置nacos配置文件1.1找到系统中java安装路径java-verbose最后一行就有java安装具体路径[root@master-nodejava]#vi/etc/profile#在末尾增加exportJAVA_HOME=/usr/local/java/openJDK-1.8exportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$......
  • Nacos服务发现与注册源码剖析
    为什么要看源码:1、提升技术功底:学习源码里的优秀设计思想,比如一些疑难问题的解决思路,还有一些优秀的设计模式,整体提升自己的技术功底2、深度掌握技术框架:源码看多了,对于一个新技术或框架的掌握速度会有大幅提升,看下框架demo大致就能知道底层的实现,技术框架更新再快也不怕3、快速......
  • Ubuntu系统部署springcloud+nacos遇到的问题。
    1,部署上的jar包运行正常,但是通过浏览器不能访问,telnet+IP+端口连接不通。小皮面板访问后台接口也是不通但是小皮面板可以通过浏览器访问。具体问题暂未解决。2,改用docker部署,将jar包和前端打的包,nacos,redis等打成镜像,放进docker里对外映射出端口可以正常访问。在用docker部署过......
  • 解决QNetworkConfigurationManager::onlineStateChanged不触发的具体操作步骤
    解决QNetworkConfigurationManager::onlineStateChanged不触发的问题作为一名经验丰富的开发者,我将向你解释如何解决"QNetworkConfigurationManager::onlineStateChanged不触发"的问题。首先,让我们了解一下整个流程,然后逐步进行代码实现。流程概述下面是解决问题的流程概述:......
  • Nacos
    1.什么是配置中心在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节后,配置文件也必须跟着迁移(分割),这样配置就分散了,不仅如此,分散中还包含着冗余,如下图:配置中心将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自身去管理配置配置中......