服务拆分及远程调用

服务拆分注意事项

  1. 不同微服务,不要开发相同业务
  2. 微服务数据独立,不要访问其他微服务的数据库
  3. 微服务可以将自己的业务暴露为接口,供其他微服务调用

Rest Template

Spring提供的发送HTTP请求的工具,在启动类中进行注册

注入RestTemplate并发送请求

提供者与消费者

  • 服务提供者:一次业务中,被其他微服务调用的服务(提供接口给其他微服务);
  • 服务消费者:一次业务中,调用其他服务的服务.(调用其它服务提供的接口)

一个服务既可以是提供者又可以是消费者

Eureka注册中心

服务调用出现的问题

  • ip与端口硬编码在代码之中,不太灵活.

  • 请求端口如果为集群形式,不能够多选

Eureka的作用

eureka-server:服务端(注册中心)

eureka-client:客户端(各种服务)

每一个客户端在启动的时候都会去注册中心注册自身的服务信息

消费者在请求服务的时候去注册中心基于负载均衡去拉取选中服务的信息

心跳续约:服务每30秒会向eureka发送一次信息,来确认服务的状态,如果获取不到对应信息,会从注册中心将信息删除

搭建EurekaServer


端口号及服务名称自行命名
eureka本身也是微服务,在启动时会将自己也注册进eureka

注册服务

如有一服务名为userservice

第一步:引入依赖

第二部:添加配置信息

服务注册成功,显示一个服务启动的实例列表

服务的示例列表

拉取服务

服务的拉取是基于服务名称获取服务列表,然后再对服务列表做负载均衡

  1. 修改url路径,将ip,端口用服务名称代替

  2. 在请求项目的启动类中,在RestTemplate中添加负载均衡注解:

    @LoadBalanced

    @Bean
    @LoadBalanced
    public RestTemolate restTemplate() {return new RestTemplate();
    }
    

上一章:微服务与SpringCloud
下一章:Nacos注册中心

微服务拆分以及之间的远程调用相关推荐

  1. 如何使用 DDD 指导微服务拆分?

    点击上方肉眼品世界, 右上角选择"设为星标 深度价值体系传递 开发者在刚开始尝试实现自己的微服务架构时往往会产生一系列问题 : 微服务到底应该怎么划分? 一个典型的微服务到底应该有多微? 如 ...

  2. ThoughtWorks专家:使用 DDD 指导微服务拆分的逻辑

    对于服务拆分的逻辑来说,是先设计高内聚低耦合的领域模型,再实现相应的分布式系统.服务的划分有一些基本的方法和原则,通过这些方法能让微服务划分更有操作性.最终在微服务落地实施时也能按图索骥,无论是对遗留 ...

  3. 微服务拆分,选型与演进

    微服务拆分原则 在微服务拆分中,核心需求在于拆开的微服务之间的联系越少越好,数据交互也是越少越好.因为微服务之间的数据一致性非常难处理,如果一致性方面的问题很少,整体做起来就比较简单了. 微服务架构选 ...

  4. 微服务拆分策略和原则

    目录 微服务拆分目的 单体应用拆分成微服务的时机 拆分时指导原则 拆分的粒度把控 微服务拆分策略 微服务合并 拆分过程中要注意事项 注意:本文参考  微服务拆分策略和原则 - 简书 微服务拆分目的 不 ...

  5. 迭代开发中的微服务拆分

    微服务拆分是微服务架构绕不过的话题,随着架构演进,在迭代开发中拆分微服务有时非常必要,微服务拆分不仅仅是一项技术层面的重构,首先要选择的合适的时机,另外在拆分前一定要理清业务现状,制定好拆分的基本原则 ...

  6. 微服务拆分时机与原则

    微服务拆分 微服务拆分时机 为了快速迭代 高并发场景 可重用 提交代码经常冲突 小功能要积累到大版本才能上线 服务拆分原则 原则一:高内聚和低耦合. 原则二:服务拆分正交性原则 原则三:服务粒度适中. ...

  7. 如何把项目改成微服务项目_微服务拆分那点事

    Mar. 19th 2018 BY 王保平 wangbaoping@360.cn 背景 最近参与了两个项目的开发,两个项目都有多组件,各自服务功能清晰等特点,也就是所谓的微服务,再结合以前的一些单体项 ...

  8. 7:第三章:电商工程分析:2:电商工程业务解读与微服务拆分;

    说明: (1)本篇博客内容:[先了解一下,电商系统应该包含哪些业务]→[然后,结合微服务架构思想和原则,对电商系统的业务进行拆分]: (2)在实际中,这部分工作一般都是大佬干的,一般人hold不住: ...

  9. 这才是微服务拆分的正确姿势,值得学习!

    作为Java工程师,微服务拆分则是在开发过程发展到一定阶段不得不面对的技术架构要求.大家可能会遇到这些问题:为什么要拆服务?拆解方法有哪些?公司真的这样拆解微服务的吗? 以上问题统统别担心!慕课网特意 ...

  10. 现代微服务拆分与设计

    现代微服务拆分与设计 一.AKF扩展立方体 Y轴 X轴 Z轴 二.前后端分离 早期未分离(JSP+Servlet) 半分离 完全分离 三.无状态服务 四.RestFul服务通信 在设计一个微服务的时候 ...

最新文章

  1. 3.1 数据链路层功能概述
  2. dsp指令ixh_第一章 DSP入门教程(非常经典).pdf
  3. 进一步解 apt-get 的几个命令
  4. 在配置类上写@CompentScan注解来进行包扫描
  5. vs2015如何连接oracle,VS2015中C#连接Oracle数据库
  6. ASP.NET中的数据绑定:哪个更快?
  7. 我的山寨敏捷四季之春
  8. busybox制作根文件系统
  9. 【人民币识别】基于matlab GUI人民币序列号识别【含Matlab源码 908期】
  10. 浅谈![CDATA[ ]]
  11. P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
  12. Paper:《CatBoost: unbiased boosting with categorical features》的翻译与解读
  13. 【服务器数据恢复】5盘RAID5中4块盘重建RAID5后原RAID5的数据恢复案例
  14. 【嵌入式】使用Linux自带的i2c-dev操作EEPROM(Userspace Driver)
  15. leaflet 图层的建立
  16. golang的chan(管道)
  17. 计算机科学与技术专业色弱限制吗,高考录取时,对色弱很严格吗?
  18. 高企认定八个条件财务指标考核评分?
  19. PS安装扩展面板提示无法加载,因为它未经正确签署解决方法(适用于Mac/Win)
  20. 2021年安全员-C证证考试及安全员-C证实操考试视频

热门文章

  1. c语言高斯法解方程,用C语言实现解线性方程组的高斯消去法
  2. Mac 下 Netty 4.1 代码编译与运行
  3. qpython3打开app_Android QPython3 扩展:调用其他App打开文件
  4. BES ANC降噪耳机在量产中发现的噪声
  5. 中国现代文学专题形考2022
  6. python wmi 显卡型号_确定通过WMI运行的GPU
  7. vscode安装使用教程
  8. STM8S003F3 内部时钟初始化以及定时器做延时的使用
  9. Win 10提升隐藏性能
  10. api 二次 开发 禅道_二次开发机制 - 禅道开源版使用帮助 - 禅道开源项目管理软件...