速通springcloud--01nacos

SpringCloud微服务框架搭建指南(基于Nacos) SpringCloud是一套完整的微服务解决方案,而Nacos是阿里巴巴开源的服务发现和配置管理平台,本文将详细介绍如何在Windows环境下搭建基于Nacos的SpringCloud微服务框架。 阅读详情

创建微服务工程

cloud-demo
|__services
    |__service-product
    |__service-order

1.创建父项目

创建一个名为cloud-demo的springboot父项目,用于对springboot,springcloud,springcloud alibaba版本锁定

<packaging>pom</packaging>
<properties>
    <java.version>17</java.version>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring-cloud.version>2023.0.3</spring-cloud.version>
    <spring-cloud-alibaba.version>2023.0.3.2</spring-cloud-alibaba.version>
</properties>
<!-- 这里使用dependencyManagement来进行依赖管理 -->
<!-- 即让子模块需要显式声明依赖,不用指定version或scope -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>${spring-cloud-alibaba.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

2.创建微服务管理子项目

创建一个名为services的普通maven项目该子项目继承自cloud-demo项目,其管理了所有微服务的公共依赖

<packaging>pom</packaging>

<dependencies>
    <!--注册中心-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <!--远程调用-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
</dependencies>

3.创建微服务子项目

创建名为service-product,service-order的普通maven子项目。这两个项目都是services项目的子项目,是微服务项目

Nacos

官网:https://nacos.io/docs/latest/overview/

它是一个能更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。可以实现服务发现和服务健康检测,动态配置服务,动态DNS服务,服务以及元数据管理

对于windows平台的nacos在官网下载并解压后可以在nacos/bin目录通过startup.cmd -m standalone以单机状态启动nacos

服务注册

  1. 启动nacos
    1. 在nacos/bin目录通过startup.cmd -m standalone以单机状态启动nacos
  2. 启动微服务
    1. 由于所有微服务模块都继承自cloud-demo,那么其本身也是boot项目
    2. 直接在微服务模块中导入spring-boot-starter-web依赖即可实现web开发
    3. 创建一个boot的启动类
    4. 编写一个配置文件,在其中配置应用名(会在服务中心显示为服务名),端口号,nacos地址
  3. 引入服务发现依赖
    1. spring-cloud-starter-alibaba-nacos-discovery
    2. 该依赖是所有微服务模块的公共依赖,故在service-product模块中导入
  4. 配置nacos地址
    1. spring.cloud.nacos.server-addr=127.0.0.1:8848
  5. 查看注册中心
    1. 访问http://localhost:8848/nacos
    2. 此时会在服务列表中看到我们启动的服务
  6. 集群模式启动测试
    1. 单机情况下通过拷贝实例模拟微服务集群
    2. 拷贝实例时需要在修改选项中勾选程序参数,在程序参数中可以配置在properties文件中能配置的所有参数,只需要在前面添加--例如:--server.port=8001
    3. 对于拷贝添加的服务会在nacos控制台的实例数进行显示
// service-order

// pom.xml
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

// com.atli.order.OrderMainApplication.java
@SpringBootApplication
public class OrderMainApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderMainApplication.class,args);
    }
}
// resources/application.properties
spring.application.name=service-order
server.port=8000
spring.cloud.nacos.server-addr=127.0.0.1:8848

////////////////////////////////////////////////////////////////

// service-product

// pom.xml
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

// com.atli.product
@SpringBootApplication
public class ProductMainApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProductMainApplication.class, args);
    }
}
// resources/application.properties
spring.application.name=service-product
server.port=9000

spring.cloud.nacos.server-addr=127.0.0.1:8848

服务发现

  1. 添加测试依赖
    1. 在要进行测试的服务模块中添加spring-boot-starter-test依赖
  2. 开启服务发现功能
    1. 在微服务启动文件添加@EnableDiscoveryClient
  3. 测试服务发现API
    1. DiscoveryClient
    2. NacosServiceDiscovery
// service-product

// pom.xml
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
</dependency>

// discoveryTest.java
@SpringBootTest
public class DiscoveryTest {

