java微服务-服务拆分

怎么拆分系统?[面试7.0]

大部分的系统,是要进行多轮拆分的,第一次拆分,可能就是将以前的多个模块该拆分开来了,比如说将电商系统拆分成订单系统,商品系统,采购系统,仓储系统,用户系统,等等吧

但是后面可能每个系统又变得越来越复杂了,可能就要按功能来拆分了比如说采购系统里面又分成了供应商管理系统,采购单管理系统,订单系统又拆分成了购物车系统,价格系统,订单管理系统
拆分原则: 高内聚,低耦合
高内聚: 指将复杂的逻辑封装起来作为底层,并暴露简单的对外暴露的接口
低耦合: 不相关的业务属性尽量拆分开,互不影响

拆分后为什么要用feign或ribbon调用?[面试7.0]

因为可以实现软负载均衡,feign和ribbon都是基于httpclient的请求,只不过feign封装得更彻底一些,用了接口的形式
Ribbon需要用到RestTemplate,Feign直接创建和服务名称相同的接口方法名再调用即可

怎么用UML分析并拆分系统?[面试6.0]

用例图(椭圆): 和参与者一起用来描述系统功能(用例就是指功能),是一种静态视图
参与者: 不一定是人,它指一种参与角色
这里可以可产品一起,确定一件事,明确什么角色干什么事儿?
系统边界: 系统与系统的界限
时序图: 包括参与者,对象,生命线,消息,强调对象间的时序交互,时序图交互次数太多就需要将用例需求拆得更小,使得时序图更细粒度化
参与者: 发起用例的角色
对象: 位于时序图顶部,用来功能交互的
生命线: 时序图顶部对象和底部连接的虚线(垂直维度:显示个对象的职责)
消息: 两条生命线之间的通信内容(水平维度:显示对象间发送消息的过程)
确定需求的思路:
1.先找到用例
2.找到干系人沟通确定交互上下游系统,对象
3.进一步确定详细交互流程并画出时序图
协作图: 包括参与者,对象,连接,消息,强调对象间的协作交互
和时序图不同的是没有"生命线"
活动图(流程图): 不用介绍了吧,主要表达流程用的
泳道图: 是一种多泳道模式活动图,主要表达流程,可形成流程泳道,这样的表达相对于活动图更加复杂
状态图: 描述状态的图,有状态和条件等,比如支付状态,物流状态,标的状态等等

注意: ppt形式的协作图常常用在技术方案,架构方案,重构方案上面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring微服务结构图通常包括以下几个组件: 1. 服务注册与发现:通常使用Eureka、Consul或Zookeeper等服务注册中心来实现微服务的注册与发现功能。它们允许各个微服务向注册中心注册自己的服务实例,并能够通过注册中心获取其他微服务的实例信息。 2. API网关:API网关作为整个微服务架构的入口,负责接收外部请求并进行路由和转发。常见的API网关有Netflix Zuul、Spring Cloud Gateway等。 3. 配置中心:配置中心用于集中管理微服务的配置信息,如数据库连接、缓存配置等。Spring Cloud Config是一个常用的配置中心组件。 4. 服务调用:微服务之间通过HTTP或RPC调用进行通信。常用的服务调用框架有Feign、Ribbon和gRPC等。 5. 负载均衡:负载均衡用于将请求分发到多个服务实例上,以提高系统的性能和可扩展性。Ribbon和Nginx可以用于实现负载均衡。 6. 服务容错与熔断:为了保证系统的可靠性和稳定性,通常需要在微服务之间实现容错和熔断机制。Hystrix是一个常用的容错框架,可以帮助开发者实现服务降级、熔断和限流等功能。 7. 消息队列:消息队列在微服务架构中用于实现异步通信和解耦。常见的消息队列有RabbitMQ和Kafka等。 8. 分布式追踪:分布式系统中的请求可能会经过多个微服务,为了方便排查问题和分析系统性能,需要使用分布式追踪工具。Zipkin和SkyWalking是常用的分布式追踪系统。 以上是一个典型的Spring微服务架构图,但实际的架构可以根据需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2023年Java面试宝典

您的鼓励是对我的肯定,共建希望

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值