跳转到企业缓存之前要考虑的事项

介绍

关系数据库事务是ACID ,强大的一致性模型简化了应用程序开发。 由于启用Hibernate缓存是一项配置 ,因此,只要数据访问层开始显示性能问题,就转向缓存非常吸引人。 添加缓存层确实可以提高应用程序性能,但是它有其代价,您需要意识到这一点。

数据库性能调优

因此,数据库是任何企业应用程序的中心部分,其中包含有价值的业务资产。 数据库服务器的资源有限,因此可以服务有限数量的连接。 数据库事务越短,可以容纳的事务越多。 第一项性能调整操作是通过正确索引和优化查询来减少查询执行时间。

优化所有查询和语句后,我们可以添加更多资源( 向上扩展 )或添加更多数据库节点(向外扩展)。 水平缩放需要数据库复制 ,这意味着要同步节点。 同步复制保留了强大的一致性,而异步主从复制则导致了最终的一致性。

类似于数据库复制挑战,缓存节点会引发数据同步问题,尤其是对于分布式企业应用程序。

快取

即使适当地优化了数据库访问模式,较高的负载也可能会增加延迟。 为了提供可预测且恒定的响应时间,我们需要转向缓存 。 缓存使我们可以将数据库响应重用于多个用户请求。

因此,缓存可以:

  • 减少数据库端的CPU /内存/ IO资源消耗
  • 减少应用程序节点与数据库层之间的网络流量
  • 提供恒定的结果获取时间,对流量突发不敏感
  • 当应用程序处于维护模式时(例如,升级数据库架构时)提供只读视图

引入缓存解决方案的不利之处在于,数据是通过两种独立的技术进行复制的,这些技术可能很容易失步。

在最简单的用例中,您有一台数据库服务器和一台缓存节点:

单缓存节点

缓存抽象层知道数据库服务器,但是数据库对应用程序级缓存一无所知。 如果某些外部进程在不触摸缓存的情况下更新数据库,则两个数据源将不同步。 因为很少有数据库服务器支持应用程序级通知 ,所以缓存可能会破坏强一致性保证。

为了避免最终的一致性,需要在分布式XA事务中注册数据库和缓存,因此受影响的缓存条目将被同步更新或无效。

通常,组成整个企业系统的应用程序节点更多或多个不同的应用程序(Web前端,批处理程序,调度程序):

多个缓存节点

如果每个节点都有其自己的隔离缓存节点,则需要注意可能的数据同步问题。 如果一个节点在不通知其余节点的情况下更新数据库及其自身的缓存,则其他缓存节点将不同步。

在分布式环境中,当多个应用程序或应用程序节点使用缓存时,我们需要使用分布式缓存解决方案,以便:

  • 缓存节点以对等拓扑进行通信
  • 缓存节点以客户端-服务器拓扑进行通信,中央缓存服务器负责数据同步

分布式缓存节点

结论

缓存是一种很好的扩展技术,但是您必须注意可能的一致性问题。 考虑到您当前的项目数据完整性要求,您需要设计应用程序以利用缓存而不损害关键数据。

缓存不是一个跨领域的问题,它渗入到您的应用程序体系结构中,并且需要一个经过深思熟虑的计划来补偿数据完整性异常。

翻译自: https://www.javacodegeeks.com/2015/04/things-to-consider-before-jumping-to-enterprise-caching.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(027) Linux之shell分支if语句

十年运维系列之基础篇 - Linux 作者:曾林 联系:1494445739qq.com 网站:www.jplatformx.com 版权:文章未经同意请勿转载 一、使用if语句 通过shell,我们可以来写出这样的一个使用if语句的shell脚本片段。如下所示&…

解锁计算机桌面,电脑锁屏按什么键解锁

按回车键即可解锁。具体的解锁过程如下1、先将电脑设置一个密码,再使用电脑锁屏快捷键将屏幕锁掉,最后按回车键解锁。首先在电脑桌面上点击开始菜单,找到控制面板点击并进入。2、然后在弹出的界面找到“用户账户和家庭安全”,并单…

ppt如何旋转流程图_张伟随笔37:我书写方程式和画流程图的方法

珠海海洋王国里的海象山张伟 2020.11.23我书写方程式和画流程图的方法首发/化学张伟/2020.05.13书写化学方程式,在word里面可以实现一部分,例如,我要书写高锰酸钾受热分解为锰酸钾、二氧化锰和氧气,化学式有上下标,可以…

职业技术人士学习捷径最快的网站

由于最近研究大数据相关的技术及前沿技术,对常用的几个网站做一下分享(包含技术网站+最新资讯网站): 1. 36Kr 网站:https://36kr.com/ 提供创业资讯、科技新闻、投融资对接、股权投资、极速融资等创业服务,致力成为创业者可以依赖的创业服务平台,为创业者提供最好的产品和…

单元测试编写_为什么要编写单元测试-测试技巧8

单元测试编写我对最近的博客“您应该测试什么”有很多React,有些人出于各种原因与我达成一致,另一些人则认为建议某些类可能不需要单元测试是完全危险的。 已经处理了什么测试,今天的博客涉及为什么要编写单元测试,而今天的示例代…

7个顶级资源网站,不知道就很可惜

说起搜索资源,大家肯定先想到百度,的确“度娘”很万能,能帮我们解决很多问题,但毕竟百度资源有限,用的人多了就造成重复的问题,接下来,小编给大家分享7个顶级资源搜索网站,能满足你很…

通过Pax考试对JBoss Fuse 6.x进行集成测试,第一部分

JBoss Fuse是一个功能强大的分布式集成平台,具有内置功能,用于集中集成的微服务部署的集中式配置管理,服务发现,版本控制,API网关,负载平衡,故障转移等。 JBoss Fuse 6.x构建在Fabric8 1.x开源项…

【APICloud系列|3】开发APP对UI的一般性要求

以前用APICloud平台开发过一款APP,已经上线,现在担任CTO对UI普及一下常识。 总结 UI图:640*960、1280*720 图标大小:200*200、64*64 图片的格式:png 底部导航栏:两种图片不同颜色。 说明:

浙江大学计算机研究生分数线初试单科学科,计算机考研|这两所自划线,单科没过线也能复试?!...

东南、浙大!单科没过线也能复试!1.东南大学:统考考生(不含报考苏州联合研究生院考生和管理类联考考生)总分超过报考专业复试线20分以上,单科(限一门)可降2分。2.浙江大学:分数线(管理类联考除外)满足以下情况视同上线&…

量子计算机专业大学排名,世界十大新科技排名,量子计算机排第一名(2)

4、从空气中收集净水详细介绍:这项科技对于缺少水资源的国家地区来说会有很大的帮助,而且不需要耗费过多的资源。来自MIT和加州大学伯克利分校的研究团队通过一类新型多孔晶体——金属有机骨架,在空气湿度低至20%的环境下成功收集净水&#x…

java 拉起服务_技术开发者应该如何构建小团队的微服务方案?

作者 | 徐鹏责编 | 刘静出品 | CSDN(ID:CSDNnews)我们的产品是Linkflow,企业运营人员使用的客户数据平台(CDP)。产品的一个重要部分类似企业版的”捷径”,让运营人员可以像搭乐高积木一样创建企业的自动化流程,无需编程即可让数据…

html排序按钮_插件分享 | 可进行排序扫描任务的Task Queue

前言:在以往hvv场景中使用Goby的过程总是存在一个痛点:时间短,目标多,只能盯着扫描进度结束后才能手动返回到初始界面开启下一个扫描任务(内心极度狂躁)。本次Goby更新后又开放了新的插件入口点以及API,使添加扫描任务…

RabbitMQ如何做到不丢不重

目录 MQTT协议 如何保证消息100%不丢失 生产端可靠性投递 ​编辑 RabbitMQ的Broker端投 (1)消息持久化 (2)设置集群镜像模式 (3)消息补偿机制 消费端 ACK机制改为手动 总结 MQTT协议 先来说下MQTT…

【LESS系列】简介和使用

LESS —— 一个CSS预编译框架,它在CSS的语法基础之上,引入了变量、Mixin(混入)、运算以及函数等功能,大大简化了CSS的编写,并且降低了CSS的维护成本,就像它的名称所说的那样,LESS可以…

掌握 React 与 React Native

今天面试被人问到React 与 React Native ,废话不多说,直接上干货。 React Native官网:https://reactnative.cn/ React Native App 页面布局直接通过 HTML 和 CSS 的前端基础技术进行布局与开发,大大降低了学习成本。 你如果早就在心里有开发一个自己 App 的想法,而刚…

cpu序列号唯一吗_怎么看电脑硬件是不是新的 有什么软件能检测吗?

怎么看电脑硬件是不是全新的很多人比较关心的问题,毕竟现在很多奸商为了最求利润什么招式都用的出来,其中依旧重新,依次充好是最常见的伎俩了。 怎么看电脑硬件是不是新的 有什么软件能检测吗?这个时候大家可能就会想了&#xff0…

扬州大学计算机考研难考吗,扬州大学(专业学位)计算机技术考研难吗

考研真题资料优惠价原价选择很多考生在准备扬州大学(专业学位)计算机技术考研难吗?是考研报考的时候都会产生这样的疑问:这个专业的研究生好吗?适合我吗?对我以后的人生和职业会有帮助吗?考生在准备扬州大学(专业学位)…

21世纪的设计模式:适配器模式

这是我的演讲“ 21世纪的设计模式”的第三部分。 适配器模式桥接世界。 在一个世界中,我们有一个概念的界面。 在另一个世界,我们有不同的界面。 这两个接口有不同的用途,但有时我们需要进行转移。 在一个编写良好的世界中,我们可…

在百度搜索页添加公司总部的客服电话

先看一下收录标准 1.登录百度数据开放平台:http://open.baidu.com/data/ms/nav/pc/ 注意事项: 2.进到信息提交的页面,先填写相应的资质,后提交信息即可,按照给出来的示例,去填写相对应的信息就可以了

理解Linux系统中的load average(图文版)

本文转自:http://heipark.iteye.com/blog/1340384 一、什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度…