自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (7)
  • 收藏
  • 关注

转载 RabbitMQ任务分发机制

Round-robin(轮询分发)使用任务队列的优点之一就是可以轻易的并行工作。如果我们积压了好多工作,我们可以通过增加工作者(消费者)来解决这一问题,使得系统的伸缩性更加容易。修改一下NewTask,使用for循环模拟多次发送消息的过程:for (int i = 0; i < 5; i++) { // 发送的消息 String message = "Hello World...

2019-06-29 12:15:10 1152 1

转载 修改 TeamViewer ID 的方法

TeamViewer 使用频繁后会被判定为商业用途,不可用。此软件的账号和设备mac地址绑定。修改TeamViewer ID后可以重新开始使用。下述方法可以成功修改TeamViewer ID。关闭TeamViewer;开始 > 运行,录入%appdata%,删除TeamViewer的文件夹;开始 > 运行,录入regedit;删除 HKEY_LOCAL_MACHINE\SOF...

2019-06-26 11:21:23 3017

转载 kafka顺序消息

顺序消息包括以下两方面:全局顺序 局部顺序全局顺序全局顺序就目前的应用范围来讲,可以列举出来的也就限于binlog日志传输,如mysql binlog日志传输要求全局的顺序,不能有任何的乱序。这种的解决办法通常是最为保守的方式:全局使用一个生产者 全局使用一个消费者(并严格到一个消费线程) 全局使用一个分区(当然不同的表可以使用不同的分区或者topic实现隔离与扩展)局部顺序...

2019-06-24 18:06:21 457

转载 微服务系列:RPC框架的实现原理,及RPC架构组件详解

RPC的实现原理也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。比如说,A服务器想调用B服务器上的一个方法:Employee getEmployeeByName(String fullName)整个调用过程,主要经历如下几个步骤:1、建立通信...

2019-06-21 21:03:19 768

转载 zookeeper的原理和应用

场景一有这样一个场景:系统中有大约100w的用户,每个用户平 均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最多3亿份邮件需要下载到服务器中(不含附件和正文)。用20台机器划分计算的压力,从 多个不同的网路出口进行访问外网,计算的压力得到缓解,那么每台机器的计算压力也不会很大了。通过我们的讨论和以往的经验判断在这场景中可以实现并行计算,但我们还期望能对并行计...

2019-06-21 20:07:07 191

转载 ZooKeeper会话超时(dubbo自动剔除坏节点原理)

dubbo的provider结点如果挂了,自动剔除原理:zk的临时节点,会话保持原理。在ZK中,很多数据和状态都是和会话绑定的,一旦会话失效,那么ZK就开始清除和这个会话有关的信息,包括这个会话创建的临时节点和注册的所有Watcher。1、会话概述在ZooKeeper中,客户端和服务端建立连接后,会话随之建立,生成一个全局唯一的会话ID(Session ID)。服务器和客户端之间维持的...

2019-06-21 18:17:18 6558

转载 eureka和zookeeper的区别

作为服务注册中心,Eureka比Zookeeper好在哪里著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。4.1 Zookeeper保证CP当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分...

2019-06-21 15:55:21 139

转载 SpringBoot2.0.6集成Dubbo(注解形式)

springboot集成dubbo有多种方式,这里介绍一种比较新的不用xml的方式分享给大家,用到依赖dubbo-spring-boot-starter项目环境:win10+jdk1.8+zookeeper3.4.13+springboot2.0.6zookeeper的安装和配置不了解的,读者大人请自行百度。项目运行前,首先启动zookeeper的zkServer.cmd。项目结构...

2019-06-20 15:39:14 378

转载 Maven仓库理解和优先级

前言使用 maven 也有一段时间了,有时候在配置 repository,mirror,profile的时候,总会导致 jar 拉取不到。所以认真的分析了 maven 获取 jar 包时候的优先级。Maven 仓库的分类仓库分类:本地仓库和远程仓库。Maven根据坐标寻找构件的时候,它先会查看本地仓库,如果本地仓库存在构件,则直接使用;如果没有,则从远程仓库查找,找到后,下载到本地。...

2019-06-19 14:28:57 9981 1

转载 Redis百亿级Key存储方案

1 需求背景该应用场景为DMP缓存存储需求,DMP需要管理非常多的第三方id数据,其中包括各媒体cookie与自身cookie(以下统称supperid)的mapping关系,还包括了supperid的人口标签、移动端id(主要是idfa和imei)的人口标签,以及一些黑名单id、ip等数据。在hdfs的帮助下离线存储千亿记录并不困难,然而DMP还需要提供毫秒级的实时查询。由于cookie...

2019-06-18 11:19:28 253

转载 Redis中存储亿级键值对

迁移系统时,有时你必须建立一个小脚手架。我们最近不得不这样做:在Instagram上,于遗留原因,我们需要将大约3亿张照片映射到创建它们的用户的ID,以便了解要查询的分片(请参阅有关我们的更多信息)分片设置)。虽然所有客户端和API应用程序都已更新并向我们返回 完整信息,但仍有许多人缓存的旧数据。我们需要一个解决方案:查找键并快速返回值 将数据存在内存中,理想情况下是在EC2高内存类型(17...

2019-06-18 11:16:09 2070

转载 如何提取Redis中的大KEY

工作中,经常有些Redis实例使用不恰当,或者对业务预估不准确,或者key没有及时进行处理等等原因,导致某些KEY相当大。那么大Key会带来哪些问题呢?如果是集群模式下,无法做到负载均衡,导致请求倾斜到某个实例上,而这个实例的QPS会比较大,内存占用也较多;对于Redis单线程模型又容易出现CPU瓶颈,当内存出现瓶颈时,只能进行纵向库容,使用更牛逼的服务器。 涉及到大key的操作,尤其是...

2019-06-17 20:34:58 2594

转载 如何做到阿里云 Redis 开发规范中的拒绝 bigkey

代码中的问题,光靠 Code Review 是不够的。Code Review 主要是解决规范问题,当然也能排查出一些 bug。Code Review 适合技术驱动型团队、公共服务型团队、测试缺失型团队、新人密集型团队、任何有主观意愿的团队。Code Review 活动主要围绕下面 4 项工作开展。说到代码规范,我们就不得不提阿里云的 Redis 开发规范。这个规范写的很好,想把我说的都...

2019-06-17 20:31:21 2543 1

转载 如何处理redis集群中hot key和big key

概述redis 集群部署方式大部分采用类 Twemproxy 的方式进行部署。即通过 Twemproxy 对 redis key 进行分片计算,将 redis key 进行分片计算,分配到多个 redis 实例中的其中一个。tewmproxy 架构图如下:由于 Twemproxy 背后的多个 redis 实例在内存配置和 cpu 配置上都是一致的,所以一旦出现访问量倾斜或者数据量...

2019-06-17 19:56:02 2269 2

转载 如何处理redis集群中的hot Key

一般对于单实例的redis或者一主一备的redis来说(热点key参考https://mp.csdn.net/postedit/87862837),不需要考虑hot key的问题。但是随着业务量的上升,redis集群也自然而然的会成为一个选择。hot key的概念当使用redis集群来作为缓存的时候,如果在业务上碰到大促,或者正好有一个非常热的帖子的时候,对应的缓存会被频繁访问。而这个缓存...

2019-06-17 18:42:10 1210

转载 Java创建对象的过程

Java是一门面向对象的编程语言,在Java程序运行过程中每时每刻都有对象被创建出来。在语言层面上,创建对象通常仅仅是一个new关键字而已,而在虚拟机中,对象的创建又是怎样一个过程呢?一、检测类是否被加载虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过...

2019-06-17 14:54:28 349

原创 mysql索引未生效情况

索引未生效情况使用了like,且以通配符开头('%abc...')mysql索引失效会变成全表扫描的操作 加了联合索引,如果where条件中是OR关系,索引不起作用 加了联合索引,但是使用时没有符合最左原则(联合索引采用最左原则); 不要在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描 SELECT * FROM `tbl_shopmall_p...

2019-06-13 20:53:24 1738

转载 redis事务

Redis 通过MULTI、DISCARD、EXEC和WATCH四个命令来实现事务功能, 本章首先讨论使用MULTI、DISCARD和EXEC三个命令实现的一般事务, 然后再来讨论带有WATCH的事务的实现。因为事务的安全性也非常重要, 所以本章最后通过常见的 ACID 性质对 Redis 事务的安全性进行了说明。事务事务提供了一种“将多个命令打包, 然...

2019-06-13 16:52:36 126

转载 java EasyExcel集成及工具类使用

EasyExcel简介Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用...

2019-06-12 21:28:22 3538

转载 CMS之promotion failed&concurrent mode failure

CMS并行GC收集器是大多数JAVA服务应用的最佳选择,然而, CMS并不是完美的,在使用CMS的过程中会产生2个最让人头痛的问题:promotion failed该问题是在进行Minor GC时,Survivor Space放不下,对象只能放入老年代,而此时老年代也放不下造成的。(promotion failed时老年代CMS还没有机会进行回收,又放不下转移到老年代的对象,因此会出现下一...

2019-06-12 21:11:59 493

转载 JVM实用参数(六) 吞吐量收集器

在实践中我们发现对于大多数的应用领域,评估一个垃圾收集(GC)算法如何根据如下两个标准:吞吐量越高算法越好 暂停时间越短算法越好首先让我们来明确垃圾收集(GC)中的两个术语:吞吐量(throughput)和暂停时间(pause times)。 JVM在专门的线程(GC threads)中执行GC。 只要GC线程是活动的,它们将与应用程序线程(application threads)争用当前...

2019-06-12 19:58:37 359

转载 频繁ygc

ygc频繁的case很多人都问过我多久一次的ygc叫频繁,其实由于ygc通常是非常快的(几十ms或更低),所以通常来说ygc很频繁的发生也不会造成太大的影响,例如我们很多生产系统都是4s左右一次ygc。ygc频繁是比较难查的,原因是ygc频繁,但通常来说都是ygc后就回收掉了,所以内存dump下来是看不出什么的,对于这个case我给的建议是多jmap -histo [pid]几次,原因是希望...

2019-06-12 15:33:15 10762 1

转载 GC算法实现

在了解了上一章中GC算法的基本概念之后,本章将深入到各GC算法的具体实现中。对大多数JVM来说,一般需要选择两种GC算法,一种用于回收新生代内存区,另一种用于回收老年代内存区域。  新生代和老年代GC算法的可能组合如下表所示,如果不指定的话,将会在新生代和老年代中选择默认的GC算法。下表中的GC算法组合是基于Java 8的,在其他Java版本中可能会有所不同。新生代GC算法 老年代G...

2019-06-11 21:13:18 587

转载 频繁Full GC(Ergonomics)----自动选择和调优引发的FullGC

通过GC日志可以获取JVM在GC时的详细信息。GC日志既可以直接在命令行输出,也可生成到指定的日志文件中。关于GC日志,可以由很多JVM参数来控制-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:/home/logs/gc.log199.879: [Full GC...

2019-06-11 20:51:13 8970 1

转载 GC(Allocation Failure)

日前查看某个程序的日志,发现一直在报GC相关的信息,不确定这样的信息是代表正确还是不正确,所以正好借此机会再复习下GC相关的内容:以其中一行为例来解读下日志信息:[GC (Allocation Failure) [ParNew: 367523K->1293K(410432K), 0.0023988 secs] 522739K->156516K(1322496K), 0.0025...

2019-06-11 20:22:17 10098

转载 fullgc问题解决:Full GC (Metadata GC Threshold)-------元空间引发的FullGC

#问题描述在工作过程中,遇到一个问题:Tomcat在重启或者发布的时候,会有多次的full GC。JDK版本是1.8首先排查JVM的问题,就要把GC日志打开-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:/home/logs/gc.log重启Tomcat...

2019-06-11 19:31:03 3852

转载 如何使用jstack分析线程状态

背景记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高的线程?当然一个正常的程序员不会写出上述代码,这里只是为了让一个线程占用较高的cpu资源。top命令在linux环境下,可以通过top命令查看各个进程的cpu使用情况,默认按c...

2019-06-10 20:24:36 343

转载 jvm 性能调优工具之 jstat

概述Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。jstat 用法option: 参数选项 -t: 可以在打印的列加上Time...

2019-06-10 17:21:14 161

转载 mysql数据库对象导入PowerDesigner和powerDesigner模板导入mysql数据库

前提: 要想实现mysql数据库和PowerDesigner的交互需在本地安装mysql数据库驱动程序 mysql-connector-odbc-5.1.5-win32.msi。Connector/ODBC 5.1.13 下载地址:http://dev.mysql.com/downloads/connector/odbc/5.1.html mysql数据库对...

2019-06-10 16:27:30 495

转载 Nginx之Keepalived实现高可用(双机热备+自动切换)

Nginx于Keepalived可以实现高可用,实现双机热备+自动切换,这种操作在现在的集群系统中,比较的常见,还有,通过keepalived和redis实现热备份的,还有和mysql实现的,类似的案例挺多。系统架构keepalived虚拟化出192.168.100.100和192.168.100.101的虚拟化ip,这个系统是两台计算机上,有4个tomcat,2个Nginx...

2019-06-05 20:21:00 538

转载 HAproxy指南之haproxy双机热备

haproxy的出现正是弥补nginx一些应用上不足,比如session会话保持,健康监控检测机制,负载算法等等,在很多应用环境中,nginx的代理性能会haproxy稍逊一些,不过在一些实际案例中,keepalive+nginx与keepalive+nginx往往会根据业务去选择,比如nginx有着haproxy没有的代理缓存的功能等等,如果需要用到缓存就可以使用nginx,总之:根据业务来选择...

2019-06-05 20:09:19 1126

转载 Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)

Nginx、LVS、HAProxy 是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,通常会结合Keepalive做健康检查,实现故障转移的高可用功能。1)在四层(tcp)实现负载均衡的软件:lvs------>重量级nginx------>轻量级,带缓存功能,正则表达式较灵活haproxy------>模拟四层转发,较灵活 2)在七层(http)实...

2019-06-05 20:01:39 385

转载 使用 keepalived 设置虚拟 IP 环境

使用 keepalived 设置虚拟 IP 环境准备装备两个机器,IP地址信息如下:host1: 192.168.56.103host2: 192.168.56.104为了测试需要,分别在两个机器上安装apache并启动httpd服务,使下面两个url均可访问-http://192.168.56.103-http://192.168.56.104安装 kee...

2019-06-05 19:59:19 3908

转载 ETCD 简介 + 使用

随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,已经成为了迫切需要解决的问题。etcd为解决这类问题带来了福音,本文...

2019-06-05 18:04:09 183

转载 分布式事务的四种解决方案

简述分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。解决方案在分布式系统中,要实现分布式事务,无外乎那几种解决方案。一、两阶段提交(2PC)两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真...

2019-06-05 16:20:58 1565 2

ajaxfileupload修复文件

ajaxfileupload原生版本,有一些问题,此版本是修复后的

2017-08-10

修复版ajaxfileupload

ajaxfileupload.js原生版本有以下问题 1:无法带参数提交,只能上传文件; 2:运行时报:jquery.handleError is not a function 错误; 3:执行成功后,始终指向error方法处理,无法执行sucess方法; 此版本解决了这些问题

2017-08-09

ez_setup.py

此文件用于安装Python的easy_install,自测有效,可以下载试试。

2016-12-02

tomcat-redis-session-manager-1.2.jar包

基于redis缓存的session共享使用的jar包.

2016-04-12

tomcat+redis实现session共享

session共享所需的jar包,commons-pool-1.6.jar 、tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar 、jedis-2.0.0.jar,正在线上使用的jar包版本配置

2015-12-29

凡人网购物系统

凡人网购物系统课程设计,数据库设计,数据流图,需求分析

2013-03-12

DIV+CSS学习

很适合自学,你要是想自学就下载下来看看吧

2012-11-08

空空如也

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

TA关注的人

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