栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

微服务之间如何通信(微服务之间怎么互相调用)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

微服务之间如何通信(微服务之间怎么互相调用)

1.  微服务架构的特征:

    1.单一职责:微服务拆分粒度更小,每个服务都对应唯一的业务能力,做到单一职责

    2.自治:团队独立,技术独立,数据独立,独立部署和交付

    3.面向服务:服务提供同一标准的接口,与语言和技术无关

    4.隔离性强:服务调用做好隔离,容错,降级,避免出现级联问题

1.1  什么是springcloud?

      springcloud是微服务中的其中一员是目前国内使用最广泛的微服务框架,它是一款经过良好设计的分布式框架,可以说微服务是在给分布式架构制定一个标准,相较于传统的分布式架构,springcloud分的粒度更小,耦合度进一步降低,数据更独立。

      springcloud集成了各种微服务的功能组件,并基于Springboot实现这些组件的自动装配,提供了很好的开箱即用体验。

      常见的组件包括:

              服务注册与发现 :  Eureka 

              服务远程调用 :OpenFeign

              服务链路监控 :Zipkin

              统一配置管理 : SpringcloudConfig

              统一网关路由 :SpringcloudGateway

              流控,降级,保护 :Hystix    

   springcloud底层是基于Springboot的,因此有版本兼容问题,hoxton 用springboot 2.2 或 2.3

     微服务拆分原则:

              1:不同的微服务不要开发相同业务

              2:微服务数据独立,不要访问其他微服务的数据库

              3:微服务可将自己的业务暴露为接口,供其他微服务调用

2.springcloud架构构建

步骤:一:创建父工程

  1 . new project (创建Maven工程)

           

对IDEA进行所需设置

 

 

 

 

 

 

 

              2. 在pom文件下导入父依赖

 properties :统一管理依赖版本

dependencyManagement:提供了一种管理依赖版本号的方式。子模块需要用到父级所有(存在)的依赖时,不需要声明version,直接继承过来用,当依赖需要升级时,直接升级父级依赖就行,不用在子模块中一一升级,当单个模块需要升级依赖时,只需要在该模块pom文件中声明version即可,很方便。

    二:在父工程下创建子工程

    1 . new module (创建Maven父工程)payment8001模块  8001是端口号

     不用√

     2. 在pom文件下导入所需依赖

这只是一部分 

     3. 写yaml

     4. 写主启动类

不连接数据库的话可以在springbootApplication后面加上(exclude = DataSourceAutoConfiguration.class)表示取消自动装配数据源,不然可能会报错 

     5. 写业务类

 可以创建一个对象作为万能的封装箱,

成功拿到数据  

以相同的方式创建   order80模块 ,但不需要写dao,service层写一个接口封装与payment模块service层中相同的方法,直接cp过来即可

 

在该模块中需要创建一个配置类,如上图,RestTemplate提供了远程调用的方法,为访问restfull接口提供了便 

 第一个参数为  远程调用的服务地址,

第二个为  要传的参数,

第三个为   http响应转换被转换的类型(就是该方法的返回类型)

 未完....

 

      

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/776565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号