微服务实战-数据共享

跨微服务的数据共享,有两个常用的方法:反应式模式、请求/响应模式。

反应式模式基于已经发生的事件做出本地反应,但不会回复响应,主要的实现方式就是事件消息通信。

最通用的请求/响应式模式实现RESTAPI,通过HTTP协议传输对象。相对反应式模式,实现起来更简单。

这两种方式并非对立的,两者之间互相补充,往往在同一架构中使用同时使用这两种数据共享模式。

跨微服务数据共享会引发一个问题,即领域隔离问题。

多个微服务之间传输领域对象,领域对象的管理问题虽然不复杂,但是很关键。

一个存在潜在风险的处理方式是将公用的领域对象抽离成单独的包,风险在于微服务失去了领域对象的修改权限,往领域模型内自由添加属性变得比较困难。如果限于某个业务的需求,在抽离包中修改了领域对象,会间接影响所有使用该对象的微服务。

另一个备选方案是生成模型的简单副本,微服务汇集本地所有的共享传输对象,拷贝出副本或副本包提供给其他微服务使用。
这种方式的使用,主要基于使用数据传输对象(Data Transfer Object,DTO)。数据使用方不需要维护这些DTO,直接使用反序列化,将传输数据转换为DTO对象。
这种方案的一个关键点是为不同版本API创建不同的DTO对象,否则会给接口使用方带来很大的麻烦。因为,一旦DTO结构发生变化,直接影响数据使用方的反序列化处理。

最灵活的方案是使用“裸响应”,例如直接使用JSON传输。数据使用方可以选择性的反序列化部分属性,这也减弱了数据使用方因传输属性变动而受到的影响。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
分布式缓存在微服务架构中起着重要的作用。它可以提高系统的性能、可扩展性和可靠性。下面是关于微服务中分布式缓存的一些常见问题和答案: 1. 什么是分布式缓存? 分布式缓存是指将缓存数据存储在多个节点上,以提供更高的性能和可扩展性。它可以减少对底层数据源的访问次数,从而提高系统的响应时间。 2. 为什么在微服务架构中使用分布式缓存? 在微服务架构中,每个微服务都是相互独立的,拥有自己的数据存储。使用分布式缓存可以将共享的数据存储在缓存中,减少对微服务之间的数据传输和数据库访问的依赖,提高系统的性能和可扩展性。 3. 哪些场景适合使用分布式缓存? 分布式缓存适用于那些读取频率高、计算代价高、数据变化不频繁的场景。例如,用户信息、商品信息、配置信息等可以存储在分布式缓存中,以减少对数据库的访问次数。 4. 常见的分布式缓存系统有哪些? 常见的分布式缓存系统包括Redis、Memcached、Hazelcast等。它们提供了高速的内存存储和读取能力,并支持分布式部署和数据复制。 5. 如何使用分布式缓存? 使用分布式缓存需要考虑数据一致性和缓存更新的问题。可以使用缓存策略、缓存失效机制和更新通知等方式来管理缓存数据的一致性,并定期清理过期的缓存数据。 6. 分布式缓存有哪些挑战? 分布式缓存面临的挑战包括缓存一致性、缓存雪崩、缓存击穿和缓存穿透等问题。需要通过合适的缓存策略和技术手段来应对这些挑战。 希望以上信息对你有所帮助!如果还有其他问题,欢迎继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值