springcloud alibaba(2)

简介: springcloud alibaba

springcloud alibaba(1)https://developer.aliyun.com/article/1530573

基于Nacos的服务消费者

  1. 新建模块cloudalibaba-consumer-nacos-order83
  2. pom(nacos集成了ribbon,实现负载均衡)
<dependencies>  
    <!--SpringCloud Alibaba nacos-->  
    <dependency>  
        <groupId>com.alibaba.cloud</groupId>  
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>  
    </dependency>  
    <!-- 引用自己定义的api通用包,可以使用Payment支付Entity -->  
    <dependency>  
        <groupId>org.example</groupId>  
        <artifactId>cloud-api-commons</artifactId>  
        <version>${project.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-web</artifactId>  
    </dependency>  
  
    <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-actuator</artifactId>  
    </dependency>  
  
    <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-devtools</artifactId>  
        <scope>runtime</scope>  
        <optional>true</optional>  
    </dependency>  
    <dependency>  
        <groupId>org.projectlombok</groupId>  
        <artifactId>lombok</artifactId>  
        <optional>true</optional>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-test</artifactId>  
        <scope>test</scope>  
    </dependency>  
</dependencies>
server:
  port: 83
spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #配置的Nacos地址(本机的写localhost:8848,服务器的写IP地址)
#消费者要访问的微服务名称(成功注册进nacos的服务提供者)
service-url:
  nacos-user-service: http://nacos-payment-provider
  1. 主启动
@SpringBootApplication  
@EnableDiscoveryClient  
public class OrderNacosMain83 {  
    public static void main(String[] args) {  
        SpringApplication.run(OrderNacosMain83.class,args);  
    }  
}
  1. 配置类新建config.ApplicationContextConfig
@Configuration  
public class ApplicationContextConfig {  
    @Bean  
    @LoadBalanced    public RestTemplate getRestTemplate(){  
        return new RestTemplate();  
    }  
}
  1. 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 getPayment(@PathVariable("id") Integer id){  
        return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);  
  
    }  
  
  
}

服务注册中心对比

Nacos全景图

Nacos和CAP

AP和CP的切换

A:可用性

C:一致性

P:分区容错性

Nacos默认AP。

切换CP:

Nacos作为服务配置中心演示

Nacos作为配置中心——基础配置

  1. 新建模块cloudalibaba-config-nacos-client3377
  2. pom
<dependencies>
    <!-- nacos config-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    <!-- openfeign -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <!--SpringCloud Alibaba nacos-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。

springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application

bootstrap

server:
  port: 3377
spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: 10.211.55.17:8848 #Nacos服务注册中心地址(本机的写localhost)
      config:
        server-addr: 10.211.55.17:8848 #Nacos作为配置中心地址(本机的写localhost)
        file-extension: yml #指定yml格式配置

application.yml

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

controller

@RefreshScope   //支持Nacos的动态刷新功能  
@RestController  
public class ConfigClientController {  
  
    @Value("${config.info}")  
    private String configInfo;  
  
  
    @GetMapping("/config/info")  
    public String getConfigInfo(){  
        return configInfo;  
    }  
  
}

springcloud alibaba(3)https://developer.aliyun.com/article/1530575

相关文章
|
1月前
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
319 0
|
1月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
275 0
|
12天前
|
存储 SpringCloudAlibaba 关系型数据库
springcloud alibaba(5)
springcloud alibaba
91 0
|
12天前
|
SpringCloudAlibaba Nacos
springcloud alibaba(4)
springcloud alibaba
121 0
|
12天前
|
SpringCloudAlibaba 容灾 测试技术
springcloud alibaba(3)
springcloud alibaba
56 0
|
12天前
|
存储 SpringCloudAlibaba Java
springcloud alibaba(1)
springcloud alibaba
45 0
|
14天前
|
消息中间件 Java 持续交付
Spring Cloud Alibaba 项目搭建步骤和注意事项
Spring Cloud Alibaba 项目搭建步骤和注意事项
120 0
Spring Cloud Alibaba 项目搭建步骤和注意事项
|
15天前
|
人工智能 Java Spring
使用 Spring Cloud Alibaba AI 构建 RAG 应用
本文介绍了RAG(Retrieval Augmented Generation)技术,它结合了检索和生成模型以提供更准确的AI响应。示例中,数据集(包含啤酒信息)被加载到Redis矢量数据库,Spring Cloud Alibaba AI Starter用于构建一个Spring项目,演示如何在接收到用户查询时检索相关文档并生成回答。代码示例展示了数据加载到Redis以及RAG应用的工作流程,用户可以通过Web API接口进行交互。
52264 60
|
1月前
|
Java API Nacos
第十二章 Spring Cloud Alibaba Sentinel
第十二章 Spring Cloud Alibaba Sentinel
47 0
|
1月前
|
存储 前端开发 Java
第十一章 Spring Cloud Alibaba nacos配置中心
第十一章 Spring Cloud Alibaba nacos配置中心
43 0

热门文章

最新文章