    @Autowired
    DiscoveryClient discoveryClient;

    @Autowired
    NacosServiceDiscovery nacosServiceDiscovery;

    @Test
    void discoveryClientTest(){
        discoveryClient.getServices().forEach(service -> {
            // 打印微服务名称
            System.out.println(service);
            discoveryClient.getInstances(service)
                    // 打印服务ip及其端口号
                    .forEach(instance -> System.out.println(instance.getHost() + ":" + instance.getPort()));
        });
    }

    @Test
    void nacosServiceDiscoveryTest() throws NacosException {
        nacosServiceDiscovery.getServices().forEach(service -> {
            System.out.println(service);
            discoveryClient.getInstances(service)
                    .forEach(instance -> System.out.println(instance.getHost() + ":" + instance.getPort()));
        });
    }
}

远程调用实例

这是一个下单场景,用户对订单服务发起创建订单请求,订单服务会去商品服务查询订单中的商品,查询后会返回商品数据到订单服务生成订单,最后返回订单数据

  1. 创建实体对象
    1. 由于在该实例中订单服务和商品服务都要使用商品类,故将所有实体类抽象成model层,以方便各服务对实体类的访问
    2. 又由于model层要被所有微服务调用,故需要放在与services模块同级目录下,并将其作为依赖导入到services模块
  2. 创建服务的controller,service层
    1. 按照三层架构模式编写controller和service层,mapper层用假数据代替
    2. 在订单服务的service层使用RestTemplate远程调用商品服务
  3. 启动所有微服务进行测试
cloud-demo
|__model
|   |__com.atli.order.bean.Order(class)
|   |__com.atli.product.bean.Product(class)
|
|__services
    |__service-order
    |    |__com.atli.order
    |        |__config.OrderConfig(class)
    |        |__controller.OrderController(class)
    |        |__service
    |            |__OrderService(interface)
    |            |__Impl
    |                |__OrderServiceImpl(class)
    |
    |__service-product
          |__com.atli.product
              |__config.ProductConfig(class)
              |__controller.ProductController(class)
              |__service
                  |__ProductService(interface)
                  |__Impl
                      |__ProductServiceImpl(class)

model 模块

// com.atli.order.bean.Order
@Data
public class Order {
    private Long id;
    private BigDecimal totalAmount;
    private Long userId;
    private String nickName;
    private String address;
    private List<Object> productList;
}

// com.atli.product.bean.Product
@Data
public class Product {
    private Long id;
    private BigDecimal price;
    private String productName;
    private int num;
}

services 模块

<!-- pom.xml(service) -->
<!--使所有微服务依赖公共模型层model-->
<dependency>
   <groupId>com.atli</groupId>
   <artifactId>model</artifactId>
   <version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <scope>annotationProcessor</scope>
</dependency>
<!-- 用于远程调用时负载均衡 -->
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

service-product 模块

// com.atli.product.controller.ProductController
@RestController
public class ProductController {

    @Autowired
    ProductService productService;

    @GetMapping("/product/{id}")
    public Product getProduct(@PathVariable("id") Long productId) {
        return productService.getProductById(productId);
    }
}

// com.atli.product.service.ProductServiceImpl
@Service
public class ProductServiceImpl implements ProductService {
    @Override
    public Product getProductById(Long id) {
        Product product = new Product();
        product.setId(id);
        product.setProductName("apple");
        product.setPrice(BigDecimal.valueOf(8848));
        product.setNum(2);
        return product;
    }
}

// com.atli.product.config.ProductConfig
@Configuration
public class ProductConfig {
    @Bean
    // 由于RestTemplate是线程安全的,全局只有一个,故在这里将其加入ioc方便使用
    //RestTemplate用于远程调用
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

Order模块

// com.atli.order.OrderController
@RestController
public class OrderController {
    @Autowired
    OrderService orderService;

    @GetMapping("/create/{userId}/{productId}")
    public Order createOrder(@PathVariable Long userId, @PathVariable Long productId) {
        return orderService.createOrder(userId, productId);
    }
}

// com.atli.order.OrderServiceImpl
@Slf4j
@Service
public class OrderServiceImpl implements OrderService {

