- 博客(39)
- 收藏
- 关注
转载 idea 炫酷插件
1.插件的安装打开setting文件选择Plugins选项Ctrl + Alt + SFile -> Setting分别是安装JetBrains插件,第三方插件,本地已下载的插件包。详情见关于settings的文章。http://www.cnblogs.com/jajian/p/8108690.html2.各种插件1. act...
2019-04-11 15:35:00
130
转载 spring静态注入
与其说是静态注入(IOC),不如讲是对JavaBean的静态成员变量进行赋值。一般我们在使用依赖注入的时候,如果当前对象(javaBean)创建(实例化)一次,那么非静态的成员变量也会实例化一次,用来支持当前对象的正常使用。而我们有的时候,一些对象是单例(scope="singleton")的,或者一些变量从项目启动从配置文件加载后不需要变化,那么这种情况下...
2018-09-06 11:42:00
115
转载 限流算法之漏桶算法、令牌桶算法
昨天CodeReview的时候看到同时使用RateLimiter这个类用作QPS访问限制.学习一下这个类.RateLimiter是Guava的concurrent包下的一个用于限制访问频率的类.1.限流每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级可用性.即接口也需要安装上保险丝,以防止非预期的请求对系统压...
2018-09-03 11:43:00
109
转载 分布式环境下限流方案的实现redis RateLimiter Guava,Token Bucket, Leaky Bucket
业务背景介绍对于web应用的限流,光看标题,似乎过于抽象,难以理解,那我们还是以具体的某一个应用场景来引入这个话题吧。在日常生活中,我们肯定收到过不少不少这样的短信,“双11约吗?,千款….”,“您有幸获得唱读卡,赶快戳链接…”。这种类型的短信是属于推广性质的短信。为什么我要说这个呢?听我慢慢道来。一般而言,对于推广营销类短信,它们针对某一群体(譬如注册会员...
2018-08-31 14:56:00
243
转载 高并发下单主要包括以下几个方面
分库分表多应用实例全局唯一订单号数据库连接买家查询订单卖家查询订单扩容问题业务拆分一、分库分表随着订单量的增长,数据库的发展主要经历以下几个步骤:-1主-1从架构-双主-多从架构,读写分离-表分区,提高并发-分表,提高并发-Master更换SSD-分库,分表,提高并发分库分表实现过程订单分成16个库,每个库64个...
2018-08-30 17:12:00
195
转载 三种方式实现日志记录
对于日志和事件的记录在每个项目中都会用到,如果在每个manager层中触发时间记录的话,会比较难以扩展和维护,所以可配置的日 志和事件记录在项目中会用到!一、拦截器实现日志记录(一)首先配置一个自定义操作日志注解接口类package cn.yxj.tool;import java.lang.annotation.ElementType;impo...
2018-08-30 11:50:00
599
转载 Shiro的认证和权限控制
权限控制的方式从类别上分,有两大类:- 认证:你是谁?–识别用户身份。- 授权:你能做什么?–限制用户使用的功能。权限的控制级别从控制级别(模型)上分:- URL级别-粗粒度- 方法级别-细粒度- 页面级别-自定义标签(显示)- 数据级别-最细化的(数据)URL级别的权限控制-粗粒度在web.xml中配置一个过滤器filte...
2018-08-30 10:48:00
85
转载 观察者模式
1.1 概述有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。它类似B/S架构模式,构建一个服务端,多个客户端显示。其实这个主题对象就像是一个信息源,当信息源的状态发送变化时,它会通知所有订阅者,使它们进行相应的处理。在百度百科中的例子是,用户界面可以作为...
2018-08-11 13:54:00
65
转载 关于消息队列的使用
一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。2...
2018-07-13 22:24:00
58
转载 Java8初体验(二)Stream语法详解
1. Stream初体验我们先来看看Java里面是怎么定义Stream的:A sequence of elements supporting sequential and parallel aggregate operations.我们来解读一下上面的那句话:Stream是元素的集合,这点让Stream看起来用些类似Iterator;可以支持顺序和并行...
2018-06-04 17:10:00
59
转载 项目中常用的linux命令
1. du-sm*|sort-n 把当前目录下的文件(或目录)按大小排序,看下哪个地方占用最多;2. pwd 获取当前目录路径3. tail -f file_path 显示文件最后几行内容(若文件内容变动,会动态更新后面几行)4. pgrep process_name 获取进程ID5. ps -ef|grep...
2018-06-02 16:54:00
105
转载 GIT 查看/修改用户名和邮箱地址
用户名和邮箱地址的作用用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。每次commit都会用用户名和邮箱纪录。github的contributions统计就是按邮箱来统计的。查看用户名和邮箱地址:$ git config user.name$ git config user.email1234...
2018-05-18 10:41:00
69
转载 字母数字下划线常用正则表达式
1.由数字、26个英文字母或者下划线组成的字符串: ^[0-9a-zA-Z_]{1,}$2.非负整数(正整数 + 0 ): ^/d+$3. 正整数: ^[0-9]*[1-9][0-9]*$4.非正整数(负整数 + 0): ^((-/d+)|(0+))$5. 负整数 : ^-[0-9]*[1-9][0-9]*$6.整数: ^-...
2018-05-09 22:57:00
398
转载 系统变量之System.getenv()和System.getProperty()
Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的变量与属性,getenv方法返回的变量大多于系统相关,getProperty方法返回的变量大多与java程序有关。System.getenv()方法是获取指定的环境变量的值。System.getenv(String str)接收参数为任意字符串,当存在指定环境变量...
2018-05-07 15:44:00
146
转载 scp和sftp常用操作
文件异地直接复制: scpSCP的全称是secure copy (remote file copy program),此命令是openssh-clients附带的,它的作用就是在机器之间实现拷贝,且机器之间的传输完全是加密的。最简单的 scp 用法如下:[root@www ~]# scp [-pr] [-l 速率] file [账号@]主机:目录名 &...
2018-04-24 17:21:00
126
转载 memcache
支持标准开源的memcached ASCII编码协议:支持memcahed协议的所有客户端无需做任何修改即可被mcrouter支持.只需要将mcrouter连接客户端和memcached盒子便能让其正常工作.连接池:mcrouter能让客户端共享连接池,以减少连接个数多种散列方法:...
2018-04-20 14:16:00
94
转载 git命令
前言知识的四大阶段,记录,分享,讨论常用命令重要数据流:数据流一: Workspace (add) -> Index (commit)-> Respository (push)-> Remote数据流二:Remote (fetch/clone) -> Respository (checkout) -> workspace数据流...
2018-04-11 20:02:00
99
转载 解决Tomcat启动时项目重复加载问题
前几天一个同学项目要上线,部署到服务器时,因为客户需要通过IP直接可以访问到,所以在server.xml做了如下的配置导致启动tomcat时候出现一个项目重复加载了两次,很容易就出现了内存溢出。这里appBase与docBase区别appBase是指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于的相对目录.如果没有此项,默认为/webapps。docBase...
2018-04-11 19:49:00
108
转载 SOA架构设计经验分享—架构、职责、数据一致性
1.背景介绍2.SOA的架构层次2.1.应用服务(原子服务)2.2.组合服务2.3.业务服务(编排服务)3.SOA化的重构3.1.保留服务空间,为了将来服务的组合4.运用DDD+GRASP进行分析和设计(防止主观的判断导致错误的假设)5.SOA分布式下的数据一致性5.1.分布式事务(基于DTC的分布式事务)5.2.事...
2018-03-26 19:12:00
65
转载 浅析负载均衡的6种算法,Ngnix的5种算法。
浅析负载均衡的6种算法,Ngnix的5种算法。浮生偷闲百家号03-21 10:06关注内容导读其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端...
2018-03-23 23:00:00
82
转载 微服务架构设计
微服务软件架构是一个包含各种组织的系统组织,这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。Conway’s law: Organizations which design systems[...] are constrained to produce desig...
2018-03-23 10:10:00
81
转载 数据库拆分案例
杭州湖畔网络技术有限公司是一家专业提供SaaS化电商ERP服务的创业公司,主要用户群体为经营淘宝、天猫、京东等主流电商平台、自建商城、线下渠道的商家及中小企业。作为SaaS服务提供商,服务数万乃至数十万级用户是业务架构初期就必须考虑的问题。庞大的用户群以及海量的用户数据意味着基础设施的构建必须兼顾高效与稳定,而按照通用的基础设施建设方案的话,需要面对成本过高、实现复杂、需要...
2018-03-21 16:43:00
133
转载 生成多个git ssh密钥
如果你已经有了一套名为id_rsa的公秘钥,将要生成另外一个公钥,比如 aysee,你也可以使用任何你喜欢的名字。步骤如下:1、生成一个新的自定义名称的公钥:1ssh-keygen -t rsa -C"YOUR_EMAIL@YOUREMAIL.COM"-f ~/.ssh/aysee...
2018-03-21 14:56:00
87
转载 分布式数据中间件TDDL、Amoeba、Cobar、MyCAT架构比较
框架比较TDDLAmoebaCobarMyCat点评TDDL不同于其它几款产品,并非独立的中间件,只能算作中间层,是以Jar包方式提供给应用调用。属于JDBC Shard的思想,网上也有很多其它类似产品。另外,网上有关于TDDL的图,如http://www.tuicool.com/articles/nmeuu2中...
2018-03-19 19:32:00
67
转载 maven工程 java 实现文件上传 SSM ajax异步请求上传
java ssm框架实现文件上传实现:单文件上传、多文件上传(单选和多选),并且用 ajax 异步刷新,在当前界面显示上传的文件首先springmvc的配置文件要配置上传文件解析器: 1 <!-- 配置文件解析器 --> 2 <bean id="multipartResolver" 3 class="...
2018-03-15 09:35:00
289
转载 MySQL的分区、分表、集群
1.分区mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区...
2018-03-14 11:49:00
100
转载 Redis实现分布式锁原理与实现分析
一、关于分布式锁关于分布式锁,可能绝大部分人都会或多或少涉及到。我举二个例子:场景一:从前端界面发起一笔支付请求,如果前端没有做防重处理,那么可能在某一个时刻会有二笔一样的单子同时到达系统后台。场景二:在App中下订单的时候,点击确认之后,没反应,就又点击了几次。在这种情况下,如果无法保证该接口的幂等性,那么将会出现重复下单问题。在接收消息的时候,消息推送重复。...
2018-01-17 14:06:00
52
转载 关于消息队列的使用
一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。2...
2018-01-17 11:29:00
48
转载 事件驱动架构 (Event-Driven Architecture,EDA) 简介
EDA 是一种侧重于以生成/消费为基础的异步通信的架构模式。这主要对照于传统的基于线程的同步系统。EDA 是一种以事件 (event)为核心,提供事件产生,路由,消费已经结果回调等机制的架构模式。简单地说, 面向服务架构 (Service-Oriented Architecture, SOA) 是一种 IT 架构策略,其基于面向服务的概念之上。自从...
2018-01-17 11:28:00
1082
转载 rabbitMQ、activeMQ、zeroMQ、Kafka、Redis 比较
Kafka作为时下最流行的开源消息系统,被广泛地应用在数据缓冲、异步通信、汇集日志、系统解耦等方面。相比较于RocketMQ等其他常见消息系统,Kafka在保障了大部分功能特性的同时,还提供了超一流的读写性能。针对Kafka性能方面进行简单分析,相关数据请参考:https://segmentfault.com/a/1190000003985468,下面介绍一下Ka...
2018-01-16 17:05:00
62
转载 消息中间件
ZeroMQ:扩展性好,开发比较灵活,采用C语言实现,实际上他只是一个socket库的重新封装,如果我们做为消息队列使用,需要开发大量的代码RabbitMQ:结合erlang语言本身的并发优势,性能较好,但是不利于做二次开发和维护ActiveMQ:历史悠久的开源项目,已经在很多产品中得到应用,实现了JMS1.1规范,可以和spring-jms轻松融合,实现了多种...
2018-01-16 17:04:00
78
转载 SOA, EDA, 和 ESB
SOA----面向服务架构,实际上强调的是软件的一种架构,一种支撑软件运行的相对稳定的结构,表面含义如此,其实SOA是一种通过服务整合来解决系统集成的一种思想。不是具体的技术,本质上是一种策略、思想。ESB----企业服务总线,像一根“聪明”的管道,用来连接各个“愚笨”的节点。为了集成不同系统,不同协议的服务,ESB做了消息的转换解释与路由等工作,让不同的服务互联互通。...
2018-01-16 16:11:00
195
转载 俩种跨域方式
1、先来说说什么是源• 源(origin)就是协议、域名和端口号。以上url中的源就是:http://www.company.com:80若地址里面的协议、域名和端口号均相同则属于同源。以下是相对于http://www.a.com/test/index.html的同源检测• http://www.a.com/dir/page.html----成功• http://www.ch...
2018-01-16 15:37:00
81
转载 cookie 和session 的区别详解
二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多有提供个人化服务的网...
2018-01-16 10:31:00
69
转载 网段划分
IPv4地址分为A、B、C、D、E五类,出去特殊作用的D、E两类,剩下的A、B、C三类地址是我们常见的IP地址段。A类地址的容量最大,可以容纳16777214个主机,B类地址可以容纳65534个主机,C类地址可以容纳254个主机。在这三类地址中,绝大多数的IP地址都是公有地址,需要向国际互联网信息中心申请注册。但是在IPv4地址协议中预留了3个IP地址段,作为私有地址,供组织机构内部...
2018-01-16 09:38:00
104
转载 十年阿里java架构师的六大设计原则和项目经验
先看一幅图吧:这幅图清晰地表达了六大设计原则,但仅限于它们叫什么名字而已,它们具体是什么意思呢?下面我将从原文、译文、理解、应用,这四个方面分别进行阐述。1.单一职责原则(Single Responsibility Principle - SRP)原文:There should never be more than one reason for a c...
2018-01-13 13:08:00
104
转载 Factom(公证通)--基于区块链的存证系统
Factom这个Solution在2014年的时候就已经推出了,现在已经2018年了,我才来写这一篇分析文章可能有些迟了,但是它是十分具有参考价值的。因为现阶段来开区块链虽然炒得火热--养猫、养狗、草泥马之类的,但是真正成熟的应用比较少,有很多连基本的链平台都没有开发完全。而bitcoin作为区块链的1.0时代的代表,也是区块链行业的标杆存在,它的生态是最完整的-...
2018-01-12 17:14:00
552
转载 MD5加密工具
import java.security.MessageDigest;/** * MD5加密工具类 * @author zwq */public class MD5Util { /** * MD5加密 * @param message 需要加密的信息,例:123456 * @return 返回MD5加密后的32位大写字符串,例:E10ADC3949BA5...
2018-01-12 16:50:00
116
转载 Oracle递归查询父子兄弟节点
1、查询某节点下所有后代节点(包括各级父节点)1 // 查询id为101的所有后代节点,包含101在内的各级父节点2 select t.* from SYS_ORG t start with id = '101' connect by parent_id = prior id2、查询某节点下所有后代节点(不包含各级父节点)1 select ...
2018-01-12 16:47:00
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人