当前位置 博文首页 > 蜗牛为梦想而生H:02-微服务环境搭建

    蜗牛为梦想而生H:02-微服务环境搭建

    作者:[db:作者] 时间:2021-09-07 19:18

    1. SpringCloud的相关

    1.1. 什么是springCloud

    SpringCloud是 Privotal(开发spring的团队)在2015年发布的一个项目 ,它提供了一些可以让开发者快速构建微服务项目的工具,比如配置管理,服务发现,熔断,路由等等,可以在任何分布式环境下很好的工作。
    
    但是注意:springCLoud 并不是一个全新研发的框架,它只是把一些优秀的解决微服务架构中的优秀开源框架基于SpringCloud的规范进行了整合,采用SpringBoot这个框架再次封装屏蔽掉了复杂的配置 让开发者快递上手,不需要关注底层复杂的配置 只需要简单的配置就能开发微服务项目,所以SpringCloud是一套微服务架构的规范, 而它的实现有很多比如:springCloud netflix,SpringCloud Consoul SpringCloud Alibaba
    

    1.2. springCloud的版本说明

    SpringCloud的版本,并不是像其他的Spring框架那样 x.x.x的命名格式 而是采用了伦敦地铁站的名字根据字母表的顺序结合

    ?

    1.3. Boot和Cloud对照关系

    ?

    2. 环境搭建

    2.1. 创建父工程

    ?

    2.2. 添加坐标

    <!--Springboot的版本管理-->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.7.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <!--SpringCloud的版本管理-->
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Hoxton.SR5</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>

    2.3. 创建实体工程 ?

    2.4. 添加依赖

     ? <dependencies>
     ? ? ? ?<dependency>
     ? ? ? ? ? ?<groupId>org.projectlombok</groupId>
     ? ? ? ? ? ?<artifactId>lombok</artifactId>
     ? ? ? ?</dependency>
     ? ?</dependencies>

    2.5. 新建实体类

    2.6. 新建Provider工程

    ?

    2.7. 添加依赖

       <!--依赖-->
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>com.cloud.cn</groupId>
                <artifactId>cloud-entity</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
        </dependencies>

    2.8. 编写主配置类

    ?

    2.9. 编写controller

    ?

    2.10. 启动测试

    2.11. 新建consumer工程

    ?

    2.12. 添加依赖

     ? ?<dependencies>
     ? ? ? ?<dependency>
     ? ? ? ? ? ?<groupId>org.springframework.boot</groupId>
     ? ? ? ? ? ?<artifactId>spring-boot-starter-web</artifactId>
     ? ? ? ?</dependency>
     ? ? ? ?<dependency>
     ? ? ? ? ? ?<groupId>com.cloud.cn</groupId>
     ? ? ? ? ? ?<artifactId>cloud-entity</artifactId>
     ? ? ? ? ? ?<version>1.0-SNAPSHOT</version>
     ? ? ? ?</dependency>
     ? ?</dependencies>

    2.13. 编写主配置类

    ?

    2.14. 编写Controller

    ?

    2.15. 编写配置文件

    ?

    2.16. 问题描述

    cloud-consumer和cloud-provider分别是不同的工程,我们工程之间如何调用呢??
    

    3. RestTemplate的使用

    3.1. 注入到容器

    ?

    3.2. 使用远程调用

    ?

    3.3. 启动测试

    ?

    3.4. 问题说明

    我们采用restTemplate远程调用的方式,实现了跨项目的调用,但是这个调用存在一定的问题 ? ? 
    问题一: RestTemplate官方文档说明 已经不更新 不支持异步 ? 
    问题二: RestTemplate远程调用时 URL地址写死了 如果provider的域名端口修改任意一处此时我们要修改源代码,并且如果provider是一个集群的情况下 这样写不优雅 
    
    cs
    下一篇:没有了