自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

.zz的博客

编程人生,所知所见...

原创 redis详述

本文围绕以下几点进行阐述:· 为什么使用 Redis· 使用 Redis 有什么缺点· 单线程的 Redis 为什么这么快· Redis 的数据类型,以及每种数据类型的使用场景· Redis 的过期策略以及内存淘汰机制· Redis 和数据库双写一致性问题· 如何应对缓存穿透和缓存雪崩问题· 如何...

2018-06-28 18:04:09 192 0

原创 springCloud笔记详细

Eureka1. 服务提供者1. 服务注册服务提供者在启动的时候会通过发送REST请求的方式将自己注册到EurekaServer上, 同时带上了自身服务的 一 些元数据信息。Eureka Server接收到这个REST请求之后,将元数据信息存储在 一 个双层结构Map中, 其中第 一 层的key是...

2018-06-06 16:49:28 2199 0

原创 将springboot项目一键部署到远程docker(docker+Alibaba Cloud Toolkit)

1. 步骤 服务器安装docker 编写运行jar包得Dockerfile,构建镜像 idea安装,配置Alibaba Cloud Toolkit。 这个插件会执行打包,上传到服务器,上传后执行命令,一键完成部署,jar包war包没有限制,docker不docker的也没有限制,主要在于自...

2020-04-22 16:35:59 377 0

原创 2. ParNew垃圾回收器和CMS垃圾回收器

1. ParNew垃圾回收器 新生代垃圾回收器 配置:-XX:+UseParNewGC 特点:多线程垃圾回收机制,需要把工作线程全部停掉 默认线程数量:cpu核数,可以通过 -XX:ParallelGCThreads 设置线程数 2. 老年代:CMS -XX:+UseConcMark...

2020-04-02 14:55:43 60 0

原创 1. jvm基础

1. 类的加载过程 加载,验证,准备,解析,初始化,使用,销毁 2. 内存划分 线程私有 程序计数器 没有OOM JAVA虚拟机栈 本地方法栈 线程共享 java堆 方法区,包括:运行时常量池 直接内存 3. 如何设置内存大小 -Xms:Java堆内存的大小 ...

2020-04-02 14:43:22 36 0

原创 springcloud-zuul详解

源码解析 Spring.factories中加载了ZuulServerAutoConfiguration和ZuulProxyAutoConfiguration ZuulServerAutoConfiguration中注册了FilterRegistrationBean FilterRegist...

2019-12-17 15:13:39 53 0

原创 微服务

一、微服务化的基石:持续集成 二、静态资源分离与接入层设计 三、应用层设计之无状态化与容器化 四、应用层设计之服务的拆分,发现与编排 五、性能优化之数据库设计与横向扩展 六、性能优化之缓存的设计与横向扩层 七、性能优化之消息队列与异步化设计 八、服务的编断,降级,限流设计 九、配置中心的设计与实践...

2019-02-16 10:22:08 106 0

原创 面试题整理

  数据库 四大特性: Atomicity原子性 Consistency一致性 Isolation隔离性 Durability持久性 事物的并发问题 脏读:事物A读取了事物B更新的数据,然后B回滚才做,那么A读到的是脏数据 不可重复读:事物A多次读...

2019-02-15 16:26:59 134 0

原创 kafka梳理

基本概念 Broker:Kafka节点,一个Kafka节点就是一个broker,多个broker可以组成一个Kafka集群。 Topic:一类消息,消息存放的目录即主题,例如page view日志、click日志等都可以以topic的形式存在,Kafka集群能够同时负责多个topic的分发。...

2019-01-23 17:20:20 144 0

原创 spring常用注解整理

1. 生成bean对象 @Bean @Controller @Service @Repository @Component 注解标注该类,然后再使用 @ComponentScan 扫描包 @Import 方法 传入普通类,则将此类注入IOC容器 传入普通类实现ImportSelecto...

2019-01-14 17:02:37 983 0

转载 Sentinel 使用(3)集群流控

一、为什么需要集群流控功能? 假设我们希望给某个用户限制调用某个 API 的总 QPS 为 50,但机器数可能很多(比如有 100 台)。这时候我们很自然地就想到,找一个 server 专门用来统计总的调用量,其它的实例都与这台 server 通信以判断是否可以调用。这就是最基础的集群流控的方式...

2019-01-14 15:00:24 2448 0

原创 Sentinel 使用(2)规则配置

1. 流量控制规则 (FlowRule) 重要属性: Field 说明 默认值 resource 资源名,资源名是限流规则的作用对象   count 限流阈值   grade 限流阈值类型,QPS 或线程数模式 QPS 模式 li...

2019-01-11 17:07:46 1275 0

原创 Sentinel 使用(1)基本使用

1. 简述 Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等   Sentinel 分为两个部分: 核心库(Java 客户端)不依赖任何框架/库,能够运行于所...

2019-01-10 16:33:57 5186 0

原创 关于雪花算法全是偶数的问题处理

1. 问题描述 生成的id全是偶数的 2. 问题发现 由于跨毫秒后,最后的sequence累加就会清零,导入末位为偶数。如果id生成不频繁,则生成的就是全是偶数 3. 解决 主要的根本就在跨毫秒清零,如果在跨毫秒时候sequence不清零,实际上每次生成id时,时间毫秒在增加,seque...

2018-12-10 11:17:26 1619 5

转载 在高并发的核心技术中如何实现幂等性

实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 3. 发送消息,也应该只发...

2018-10-12 15:48:46 397 0

原创 dubbo基本使用

相关链接: git文档:https://github.com/apache/incubator-dubbo-spring-boot-project/blob/master/README_CN.md 官方文档:http://dubbo.apache.org/zh-cn/docs/user/qui...

2018-09-11 14:43:14 311 0

原创 swagger的使用

1. 添加依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId&a...

2018-09-07 17:36:34 78 0

转载 详细介绍高性能Java缓存库Caffeine

本篇文章主要介绍了详细介绍高性能Java缓存库Caffeine,觉得挺不错的。 1、介绍 在本文中,我们来看看Caffeine — 一个高性能的 Java 缓存库。 缓存和 Map 之间的一个根本区别在于缓存可以回收存储的 item。 回收策略为在指定时间删除哪些对象。此策略直接影响缓存的...

2018-09-04 14:07:43 3005 0

原创 jetcache(3)优点与问题

优点 注解式操作 springboot支持 多级缓存支持 缓存细节封装 缓存统计 可以提供原生的操作对象,比如jedis,lettuce等 可以配置多个redis实例,以及集群,哨兵等模式 等等等等。。。。。。 缺点 computeIfAbsent方法load数据时没有提供锁功能,会造...

2018-09-03 11:15:00 2046 0

原创 jetcache(2)缓存策略

redis的支持 jedis 选用jedis访问redis,对应的maven artifact是jetcache-redis和jetcache-starter-redis(spring boot)。 部分配置: jetcache: areaInCacheName: false...

2018-09-03 11:03:38 2083 1

原创 jetcache(1)基本使用

基本使用 当前有四个实现,RedisCache、TairCache(此部分未在github开源)、CaffeineCache(in memory)和一个简易的LinkedHashMapCache(in memory),要添加新的实现也是非常简单的。 pom <dep...

2018-08-31 14:23:32 1616 0

原创 缓存系统的设计和问题

参考文章:http://stor.51cto.com/art/201808/582218.htm 选择合适的进程缓存 ConcurrentHashMap, 比较适合缓存比较固定不变的元素,且缓存的数量较小的 jdk自带的,使用方便 可以用来缓存反射的Method, Field等 ...

2018-08-29 16:18:14 1133 0

原创 redis的java客户端lettuce的使用

从官方文档翻译并整理的,有地方可能表述不准确 文档地址:https://github.com/lettuce-io/lettuce-core/wiki/About-lettuce 1. lettuce的介绍 lettuce是一个线程安全的redis客户端。提供同步,异步和reactive(?...

2018-08-28 17:28:12 13443 0

原创 java的try-witn-resource

Java7新增了自动关闭资源的try语句。它允许在try关键字后紧跟一对圆括号,里面可以声明、初始化一个或多个资源,此处的资源指的是那些必须在程序结束时显示关闭的资源(数据库连接、网络连接等),try语句会在该语句结束时自动关闭这些资源。 偶尔看到,原来还可以这样。。。 public cla...

2018-08-27 18:07:28 72 0

转载 session持久化

目录 1. 参考的优秀文章 Tomcat Session 持久化 Package org.apache.catalina.session   最近同事在做Session外置的功能,我对Session持久化、共享也不太了解,学习一下。   一般来说,Tomcat原生的持久化Sess...

2018-08-24 16:46:34 1443 1

原创 spring session管理

1. session管理 spring session管理可以适用于很多功能,如: 登陆/退出 在线统计 限制账号多处登陆等 2. 监听器 相关的监听器主要有两个:HttpSessionListener和HttpSessionBindingListener 1. HttpSession...

2018-08-23 16:55:43 530 0

转载 python协程

python asyncio 网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程。无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态。使用协程可以实现高效的并发任务。Python的在3.4中引入了协程的概念,可是这个还是以生成器...

2018-08-08 15:48:19 281 0

原创 前端图片转base64并压缩

js$(function() { $("#up").change(function() { imageDeal(this, dealChange); }); }) var dealChange = function(blob, base64) { var fd = n...

2018-07-09 18:03:06 17023 2

转载 redis架构(4)-集群动态扩容

原文:https://www.cnblogs.com/PatrickLiu/p/8473135.html一、引言      上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境。当然,大家可以使用 Cluster info 命令...

2018-06-29 16:53:18 1207 0

转载 redis架构(3)-集群搭建

原文:https://www.cnblogs.com/PatrickLiu/p/8458788.html一、引言        本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的所涉及到的概念做深入的探讨。本文只是针对如何设置集群、测试和操作集群做了简述,并且从用户的角度描...

2018-06-29 16:52:08 146 0

转载 redis架构(2)-哨兵模式

原文:https://www.cnblogs.com/PatrickLiu/p/8444546.html一、引言             上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但...

2018-06-29 16:50:12 187 0

转载 redis架构(1)-主从复制

原文:https://www.cnblogs.com/PatrickLiu/p/8426610.html一、引言          Redis的基本数据类型,高级特性,与Lua脚本的整合等相关知识点都学完了,说是学完了,只是完成了当前的学习计划,在以后的时间还需继续深入研究和学习。从今天开始来讲一...

2018-06-29 16:49:13 159 0

转载 logback配置详解

目录1、根节点包含的属性2、根节点的子节点 2.1、设置上下文名称: 2.2、设置loger、root 正文回到顶部1、根节点<configuration>包含的属性scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPe...

2018-06-27 17:24:17 161 0

原创 关于项目总结

关于常量在代码中出现数字或者具体的字符串,绝对是一件不好的事情。但是如果业务复杂,常量很多,那么怎么组织常量又是一个问题。其中有两个问题要考虑,第一个是命名。如果模块很多,那么为了区分模块中某个业务下的某个常量,常量名称会边的巨长,显得很臃肿。第二个是常量的聚合。如果常量很多,可能会有很多常量是按...

2018-06-27 16:17:05 157 0

原创 关于项目优化

项目优化毫无止境,但是常用的一些,可以有很多出众的效果。首先是功能服务模块化,独立部署。微服务带来的便利很多很多。具体的优化可以分块说明。借助网上的一些优秀文章,以及项目经历过的坑,简单总结下。分离技术1. 模块分离监控服务,日志服务,消息服务等。业务分开开发和部署。2. 数据库读写分离对于大部分...

2018-06-27 16:16:03 179 0

转载 kafka API详解

1. 生产者apiProducer是Kafka三大组件中的一个,用于发送消息到kafka集群中Producer提供了丰富的配置(见后面的配置项)用于控制它的行为在编码之前先使用命令创建topic./kafka-topics.sh --create --zookeeper hadoop01,hado...

2018-06-25 14:03:27 14660 4

原创 springBoot(4) aop

1. 切面与切点 定义切面@Aspect@Configurationpublic class AopConfiguration {} 切面内定义切点@Pointcut("execution(* com.test.service.*.*(..))")public void exe...

2018-06-11 16:30:42 84 0

原创 spring-cloud(7)【Sidecar整合其他服务】

可以使用sidecar来整合其他web项目到springCloud中。1. 为web项目添加健康检查接口提供http接口,返回json:{"status" : "up"},status用于描述微服务的状态,常见的取值有UP,DOWN,OUT_OF_SERVI...

2018-06-06 16:22:54 2215 1

原创 springBoot(5) springBoot的/error的自定义处理

    在springboot项目里,如果没有统一异常处理,或者如果没有处理全面,又或者在springCloud zuul中调用微服务接口出错时,spring会自动把错误转发到默认给/error处理。    正常情况下,可以配置错误页面来给用户提示错误,如404,500等。但是在前后分离项目中,可...

2018-06-05 17:51:44 7439 1

原创 spring-cloud(5)【zuul】

1. 概述    API网关是 一 个更为智能的应用服务器, 它的定义类似于面向对象设计模式中的Facade模式, 它的存在就像是整个微服务架构系统的门面 一 样,所有的外部客户端访问都需要经过它来进行调度和过滤。它除了要实现请求路由、 负载均衡、 校验过滤等功能之外, 还需要更多能力, 比如与服...

2018-06-04 15:57:40 86 0

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