首页 > 其他分享 >微服务项目的问题

微服务项目的问题

时间:2024-05-27 20:22:50浏览次数:21  
标签:调用 服务 拆分 服务项目 RestTemplate 问题 模块 每个

  1. 业务板块:用户模块,商品模块,购物车模块,订单模块,支付模块

  2. 服务拆分原则

    • 创业型项目:先采用单体架构,快速开发,快速试错。随着规模扩大,逐渐拆分。
    • 确定的大型项目:资金充足,目标明确,可以直接选择微服务架构,避免后续拆分的麻烦。
    • 高内聚:每个微服务的职责要尽量单一,包含的业务相互关联度高、完整度高。
    • 低耦合:每个微服务的功能要相对独立,尽量减少对其它微服务的依赖。
    • 纵向拆分:按照业务模块来拆分。
    • 横向拆分:抽取公共服务,提高复用性。
  3. 拆分服务:父工程用maven聚合,拆分为多个微服务的项目,每个微服务用一个专属数据库,每个服务之间采用restTemplate来调用远程服务

  4. RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。但若在高并发的条件下,每个微服务都有多个实例,你想调用的服务接口是不一定的,且会有接口宕机的问题,所以仅用restTemplate是不能解决以上问题的。

  5. 方便微服务之间的调用,用到nacos技术。将服务提供者注册到nacos注册中心中,服务调用者通过注册中心区调用服务,其中同样用到负载均衡策略。

标签:调用,服务,拆分,服务项目,RestTemplate,问题,模块,每个
From: https://www.cnblogs.com/hytip/p/18216431

相关文章

  • MySQL函数查询目录树问题记录
    DELIMITER//CREATEFUNCTION`getChildXzqhList`(rootIdBIGINT)RETURNSVARCHAR(4000)BEGINSETSESSIONgroup_concat_max_len=1000000;--设置为1MB设置GROUP_CONCAT函数输出的最大长度大小,太小的话整体会被截掉RETURN(WITH......
  • 基于.NET Framework 4.8.1的ASP.NET Web用Gitlab Runner调用MSBuild之后没有bin\rosl
    摘要基于.NETFramework4.8.1的传统ASP.NETWeb程序,使用GitlabRunner自动集成,在发布的网站目录下,没有bin\Roslyn文件夹。这里涉及到容易被忽视的Roslyn编译器的知识点。Roslyn是什么?在我们的ASP.NETWeb项目源代码中有什么体现?1、web.config下有配置节点一般在web.config末......
  • JAVA面试中,面试官最爱问的问题。
     请用wait-notify写一段代码来解决生产者-消费者问题。生产者-消费者问题是一个经典的并发问题,它描述的是两类并发操作的问题:生产者将数据放入缓冲区,消费者从缓冲区取出数据。使用wait()和notify()方法可以在Java中实现这个问题的解决方案。以下是一个简单的示例,其中包含一......
  • react解决电脑分辨率及缩放导致页面变形的问题
    此处借鉴Vue3解决电脑分辨率及缩放导致页面变形的问题-CSDN博客:新建devicePixelRatio.js:/***@description校正windows页面在系统进行缩放后导致页面被放大的问题,通常放大比例是125%、150%***/classDevicePixelRatio{ constructor(){ } //获取系统类型 _get......
  • JAVA面试中,面试官最爱问的问题。
    Java中的final关键字有什么作用?在Java中,final关键字具有多种用途,它可以被应用于类、方法和变量。以下是final关键字的具体作用:修饰变量:当final用于修饰一个变量时,意味着这个变量只能被赋值一次,即它是一个常量。对于基本数据类型,final使变量的值不可变;对于引用类型,final使......
  • java面试,面试官最爱问的问题。
    什么是Java中的多线程?如何实现多线程?Java中的多线程:在Java中,多线程指的是同时执行多个线程以完成不同的任务。线程是程序执行流的最小单元,一个进程可以包含多个线程,这些线程共享进程的内存空间和资源,它们可以并发或并行地执行任务,从而提高程序的执行效率和响应速度。如何实......
  • JAVA面试中,面试官最爱问的问题。
    什么是不可变对象?Java中如何创建一个不可变对象?不可变对象(ImmutableObject)是一种在创建之后其状态就不能被修改的对象。这意味着一旦不可变对象被创建,它的所有字段的值都不能再被改变。不可变对象在多线程环境下是线程安全的,因为它们的状态不会因并发访问而改变。在Java中,要......
  • 排查东方东ecu解绑问题
    现象已绑定的ecu,在平台上点击解绑,用小工具查看ecu状态,发现没有解绑;排查步骤1、可以确定的是,东方红ecu锁车功能是没问题的(测试过的);2、东方红ecu根据key区分,分为两类,可以确定的是key是没问题的;3、can分析仪检测到的数据,哪里有异常(这里看东方红锁车协议文档)上图中的两行是解绑......
  • QT | 文件读写过程中丢失的 OD OA 问题解决
    今天发现QT以文本方式(QIODevice::Text)写入二进制0x0A会出现问题,写入的是一个字节(实际应该是两个字节),结果在Zed上看,显示是2个字节。明显每个0x0A前都多了个0x0D,导致我的bin文件全部都错位了期望的效果应该是原来按照字节流的形式输出文本时,ofstream会自动将输......
  • Centos升级glibc2.28遇到的问题
    升级glibc查询glibc版本:strings/lib64/libc.so.6|grepGLIBC升级glibc2.28wgethttps://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gztar-xzvfglibc-2.28.tar.gzcdglibc-2.28创建临时文件mkdirbuild&&cdbuild../configure--prefix=/usr--disable-profile--ena......