• Spring Cloud Alibaba入门实战之nacos(一)


    Spring Cloud Alibaba入门实战之nacos(一)

    前情介绍

    ​ Spring Cloud Alibaba 是阿里巴巴提供的新一代的微服务解决方案,相信会有越来越多采用微服务架构的公司会将目标投入到Spring Cloud Alibaba 中。

    ​ Spring Cloud Alibaba 为国人开发,为我们提供了详尽的中文文档,阅读起来并不费劲。故本系列文章不会有太多的理论知识,文章的目的是记录搭建和使用Spring Cloud Alibaba的过程。

    相关文档:

    Spring Cloud Alibaba github: https://github.com/alibaba/spring-cloud-alibaba

    nacos 中文文档: https://nacos.io/zh-cn/

    Nacos Discovery Example: https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md

    1. Nacos 作为服务注册中心

    ​ 1.1 首先需要到Nacos的release notes 中下载Nacos并进行解压启动,推荐下载目前最新稳定版1.1.4 及Linux 压缩包,因为Nacos是使用Java编写的,故启动环境需要JDK1.8 ,下载并上传后通过tar -zxf nacosxxx 解压后,到nacos的bin目录下执行 sh startup.sh -m standalone 启动单机模式(集群模式后续介绍). 默认端口为8848 (ps:珠穆朗玛峰,Spring Cloud Alibaba nb!)

    ​ 1.2 接着我们需要创建一个Maven项目作为父工程并引入相关依赖:

    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>2.1.0.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>2.1.7.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <!-- spring-cloud -->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Greenwich.SR2</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    

    ​ 这里我们先以创建一个provider项目为例,consumer项目的创建也是同样的道理:

    ​ 1.3 引入依赖:

    <dependencies>
            <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>
        </dependencies>
    

    ​ 1.4 接着编写配置文件:

    spring:
      cloud:
        nacos:
          discovery:
    		#注册中心地址
            server-addr: 192.168.41.133:8848
      application:
        name: provider
    

    ​ 1.5 编写启动类并添加注解

    @SpringBootApplication
    @EnableDiscoveryClient
    public class ProviderApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ProviderApplication.class, args);
        }
    
        @RestController
        class EchoController {
            @GetMapping(value = "/echo/{string}")
            public String echo(@PathVariable String string) {
                return string;
            }
        }
    }
    

    三板斧:1. 加依赖 2. 写配置 3. 写注解

    接着我们就可以在nacos的管理界面中进行查看了,url: http://ip:8848/nacos ip地址为nacos服务的ip,账号和密码都是nacos

    1585388705094

    可以看到服务成功注册到了nacos的服务列表中,此时nacos作为注册中心就已经完成了,其他服务要注册也是同样的三板斧。

    服务调用

    nacos默认继承了Ribbon,此时我们再像创建provider项目一样创建consumer项目,同样的三板斧。

    然后再启动类上加上如下代码:

    	@Bean
        @LoadBalanced
        public RestTemplate restTemplate(){
            return new RestTemplate();
        }
    
        @GetMapping("/nacos/rpc/{string}")
        public String test(@PathVariable String string) {
      		string = restTemplate().
            getForObject("http://provider:8080/echo/"+string,String.class);
            return "rpc" + string;
        }
    

    这里配置了具有负载均衡能力的RestTemplate,通过restTempleta调用provider服务接口可以看到调用结果:

    好了,这里就简单的入门实战了使用Spring Cloud Alibaba nacos 作为注册中心。下一篇入门实战nacos作为来配置中心。

  • 相关阅读:
    cocos2dx CCSprite自动拉伸全屏
    linux 安装输入法
    linux jdk 配置
    Proguard.cfg 配置
    C++基本概念
    查看android keystore 别名
    view onTouch,onClick,onLongClick
    LiteDB V4.1.4版本 查询日期写法 C#
    解决Highcharts 5.0.7,IE8下bar类型图表无法显示的问题
    AspNetCore AmbiguousMatchException: The request matched multiple endpoints. Matches
  • 原文地址:https://www.cnblogs.com/ring2/p/12588579.html
Copyright © 2020-2023  润新知