Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,内置了 复制,LUA脚本,LRU驱动事件,事务和不同级别的磁盘持久化, 并通过哨兵和自分区提供高可用性。
本文为Redis初体验,主要包括以下内容:
1,在Centos中安装Redis
2,Redis的简单使用
3,构建Spring Boot Redis工程
4,遇到问题记录
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,内置了 复制,LUA脚本,LRU驱动事件,事务和不同级别的磁盘持久化, 并通过哨兵和自分区提供高可用性。
本文为Redis初体验,主要包括以下内容:
1,在Centos中安装Redis
2,Redis的简单使用
3,构建Spring Boot Redis工程
4,遇到问题记录
在软件开发中提及”mock”,通常理解为模拟对象。
为什么需要模拟? 在我们一开始学编程时,我们所写的对象通常都是独立的,并不依赖其他的类,也不会操作别的类。但实际上,软件中是充满依赖关系的,比如我们会基于service类写操作类,而service类又是基于数据访问类(DAO)的,依次下去,形成复杂的依赖关系。
单元测试的思路就是我们想在不涉及依赖关系的情况下测试代码。这种测试可以让你无视代码的依赖关系去测试代码的有效性。核心思想就是如果代码按设计正常工作,并且依赖关系也正常,那么他们应该会同时工作正常。
有些时候,我们代码所需要的依赖可能尚未开发完成,甚至还不存在,那如何让我们的开发进行下去呢?使用mock可以让开发进行下去,mock技术的目的和作用就是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。
我们可以自己编写自定义的Mock对象实现mock技术,但是编写自定义的Mock对象需要额外的编码工作,同时也可能引入错误。现在实现mock技术的优秀开源框架有很多,Mockito就是一个优秀的用于单元测试的mock框架。Mockito已经在github上开源,详细请点击:https://github.com/mockito/mockito
除了Mockito以外,还有一些类似的框架,比如:
单元测试是在编程和重构中被极力推荐使用的,可以大大的提高开发的效率(这里的效率需要综合计算后续可维护性,已经出现BUG重复修改等下,而不简单单是开发时间)。但是实际上编写测试代码也是需要耗费很多的时间和精力的,有的时候甚至要比编写代码本身花费的时间还要多,所以如何写好单元测试用例是一门很深奥的学问。
好的测试用例应该具有以下四种特性:
后续我将用一系列的博客,来记录如何对于Java代码来做单元测试,本文先从最基础的JUnit做起,先来学习基本的工具的使用。
缓存在很多场景下都是相当有用的。例如,计算或检索一个值的代价很高,并且对同样的输入需要不止一次获取值的时候,就应当考虑使用缓存。
通常来说,缓存适用于:
Spring Cache 可以基于注释(annotation)配置,对业务代码侵入极小,但却具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即用的缓存临时存储方案,也支持和主流的专业缓存例如 EHCache 集成。
我们在企业中,在使用到证书时,一般需要先生成“证书请求”(后缀大多为.csr),它包含你的名字和公钥,然后把这份请求交给诸如verisign等有CA服务公司(当然,连同几百美金),你的证书请求经验证后,CA用它的私钥签名,形成正式的证书发还给你。管理员再在web server上导入这个证书就行了。浏览器内置了很多商业的权威CA,所以你的网站是经过认证的。
而如果在企业内部网站有很多,很有可能公司会自己做CA。公司会先配置CA的私钥和公钥,私钥保存,自签CA,公钥则可以公开。而每个服务器需要生成证书请求提交给公司CA进行签发。这种情况下,访问内部网站时需要自行在客户端需要导入CA证书到受信任的颁发机构。
下面我们将介绍如何生成CA,如果使用CA签名证书,
本文记录了在window上利用VMware虚拟机安装CentOS并且在CentOS里面安装Nginx、OpenResty的过程
主要分为以下四步:
1,在Windows上安装VMware Workstation
2,图解在VMware上安装CentOS
3,在CentOS上安装OpenResty
4,解决Windows下无法访问虚拟机的问题(通过配置iptables)
5,最后介绍使用make方式安装nginx
spring-retry项目实现了重试和熔断功能,目前已用于SpringBatch、Spring Integration等项目。
RetryOperations定义了重试的API;
RetryTemplate提供了线程安全的模板实现,同于Spring 一贯的API风格,RetryTemplate将重试、熔断功能封装到模板中,提供健壮和不易出错的API供大家使用。
RecoveryCallback定义了重试操作;
RetryState用于定义有状态的重试。
灰度发布(又名金丝雀发布,英文一般称为GrayRelease或Dark launch)是为了能够让用户逐步过渡到新功能一种发布方式。 一般是产品上线一个功能,希望在线上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。
优点
灰度发布在谷歌和Facebook等很多公司已经使用的相当成熟,具体的分流规则也有很多,下面简单介绍下几种常见的分流规则,并分别使用nginx来配置实现。
使用CompletableFuture的有以下好处: