SpringCloudAlibaba-服务治理Nacos

一:Nacos简介

Nacos致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

更多详情请移步官网(https://nacos.io/zh-cn/docs/quick-start.html)接下来我们就将上述环境中的product、order服务注册到nacos

二:Nacos环境搭建

2.1:安装nacos

下载地址: https://github.com/alibaba/nacos/releases
下载zip格式的安装包,然后进行解压缩操作

2.2:启动nacos

#切换目录
cd nacos/bin
#命令启动
startup.cmd -m standalone

2.3:访问nacos

打开浏览器输入http://localhost:8848/nacos,即可访问服务, 默认密码是nacos/nacos如下图

 

 三:将商品(shop-product)微服务注册到nacos

3.1:在pom.xml中添加nacos依赖

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

3.2:在启动类上添加@EnableDiscoveryClient注解

@SpringBootApplication
@EnableDiscoveryClient //开启nacos注解
public class ProductApplication {·····}

3.3:在application.yml中添加nacos服务的地址

spring:
  # 配置nacos信息
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

3.4:启动商品服务查看nacos控制面板是否成功注册

 

四:注册shop-order微服务到nacos

和前面shop-product注册方法一致 故省略、成功后如下图

 

 改造上篇博文中的下单过程(OrderController)

OrderController注入依赖

//专门负责服务注册和发现的,我们可以通过它获取到注册到注册中心的所有服务
@Autowired
private DiscoveryClient discoveryClient;

调用示例(从nacos取商品服务信息)

    @GetMapping("/prod/{pid}")
    public Order order2(@PathVariable("pid") Integer pid){
        log.info(">>>客户下单,调用商品微服务查询商品信息<<<");

        //从nacos中获取服务地址 获取的是个list集群信息
        ServiceInstance instance = discoveryClient.getInstances("service-product").get(0);
        String url = instance.getHost() + ":" +instance.getPort();
        log.info(">>从nacos中获取到的微服务地址为:" + url);
        Product product = restTemplate.getForObject("http://"+url+"/product/"+pid, Product.class);

        log.info(">>商品信息,查询结果:" + JSON.toJSONString(product));
        Order order = new Order();
        order.setUid(1);
        order.setUsername("测试用户1");
        order.setPid(product.getPid());
        order.setPname(product.getPname());
        order.setPprice(product.getPprice());
        order.setNumber(1);
//        orderService.save(order);
        return order;
    }

启动结果

 

posted @ 2020-08-06 12:00  不二尘  阅读(1412)  评论(0编辑  收藏  举报