zoukankan      html  css  js  c++  java
  • SpringCloud Alibaba Nacos 服务发现 RestTemplate进行消费

    发现服务进行RestTemplate调用
    1. 启动Nacos访问地址为:http://101.200.201.195:8848/nacos/
    2. 启动buscien-service-01业务服务,进行消费

    准备工作完成后进行服务消费。

    第一步:创建一个Maven工程buscien-service-02

    第二步:编辑pom.xml,加入必要的依赖配置

    <!-- 导入bom依赖管理工程 -->
    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>com.opensource</groupId>
                    <artifactId>bom</artifactId>
                    <version>${opensource.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
    </dependencyManagement>
    
    <!-- 业务服务所需依赖 -->
     <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
    </dependencies>
    

    在bom工程中已经全部定义好了对应的版本所以我们在业务工程中就不需要定义依赖版本了,统一在bom中进行维护。

    第三步:创建一个SpringBoot启动类,并且增加一个Http服务

    /**
     * SpringCloud Alibaba服务发现
     *
     * @author WuWenTao
     * @version 1.0
     * @date 2020/9/2 11:38
     */
    @EnableDiscoveryClient
    @SpringBootApplication
    @Configuration
    public class BuscienService02Appl {
        public static void main(String[] args) {
            SpringApplication.run(BuscienService02Appl.class, args);
        }
    
        @LoadBalanced
        @Bean
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    }
    
    @RestController
    @RequestMapping("/buscien2/")
    class ConsumerController {
    
        private static final Logger log = LoggerFactory.getLogger(ConsumerController.class);
    
        @Autowired
        RestTemplate restTemplate;
    
        @Autowired
        LoadBalancerClient loadBalancerClient;
    
        @GetMapping("consumer")
        public String consumer(@RequestParam String name) {
            // 通过的负载均衡接口获取服务实例信息
            ServiceInstance serviceInstance = loadBalancerClient.choose("buscien-service-01-app");
            String url = "http://" + serviceInstance.getServiceId() + ":" + serviceInstance.getPort() + "/buscien1/sayHello?name=" + name;
            log.info(url);
            String result = restTemplate.getForObject(url, String.class);
            return result;
        }
    }
    

    以上内容很清晰,在启动类中注入一个RestTemplate并且提供负载均衡的模板,在ConsumerController类中使用

    LoadBalancerClient通过应用名称获取对应的服务实例信息,并且通过RestTemplate远程调用服务进行消费。

    第四步:编写application.properties

    server.port=2000
    spring.application.name=buscien-service-02-app
    spring.cloud.nacos.discovery.server-addr=101.200.201.195:8848
    

    第五步:启动BuscienService02Appl,启动完成,在Nacos界面中能够看到注册上去的服务,访问BuscienService02Appl中的服务接口:

    http://localhost:2000/buscien2/consumer?name=ServiceConsumer

    请求成功后返回:

    hello ServiceConsumer
    

    源码地址:https://github.com/450255266/spring-cloud-alibaba

    Nacos地址对外开放:http://101.200.201.195:8848/nacos/

  • 相关阅读:
    修改ssh默认端口
    网络配置
    nginx 反向代理
    nginx web 服务
    小白日记22:kali渗透测试之提权(二)--抓包嗅探
    小白日记21:kali渗透测试之提权(一)--本地提权
    小白日记20:kali渗透测试之后渗透测试阶段(一)--上传工具
    小白日记19:kali渗透测试之选择和修改EXP
    小白日记18:kali渗透测试之缓冲区溢出实例(二)--Linux,穿越火线1.9.0
    小白日记17:kali渗透测试之缓冲区溢出实例-windows,POP3,SLmail
  • 原文地址:https://www.cnblogs.com/SimpleWu/p/13601875.html
Copyright © 2011-2022 走看看