课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
微服务架构开发随着互联网的不断发展而被众多程序员掌握并应用到不同的开发项目之中,而本文我们就通过案例分析来简单了解一下,微服务架构技术应用分析。
什么是静态数据
这里静态数据是指不经常发生变化或者变化频率比较低的数据,比如车型库、用户基本信息、车辆基本信息等,车型库这种可能每个月会更新一次,用户和车辆基本信息的变化来源于用户注册、修改,这个操作的频率相对也是比较低的。
另外这类数据的另一个特点是要求准确率和实时性都比较高,不能出现丢失、错误,以及过长时间的陈旧读。
具体是不是应该归类为静态数据要看具体的业务,以及对变化频率高低的划分标准。在这里的业务定义中,上边这几类数据都归为静态数据。
为什么需要缓存
在面向用户或车联网的业务场景中,车型信息、用户基本信息和车辆基本信息有着广泛而高频的业务需求,很多数据都需要对其进行关联处理。在这里缓存的目的就是为了提高数据查询效率。静态数据通常都保存在关系型数据库中,这类数据库的IO效率普遍不高,应对高并发的查询往往捉襟见肘。使用缓存可以极大的提升读操作的吞吐量,特别是KV类的缓存,没有复杂的关系操作,时间复杂度一般都在O(1)。注意这里说的缓存指内存缓存。
当然除了使用缓存,还可以通过其它手段来提高IO吞吐量,比如读写分离,分库分表,但是这类面向关系型数据库的方案更倾向于同时提高读写效率,对于单纯提升读吞吐量的需求,这类方案不够彻底,不能在有限的资源情况下发挥更好的作用。
通用缓存机制
下面将直接给出一个我认为的通用处理机制,然后会对其进行分析。
对于某个具体的业务,其涉及到六个核心程序:
业务服务:提供对某种业务数据的操作接口,比如车辆服务,提供对车辆基本信息的增删改查服务。
关系数据库:使用若干表持久化业务数据,比如SQLServer、MySQL、Oracle等。
持久化队列:可独立部署的队列程序,支持数据持久化,比如RabbitMQ、RocketMQ、Kafka等。
缓存处理程序:从队列接收数据,然后写入缓存。
数据一致处理程序:负责检查缓存数据库和关系型数据库中数据是否一致,如果不一致则使用关系数据库进行更新。
缓存数据库(Redis):支持持久化的缓存数据库,这里直接选了Redis,这个基本是业界标准了。
以及两个外部定义:
数据生产者:业务静态数据的来源,可以理解为前端APP、Web系统的某个功能或者模块。
数据消费者:需要使用这些业务静态数据的服务或者系统,比如报警系统需要获取车辆对应的用户信息以便发送报警。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。