    @Autowired
    DiscoveryClient discoveryClient;
    @Autowired
    RestTemplate restTemplate;
    // @Autowired
    // LoadBalancerClient loadBalancerClient

    @Override
    public Order createOrder(Long userId, Long productId) {
        Product product = getProductFromRemote(productId);
        Order order = new Order();
        order.setId(1L);
        order.setTotalAmount(product.getPrice().multiply(new BigDecimal(product.getNum())));
        order.setUserId(userId);
        order.setNickName("zhangsan");
        order.setAddress("home");
        order.setProductList(Arrays.asList(product));

        return order;
    }

    private Product getProductFromRemote(Long productId) {
        // 获取到商品服务所在及其的IP和端口
        List<ServiceInstance> instances = discoveryClient.getInstances("service-product");
        ServiceInstance serviceInstance = instances.get(0);
        // 该方法使用了LoadBalancerClient,底层使用轮询实现负载均衡
        // ServiceInstance serviceInstance = loadBalancerClient.choose("service-product");
        // 拼接远程调用的url
        String url ="http://" + serviceInstance.getHost() + ":" + serviceInstance.getPort() + "/product/" + productId;

        // 发送远程请求
        log.info("已发送请求:{}",url);
        // 如果使用了注解式的负载均衡上面获取url的代码可以直接去掉
        // 这里的service-product是服务名称
        // String url = "http://service-product/product/"+productId
        Product product = restTemplate.getForObject(url, Product.class);

        return product;

    }
}

// com.atli.order.config.OrderConfig
@Configuration
public class OrderConfig {
    //使用该注解会让该服务自动拥有负载均衡功能
    //并且在发送http请求时直接使用服务名称来代替微服务的ip和端口号
    //@LoadBalanced
    @Bean
    // 由于RestTemplate是线程安全的,全局只有一个,故在这里将其加入ioc方便使用
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

配置中心

nacos配置中心可以实现配置的集中管理,推送配置变更,不停机配置更新。

基本使用

