zoukankan      html  css  js  c++  java
  • nacos入门

        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Hoxton.SR4</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>2.2.1.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
    
            </dependencies>
        </dependencyManagement>
    
           <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
    

    application.yml

    spring:
      profiles:
        active: default
      application:
        name: user-center
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848
            # namespace 值为nacos上配置的命名空间ID
            # namespace: b7c0175d-f64c-45ab-8bb9-0981b4aceae9
            # 集群
            # cluster-name: beijing
            # 元数据配置
            metadata:
              hello: hi
    

    简单使用

    @Slf4j
    @RestController
    @RequestMapping("/share")
    @RequiredArgsConstructor(onConstructor = @__(@Autowired))
    public class ShareController {
        private final ShareService shareService;
    
        private final RestTemplate restTemplate;
    
        private final DiscoveryClient discoveryClient;
    
        @GetMapping("/{id}")
        public ShareDto findById(@PathVariable Integer id){
            Share share = shareService.findById(id);
            List<ServiceInstance> instances = discoveryClient.getInstances("user-center");
            String url = instances.stream()
                    .map(instance->instance.getUri()+"/user/{id}")
                    .findFirst()
                    .orElseThrow(()->new IllegalArgumentException("当前没有实例!"));
            UserDto userDto = restTemplate.getForObject(
                    url,
                    UserDto.class,
                    share.getId());
            log.info("请求的目标地址{}",url);
            ShareDto shareDto = new ShareDto();
            BeanUtils.copyProperties(share,shareDto);
            shareDto.setWxNickname(userDto.getWxNickname());
            return shareDto;
        }
    }
    
    
  • 相关阅读:
    观察者(Observer)模式
    Stragety Pattern(策略模式)
    数据库设计范式深入浅出
    建造者(Builder)模式
    吉杰,以及快乐男声
    言情小说通用情节[转]
    过年的任务
    将一家创业公司三年之内推动上市是1999年的思维方式
    修改系统时间格式?解决now()
    经济类吴晓波的《大败局》,韩德强的《碰撞》。几年前看的了,现在还很有印象。
  • 原文地址:https://www.cnblogs.com/fly-book/p/12818017.html
Copyright © 2011-2022 走看看