自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 使用K8s heml部署redis高可用架构

1、安装helm1、下载 helm2、第二步,解压helm压缩文件,把解压后的helm目录复制到 usr/bin 目录中3、使用命令:helm2、配置helm仓库###### 配置微软源helm repo add stable http://mirror.azure.cn/kubernetes/charts###### 配置阿里源helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts##

2021-06-15 17:20:12 435

原创 UT Case

Mockpublic class UtCaseController { private MockMvc mvc; @InjectMocks private DeclarationController declarationController; @Mock private DeclarationService declarationService; @Mock private ConfirmationPdfService confirma

2021-05-18 11:58:34 338

原创 commond

命令打包命令mvn clean package -Dmaven.test.skip=true -Dspring.profiles.active=dev -Pdevmvn package -Dmaven.test.skip=true -pl module ( 这个使用于module的项目 )重新编译pom文件mvn idea:modulepgsqlServer的启动pg_ctl.exe start -D ./data重新引入jar包强制引入mvn clean install -U -

2021-05-11 17:00:37 335

原创 Redis 缓存设计

Redis 缓存设计缓存设计缓存穿透缓存穿透是指查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询, 失去了缓存保护后端存储的意义。造成缓存穿透的基本原因有两个:第一, 自身业务代码或者数据出现问题。第二, 一些恶意攻击、 爬虫等造成大量空命中。缓存穿透问题解决方案:1、缓存空对象public class SaveEmpty { @Autowired

2020-10-25 21:44:06 208

原创 Redis 分布式锁

Redis 分布式锁图是分布式锁实现原理在spring-boot 中添加redisssion的配置以及应用Spring Boot StarterIntegrates Redisson with Spring Boot library. Depends on Spring Data Redis module.Supports Spring Boot 1.3.x - 2.3.xConsider Redisson PRO version for advanced features and suppo

2020-10-23 22:40:22 191

原创 Redis的集群配置

redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点)。redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单redis集群搭建redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建2.

2020-10-23 20:52:18 648

原创 Redis主从架构和哨兵架构

Redis主从架构Redis主从工作原理如果你为master配置了一个slave,不管这个slave是否是第一次连接上Master,它都会发送一个SYNC命令(redis2.8版本之前的命令)给master请求复制数据。master收到SYNC命令后,会在后台进行数据持久化通过bgsave生成最新的rdb快照文件,持久化期间,master会继续接收客户端的请求,它会把这些可能修改数据集的请求缓存在内存中。当持久化进行完毕以后,master会把这份rdb文件数据集发送给slave,slave会把接收到

2020-10-20 23:21:28 133 1

原创 Redis的持久化

RDB快照(snapshot)在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存一次数据集。比如说, 以下设置会让 Redis 在满足“ 60 秒内有至少有 1000 个键被改动”这一条件时, 自动保存一次数据集:# save 60 1000关闭RDB只需要将所有的save保存策略注释掉即可还可以手动执行命令生成RDB快照,进入redis客户端执行命

2020-10-09 21:57:46 90

原创 Redis的安装

Redis的安装安装系统的版本:安装gcc下载redis下载地址:http://redis.io/download安装步骤:# 安装gccyum install gcc# 把下载好的redis-6.0.8.tar.gz放在/usr/local文件夹下,并解压wget http://download.redis.io/releases/redis-6.0.8.tar.gztar xzf redis-6.0.8.tar.gzcd redis-6.0.8# 进入到解压好的redi

2020-10-07 23:03:06 132

原创 集合类不安全问题

学习课程记录笔记1、ArrayList线程安全问题ArrayList不是线程安全类,在多线程同时写的情况下,会抛出java.util.ConcurrentModificationException异常。private static void listNotSafe() { List<String> list = new ArrayList<String&gt...

2020-05-07 20:52:38 118

原创 CAS理解

1、现象CAS是指 Compare And Swap,比较并交换,是一种重要的同步思想,如果主内存的值和期望值一样,那么久进行修改,否则会一直重试,直到一致为止;public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger = new Atomic...

2020-05-06 21:55:22 177

转载 JMM和Votitle关键字

什么是JMM模型JMM是java内存模型(Java Memory Model),不是java内存布局,不是所谓的栈、堆、方法区;每个java线程都有自己的工作内存,操作数据时首先从主内存中读取数据,得到一份变量的拷贝,线程操作完成后再将操作结果写回主内存中;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lq8XVkCi-1588685070134)(C:\...

2020-05-05 21:26:41 540

转载 volatile和synchronized区别

这个可能是最好的对比volatile和synchronized作用的文章了。volatile是一个变量修饰符,而synchronized是一个方法或块的修饰符。所以我们使用这两种关键字来指定三种简单的存取变量的方式。int i1; int geti1() { re...

2020-03-23 15:46:46 105

转载 安装Python在centos7中

我这里使用的时centos7-mini,centos系统本身默认安装有python2.x,版本x根据不同版本系统有所不同,可通过 python --V 或 python --version 查看系统自带的python版本有一些系统命令时需要用到python2,不能卸载 1、安装依赖包          &nbsp...

2020-01-02 11:00:47 88

转载 PDB调试

pdb为python程序实现了一个交互式调试环境。它包括一些特性,可以暂停程序,查看变量值,以及逐步监视程序执行,从而能了解程序具体做了什么,并查找逻辑中存在的bug。启动调试工具使用pdb的第一步是让解释器在适当的时候进入调试工具。可以采用很多不同的方法达到这个目的,具体取决于起始条件和所要调试的内容。从命令行执行pdb的最直接的方式是通过命令行运行,命令格式如下pyth...

2019-12-11 14:15:27 266

转载 安装DjianGo

    安装DjianGo前必须安装Python环境,由于已经装过,这里不再贴出安装Python的步骤,我的Python版本是3.2。  1、下载djangohttps://github.com/django/django/releases2、将下载的文件解压缩,解压后的文件放到和python文件夹一样的根目录3、运行执行...

2019-11-28 20:30:53 1388

转载 idea 快捷键ctrl+shift+f失效的解决方案

1. 刚换了新环境,新装的idea的快捷键ctrl+shift+f按了没反应,于是想到快捷键冲突了,马上查看qq和搜狗输入法的快捷键:...

2019-11-26 15:39:46 187

转载 CSDN博客如何转载别人的文章(最新版详细教程)

...

2019-11-26 13:29:30 90

转载 XShell鼠标选中, 实现快捷复制和粘贴

原创 XShell鼠标选中, 实现快捷复制和粘贴 ...

2019-11-26 12:02:00 230

转载 linux 下 touch: cannot touch 'catalina.out': Permission denied解决方法

报以下错误:报错原因:目录没有创建修改权限解决办法: 所有人可操作logs文件chmod说明(u:与文件属主拥有一样的权限[a:所有人];+:增加权限;rwx:可读可写可执行)-R:递归所有目录和文件进入到tomat的目录中,找到有该文件夹的目录,执行下面命令。意思就是改变logs文件夹的权限,使tomcat可以有权限访问此文件夹。[root@hm01 ~]# chmod a...

2019-11-22 14:03:12 7533

转载 虚拟机网络模型详解

虚拟机网络模型详解,看这篇就够了(图文并茂)目录01 从物理网络到虚拟网络02 桥接(Bridge Adapter)03 NAT04 主机网络(Host-only Adapter)05 内部网络(internal)06 总结01 从物理网络到虚拟网络#著名的「六度分隔定理」说到,世界上任何两个互不相识的人,只需要最多六个人就能够建立起联系。这个定理成立的前提就是依托于庞大的网络结...

2019-11-22 10:42:03 235

原创 删除git在windows上的凭证

由于本人安装git的客户端以及开始下载github上的项目代码,第一次输入的账户名以及密码错误,需要删除windows上自己保存的账号密码凭证:我自己的电脑配置运用命令行打开控制面板也十分方便,快捷键“Win+R”打开运行窗口。输入:control,打开控制面板点击用户账号–》凭据管理器点击删除即可...

2019-11-15 17:44:35 2943

原创 spring头文件

Spring官网1、Spring的头文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context...

2019-10-14 16:04:58 271

转载 Java8几个特性

1、接口的默认方法:Java8允许我们给接口添加一个非抽象的方法实现,只需要使用default关键字即可,这个叫做扩展,示例如下:public interface Formula{ double caculate(int a); default double sqrt(int a) { return Math.sqrt(a); }}在接口中定义...

2019-10-09 15:07:22 117

转载 java8-Lambda表达式

Lambda是表达式,也可以成为闭包,是java8的重要特性;Lambda允许把函数作为作为一个方法的参数(函数作为参数传递进方法中);使用Lambda可以使代码更整洁;语法方法一:(parameters)->expression方法二:(parameters)->{expression;}Lambda 表达式实例// 1. 不需要参数,返回值为 5 () ->...

2019-09-30 15:30:14 640 1

原创 Countdownlatch、CyclicBarrier、join区别

1、join模拟现在有三个worker,采用join的方法控制:package org.pbccrc.org.pbccrc.thread;public class Test { public static void main(String[] args) throws InterruptedException { Worker worker1=new Worker("第一个任务"...

2019-09-29 16:37:20 161

原创 int与Integer几个例子

1、自动的装箱与拆箱机制:Java为每个基本的数据类型提供类包装类,对应关系如下:从java5引入了自动的拆箱与装箱的机制,使基本的数据类型与包装类能相互转换;public class AutoUnboxingTest { public static void main(String[] args) { Integer a=new Integer(3); Integer b=3;...

2019-09-18 14:37:41 313

原创 Clone对象

这篇文章来源于《java面试宝典》抱歉忘了引用地址:想发布为引用文章的,但是没有引用地址这个必填项,暂且作为原创吧,毕竟里面的部分文字和代码自己敲的;1、Clone在编程中我们会遇到这种情况,目前:有一个对象A已经有许多有效的数值,此时我们需要对象B 和A一致,并且对B的以后的修改不影响A的值,就是A与B是两个独立的值,但是B的初始值是A,clone就是实现这种操作最简单的方法:就像:cop...

2019-09-17 11:25:39 217

原创 多线程安全及线程池

1、线程安全与非线程安全:线程安全:多线程访问时,采用了加锁机制,当有某个线程操作类时,其他对象不能对此类进行操作,直到该线程使用完成其他线程才能对此类进行操作,不会出现数据不一致,或者数据污染问题;线程不安全:就是不提供数据访问的保护,任何线程任何时候都能进行操作访问,导致多个线程可以同时操作同一个对象,会出现数据污染与数据不一致问题;例如:我们去银行取钱,你有存折,你老婆有银行卡,同时在...

2019-09-16 16:27:14 171

原创 多线程实现、周期、控制方法

1、进程与线程区别:在操作系统中打开一个记事本,就是启动一个程序,代表着操作系统会分配一块内存给这个程序进程,一个进程至少有一个线程,线程是最小的执行单元,可以共享进程的数据,开销比较小;打开一个程序就会开启一个进程,一个进至少有一个线程,多个线程之间可以共享进程的数据;2、并发与并行的区别:并行:是指同一时刻有多个指令在处理器上执行;是同时进行;并发:指一个时刻只能有一个指令得到执行,...

2019-09-12 17:18:12 189

原创 java异常体系简介

1、异常体系:图片来源:https://blog.csdn.net/zhanaolu4821/article/details/81012382Trowable有两个子类:Error和Exception:Error:是与虚拟机有关的异常,如:系统崩溃,动态链接失败,虚拟机错误(AWTError、IOError),是不能捕获;Jvm的内存消耗完会报的OutOfMemoryError,这种错...

2019-09-12 10:36:13 715

原创 Java常用集合

1、集合的概念集合只能存放引用类型不能存放基本类型,集合存放的是对象的引用,而数据存放至堆数据区;集合可以存放多种数据类型,而且数量不限制;2、集合涉及到的类:图片来源:https://blog.csdn.net/zhangqunshuai/article/details/80660974Set、List、Queue都是接口,顶层接口都是CollectionSet:HashSet、L...

2019-09-11 15:31:28 107

原创 内部类

内部类:将一个类放在另一个类里或者方到另一个类的方法里,就是内部类,内部类分成4种:成员内部类、局部内部类、匿名内部类、静态内部类:成员内部类:成员内部类可以无条件的访问外部类的属性与方法,但是如果外部类如果访问内部类的属性或者方法时需要实例化一个内部类对象,通过该对象访问内部类属性与方法:内部类访问外部类属性或者方法:public class Outer { private St...

2019-09-10 18:49:20 98

原创 枚举类

枚举1、常规使用:package org.pbccrc.org.pbccrc.enmu;//this is the basic use for enumpublic enum Color { RED,YELLOW,BLUE,GREEN,BLACK}测试用例:public class EnumTestForBasic { public static void main(Stri...

2019-09-10 14:59:16 114

原创 接口与抽象类区别

抽象类 Abstract class抽象类是用abstract来修饰的,可以把抽象类当做是模板来使用,抽象类不能创建实例化对象,只能作为基类被继承,抽象类中的方法可以不是抽象的,但是抽象方法必须在抽象类中,子类继承抽象类后需要对抽象的方法重写其具体实现;抽象类的几个特性:被继承性:抽象类作为基类主要是用来被继承的,子类需要重写抽象类中抽象方法的实现,因此修饰抽象方法必须是public、pro...

2019-09-10 10:46:51 110

原创 Webservice

webservice有三部分:webservice的介绍、webservice的客户端的实现方式、webservice服务端的实现方式;webservice介绍:webservice是两个系统之间的调用, 实现两个系统间数据交互,如:支付宝调用各个银行的接口实现支付功能;我们再网站下订单时调用库存与支付系统,完成库存数据减少,同时完成订单记录与支付webservice的调用是可以跨语言的,如...

2019-08-30 11:28:43 3167 1

转载 JAVA IO输入流 输出流

1、JAVA IO 概要- 几个重要类java有5个重要的类:File InputStream、OutputStream、Reader、Writer1个接口:SerializableIO的主要包括层次1、流式部分—IO主体部分2、非流式部分–主要是一些辅助流式部分类,如File、RandomAccessFile FileDescriptor主要类的介绍:Fil...

2019-08-19 17:32:03 135

原创 Thfirt的协议、传输方式、服务端类几个类分析

协议TBinaryProtocol —— 二进制编码格式进行数据传输TCompactProtocol —— 高效率的、密集的二进制编码格式进行数据传输TJSONProtocol —— 使用 JSON 的数据编码协议进行数据传输TSimpleJSONProtocol —— 只提供 JSON 只写的协议,适用于通过脚本语言解析传输层创建服务端连接的Socket设置服务端的soc...

2019-05-17 16:35:08 336

转载 RPC的框架的应用--thrift

本文是多篇文章的转载,但是经过本人的亲自实践,多谢大神的分享,有幸学的好多的东西thrift的安装安装镜像下载地址http://archive.apache.org/dist/thrift/0.12.0/安装1.在C盘新建一个Thtift文件夹,将下载的thrift-0.9.1.exe重新命名为thrift.exe后放到Thtift文件夹下2.配置环境变量path3、测试安装是否成...

2019-05-17 16:09:35 593

原创 RPC的介绍

1、什么是RPCRPC—Remote Procedure Call 远程过程调用网上有一篇博客说的很简练,拿洗衣服来说:本地过程调用:如果你想洗衣服,直接去卫生间把洗衣机的开关打开就行远程调用:你在外面逛街,想起来家里还有衣服没有洗,就打电话:老公把洗衣机开关打开洗衣服;2、分布式与集群:可以说分布式促使RPC的应运而生,分布式和集群的概念,看到网上有一个很形象的例子:集群:例如如果...

2019-05-17 15:35:27 163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除