  1. 启动nacos
  2. 引入依赖
    1. spring-cloud-starter-alibaba-nacos-config
    2. 由于可能所有微服务都需要使用配置中心,故在services模块引入该依赖
  3. 对application.properties文件进行配置
    1. spring.cloud.nacos.server-addr=127.0.0.1:8848,该配置是指定nacos地址
    2. spring.config.import=optional:nacos:service-order.properties,该配置可以让service-order微服务在启动后从nacos中读取配置文件。并且这里设置了optional表示该项为可选项,防止项目启动但nacos没有配置出现报错
  4. 创建data-id(数据集)
    1. 在nacos界面配置管理的配置列表可以新建配置
    2. Data ID是该配置的名称,此处按照步骤3的名称应为service-order.properties
    3. 在配置内容中可以进行任意配置(只要是properties能配的都可以)
  5. 使用数据集
    1. 在使用数据集时,需要在当前类中添加@RefreshScope注解,让监听的数据有类似vue中响应式数据的动态刷新功能
    2. 获取数据集依然使用springboot中获取配置的方法:@Value("${data}")

批量动态刷新

上面的例子中,使用了springboot中获取配置的方法:@Value("${data}"),当遇到有大量配置需要被读取,可以将这些配置抽取到一个单独的类中,使用@ConfigurationProperties(prefix = "前缀名")来进行批量绑定

// 这里假设在配置中心配置了order.timeout=30min;order.auto-confirm=7d
@Component
@ConfigurationProperties(prefix="order")
@Data
public class OrderProperties{
    String timeout;
    String autoConfirm;
}

配置监听

对于配置文件的修改我们可以使用nacos提供的NacosConfigManager搭配spring的ApplicationRunner进行使用

// com.atli.order.OrderMainApplication
@Bean
// 使用ApplicationRunner让该段代码在启动spring时运行
ApplicationRunner applicationRunner(NacosConfigManager nacosConfigManager){
    return args -> {
        // 获取配置服务
        ConfigService configService = nacosConfigManager.getConfigService();
        // 数据集ID(配置文件名):service-order.properties
        // 数据集组名:DEFAULT_GROUP,该组名可以在nacos面板看到
        // 添加监听,监听函数需要自己new
        configService.addListener("service-order.properties","DEFAULT_GROUP",new Listener(){
            @Override
            // 线程池
            public Executor getExecutor(){
                return Executors.newFixedThreadPool(4);
            }
            @Override
            // 接收变化的配置信息
            public void receiveConfigInfo(String configInfo){
                System.out.println("ReceiveConfigInfo:"+configInfo)
            }
        });
    };
}

数据隔离

在实际开发中,会需要到开发环境,测试环境,还有生产环境。其中每种环境中又有不同的微服务,每种微服务又会有各种配置。

我们可以使用springBoot定义多环境来区分各种场景,使用名称空间来区分多套环境,使用组来区分微服务,使用数据集来区分配置。这些操作可能很轻易的再nacos面板中实现

对于按需加载配置我们可以使用指定命名空间和组名实现

server:
    port: 8000
spring:
    profiles: # 这个配置用于指定当前环境
        active: dev
    application:
        name: service-order
    cloud:
        nacos:
            server-addr: 127.0.0.1:8848
            config:
                namespace: dev
# 这里的`---`是yml的多文档模式
---
spring:
    config:
        import:
            - nacos:common.properties?group=order
            - nacos:database.properties?group=order
        activate:
            on-profile: dev #指明生效环境
---
spring:
    config:
        import:
            - nacos:common.properties?group=order
            - nacos:database.properties?group=order
            - nacos:environment.properties?group=order
        activate:
            on-profile: test #指明生效环境
springcloud+nacos搭建项目(一) springcloud 阅读详情

相关推荐

SpringCloud服务治理之Nacos

文章目录一、Nacos概述二、安装与启动三、服务注册3.1 引入nacos依赖3.2 配置nacos地址四、项目测试源码 一、Nacos概述 Nacos是阿里巴巴开源的服务注册中心,官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html 从个人使用体验上看,nacos要比eureka和consul舒服不少。 Nacos 致力于帮助您发现、配置和管...

空夜's Blog 1415

springcloud之nacos

宇杨的nacos学习日记

zjylovexh的博客 1230

SpringCloud01_Nacos

--------------------------------配置中心和注册中心nacos---------------------prefix: nacos_config #默认值是spring.application.name。http:ip:8848/nacos 默认账号:nacos 密码:nacos。2.服务的消费者:springcloud_nacos_consumer。1.修改nacos的cluster.conf,配置3台的通讯地址。环境 项目 工程。

清晨的博客 856

nacos创建SpringCloud项目

本文简单介绍了如何从0开始创建一个SpringCloud项目(使用nacos),在开始之前,您需要先安装并启动nacos。

qq_61567032的博客 749

springcloud篇1(微服务技术栈、服务拆分与远程调用、Eureka、Nacos)

另外,为了监控,还有“分布式日志服务”和“系统监控链路追踪”:最后,利用Jenkins技术对微服务进行自动化编译,再利用docker进行打包形成镜像,再基于k8s或者rancher去实现自动化的部署,这一套机制称为持续集成。微服务技术栈包括微服务技术和持续集成。

qq_51476492的博客 2274

深入解析UVM寄存器模型:reg2bus与bus2reg的隐式调用机制

本文深入解析了UVM寄存器模型中reg2bus与bus2reg函数的隐式调用机制。通过追踪一次寄存器访问的完整旅程,揭示了这两个关键函数是如何在uvm_reg_map和uvm_reg_predictor中被框架自动调用的,从而在抽象的寄存器操作与具体总线事务之间完成转换,并实现镜像值的自动更新。掌握此机制是高效调试和灵活应用UVM寄存器模型的基础。

weixin_29211309的博客 439

SpringCloud - Nacos详解

1、概述 服务发现是微服务架构体系中最关键的组件之一。如果尝试用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于服务的动态扩缩容。 Nacos Discovery 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。 除此之外,Nacos Discovery 也将服务实例自身的一些元数据信息-例如 host,port, 健康检查URL,主页等内容注册到 Nacos。 2、注册中心原理 在使用注册中心时,一共有三种角色:服务提供者

java123456111的博客 2万+

基于云平台的ATS系统微服务架构方案研究

在当前智慧地铁的升级转型过程中,城市轨道交通ATS系统面临着稳定性差、运维方 式繁琐和故障应急处理效率低等问题。为此,提出一种基于云平台的ATS系统微服务架构方案; 研究了ATS系统在云平台上的微服务总体架构、ATS应用的微服务划分和设计、容器部署方式 及通信交互模式,可实现系统松耦合和易扩展,达到节约计算资源、提高系统稳定性和运营效 率的目的

mi_lan1的博客 966

day01-SpringCloud01(Eureka、Ribbon、Nacos)

1.认识微服务 | 2.服务拆分和远程调用 | 3.Eureka注册中心 | 4.Ribbon负载均衡 | 5.Nacos注册中心 |

yirenyuan的博客 1286

从Cartographer3D到LIO-SAM:主流3D激光SLAM算法怎么选?一份给机器人工程师的实战避坑指南

本文深入探讨了从Cartographer3D到LIO-SAM等主流3D激光SLAM算法的选型策略,为机器人工程师提供实战避坑指南。通过对比不同算法在传感器配置、环境特性和计算资源等方面的表现,帮助开发者根据项目需求选择最优方案,并分享传感器标定、资源优化等实用技巧。

weixin_27310985的博客 154

基于扣子3.0复刻MIT“AI股神团队版”:实时股票数据API接入与策略选股复盘系统

基于扣子3.0的AI量化投资系统摘要 本文提出了一种基于扣子(Coze)3.0平台的AI量化投资解决方案,整合实时股票数据与策略选股功能。系统采用三层架构: 数据层:通过AKShare等开源工具获取A股实时行情和历史K线数据,支持批量数据抓取和清洗 策略层:内置多因子选股模型和技术指标分析模块,实现自动化标的筛选 应用层:利用扣子3.0的插件和工作流功能,构建从数据采集到投资建议的完整流程 系统特点包括:完全开源的数据接入方案、Python实现的策略计算模块、以及扣子平台提供的可视化编排能力~~~~~~~~

huanghm88的专栏 264

关于Springboot、SpringCloud以及SpringCloud-Alibaba Nacos依赖问题

依赖关系SpringBoot和SpringCloud大版本对应关系Alibaba组件版本关系SpringBoot、Cloud、Alibaba 毕业版本依赖关系(推荐使用)依赖管理RELEASE 版本Alibaba组件依赖坐标示例 由于目前阿里的SpringCloud组件以及孵化成功,导致写项目导入pom依赖坐标时比较纠结,网上对版本的兼容介绍也变得五花八门。 SpringBoot和SpringCl...

17611119847 2万+

3.详解Labview串口通讯--从串口线连接到串口通讯保姆级教程

本文非常详细的介绍了使用Labview实现串口通讯,读完题主这篇文章,即使你是今天刚下载的Labview,也能熟练的连接并驱动串口执行,接下来和我一起学习下,记得关注并点赞不迷路

关注我,更多技术问题欢迎私聊~ 1万+

SpringCloud Alibaba 2021版 nacos 配置中心教程

文章目录nacos 配置中心 是什么nacos config 和 springcloud config 对比常用配置中心对比支持profile粒度的配置快速入门 nacos 配置中心 是什么 nacos config 和 springcloud config 对比 springcloud config大部分场景结合git 使用, 动态变更还需要依赖Spring Cloud Bus 消息总线来通过所有的客户端变化. springcloud config不提供可视化界面 nacos config使用长轮询更新

做一个有思想的技术人 1万+

FAST-LIO论文公式解析

FAST-LIO论文公式解析

努力努力努力 669

OData V2 消息在 SAP UI5 中的生成、传播与治理全解

SAP UI5 的 OData V2 消息机制通过自动解析服务端响应头(sap-message)或错误体,将消息推送到全局 MessageModel,实现数据质量保障。关键点包括:1)消息通过目标路径与控件绑定联动,触发高亮等反馈;2)生命周期管理需注意避免自动刷新导致消息丢失;3)常见陷阱如批处理错误重复、内外层消息冲突等可通过精准目标路径或自定义处理器解决。代码示例展示了如何配置模型、消息模型及 MessagePopover 实现端到端消息展示,同时支持控件通过 refreshDataState 自定义

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 231

