基于Spring Cache实现Caffeine、jimDB多级缓存实战
在早期参与涅槃氛围标签中台项目中,前台要求接口性能999要求50ms以下,通过设计Caffeine、ehcache堆外缓存、jimDB三级缓存,利用内存、堆外、jimDB缓存不同的特性提升接口性能,内存缓存采用Caffeine缓存,利用WTinyLFU算法获得更高的内存命中率;同时利用堆外缓存降低内存缓存大小,减少GC频率,同时也减少了网络IO带来的性能消耗;利用JimDB提升接口高可用、高并发;后期通过压测及性能调优999性能<20ms
Stella981 Stella981
3年前
Hbase表两种数据备份方法
Hbase表两种数据备份方法导入和导出示例本文将提供两种备份方法——1)基于Hbase提供的类对hbase中某张表进行备份2)基于Hbasesnapshot数据快速备份方法场合:由于线上和测试环境是分离的,无法在测试环境访问线上库,所以需要将线上的hbase表导出一部分到测试环境中的hbase表,这就是本文的由来。
Stella981 Stella981
3年前
Selenium+Python对开源中国官网进行模拟登录
1.摘要:Selenium是一个开源的和便携式的自动化软件测试工具,用于测试Web应用程序有能力在不同的浏览器和操作系统运行。Selenium不是一个单一的工具,而是一套工具,帮助测试者更有效地基于Web的应用程序的自动化。我们这里用到的python:python3.6操作系统:archlinux
Easter79 Easter79
3年前
TiDB 的“破坏之王”:PingCAP 测试团队 | PingCAP 招聘季
数据库存储了公司的数据,是公司的最重要资产之一。正确性和稳定性是数据库最重要的特性。测试团队之于TiDB是一个“破坏之王”的角色,团队的使命是炼成更高、更快、更强的“无敌风火轮”技能。在这篇文章里,我们介绍PingCAP测试团队(QATeam)是怎么工作的。我们在做什么?我们测试团队是TiDB的“破坏者”,用
Stella981 Stella981
3年前
IBatis Mapper&Spring Data JPA实现原理
   因为我们最近的一个项目数据库访问呢层使用Ibatis, 今天团队成员问Ibatis中只写接口,不写实现,Ibatis是如何帮助我们查询数据。其实原理很简单,就是Java的反射和代理,因为Java的代理是真对于接口的。所以我们就可以在开发中DAO模块就直接写接口和对用的SQL就可以。实现类由我们生成代理,当代理方法被调用的时候我们就使用通用的数据库
Wesley13 Wesley13
3年前
Java中使用HTTP阻塞式调用服务器API
应用场景:前端页面点击刷新,调用服务器A上Java接口,然后A调用服务器B的后台Python接口实时刷新后台数据库。在这个场景中会涉及到两个问题:异步,Python服务器压力(一)解决Python服务器压力如果Python服务器接口不做任何措施,那么可能会有恶意的访问,从而导致该服务器一直刷新后台数据库。我的解决方式是:服务器B会提供一串字符
Stella981 Stella981
3年前
Jenkins实现SVN .NET持续集成
  在工作过程中,由于经常要提版本给测试,再由测试负责发布,经常会出现,提测一个产品,需要发布多个服务,包括网站,网站的服务,网站的后台管理已经后台管理的服务。总之,一次提测,要发布的东西会非常多,开发麻烦,测试更加麻烦,所以为了解决这个问题,决定采用Jenkins来实现一键发布。一、安装Jenkins  Jenkins下载地址:https
Easter79 Easter79
3年前
SpringBoot中使用JNnit4(一)之Mockito的使用
经过入门篇,可以编写出一个简单的测试用例。这篇讲的是BDDMockito的使用。BDDMockito用于测试时进行打桩处理;通过它可以指定某个类的某个方法在什么情况下返回什么样的值。在单元测试时,如果遇到复杂的业务场景,使用多个类时,就需要用到BDDMockito。需要打桩的对象,只能是@Mock注解的方式packagexx.x
Stella981 Stella981
3年前
SpringBoot中使用JNnit4(一)之Mockito的使用
经过入门篇,可以编写出一个简单的测试用例。这篇讲的是BDDMockito的使用。BDDMockito用于测试时进行打桩处理;通过它可以指定某个类的某个方法在什么情况下返回什么样的值。在单元测试时,如果遇到复杂的业务场景,使用多个类时,就需要用到BDDMockito。需要打桩的对象,只能是@Mock注解的方式packagexx.x
Stella981 Stella981
3年前
Play Scala 开发技巧
在系统开发中,我们经常需要保护一些安全性较高的接口,限制这些接口每秒处理的请求数量。例如对于一个计算密集型接口,假设压测值是100rps,如果实际情况长期高于这个值,则会引起滚雪球效应,最终导致系统崩溃。下面我们一起来看看如何在Play中实现一个完全异步非阻塞的请求限速?本文代码已提交至 playcommunity(https://www.os