SpringCloud详解01-SpringCloudAlibaba、Nacos

本篇记录一下SpringCloud学习本篇主要介绍了架构的演进,和分布式架构的一些特点,以及SpringCloudAlibaba的基本体系,和注册中心nacos的安装启动,更多内容将在下一篇介绍。

Java学习博客 684

Vue - 解决报错 Error: Cannot find module ‘XXX\@vue\cli-service\bin\vue-cli-service.js‘(vue项目编译运行出错,启动失败)

vue报错,Error: Cannot find module ‘@vue\cli-service\bin\vue-cli-service.js‘,vue2项目启动报错,vue3项目运行出错,vue执行npm run serve报错,找不到@vue/cli-service模块,vue项目关于:Error: Cannot find module ‘D:\@vue\cli-service\bin\vue-cli-service.js‘的解决方案,vue项目跑不起来了,Vue项目报错,跑项目报错Cannot fi

🏆 前端领域优质创作者 3113

SpringCloud Nacos

cart-service是一个购物车服务,item-service是一个商品服务,购物车符合会调用商品服务,由于商品服务会被频繁调用,为了面对高并发,对item-service进行了多实例部署。调用者可以从注册中心订阅想要的服务,获取服务对应的实例列表(1个服务可能多实例部署)当注册中心长时间收不到提供者的心跳时,会认为该实例宕机,将其从服务的实例列表中剔除。当服务有新实例启动时,会发送注册服务请求,其信息会被记录在注册中心的服务实例列表。服务启动时就会注册自己的服务信息(服务名、IP、端口)到注册中心。

c1tenj2的博客 1559

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SpringCloud.01.基本使用与nacos

创建一份maven项目命名为cloud用来存放所有依赖,接下来在此项目下创建两个springboot项目分别命名为provider和consumer。在cloud中导入依赖导入三个版本的原因nacos来自的用于代替和feign来自其他的正常来自与SpringBoot定义cloud的子类让子类能使用父类的依赖--定义儿子-->两个子类provider和consumer都需要继承父类--继承父类 大项目 拥有了依赖和版本-->

d2916172682的博客 1161

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

01-SpringCloud-Nacos

本文介绍了Nacos服务的安装配置流程及常见问题解决方法:首先从GitHub下载安装包并解压,通过startup.sh命令单机启动;然后在微服务项目中配置注册信息并启用Nacos。访问地址为localhost:8080,默认账户/密码均为nacos。针对单机启动时出现的JWT密钥缺失问题,需在conf/application.yml中添加三个关键配置参数(包括Base64编码的32位密钥)并重启服务。

m0_66395889的博客 656

SpringCloud 基本使用与 nacos

一、Nacos介绍 Nacos是SpringCloudAlibaba架构中最重要的组件。 Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态 DNS 服务三大功能。能够无缝对接Springcloud、Spring、Dubbo等流行框架。 nacos和eureka功能对比 1,nacos 搭建 下载cloud 下载地址https://github.com/alibaba/Nacos/releases 启动 登录 密码同账号一...

m0_58525944的博客 5983

day01-springcloud-nacos

单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件。

qq_74289024的博客 1385

SpringCloud01

单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。

xiemqlanmei的博客 1680

SpringCloud+Nacos搭建使用

Nacos【Dynamic Naming and Configuration Service】提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

ccczequn的博客 6797
上一篇: Maven依赖范围与管理
下一篇: 速通springcloud--02OpenFeign
sisyphoslee
博客等级 码龄7年 942粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值