自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

到西伯利亚浪

多总结多思考

  • 博客(79)
  • 资源 (5)
  • 收藏
  • 关注

原创 Mac Idea Jar源码乱码 Reload无效问题

现象在idea里面,maven下载jar源码乱码,然后右键->file encoding->选择其它编码 没有效果,无法改变其编码个格式。解决idea里面强制设置了编码utf-8无法改变在如下地方设置的:将file encoding的设置去除,就可以更改jar源码文件的编码了。...

2020-02-11 12:45:14 2715 1

原创 MAC 快捷键

文件管理空格键——快速查看(查看照片时非常有用哦!)Command+A——选择全部Command+I——显示简介Command+N——新建文件夹Command+F——搜索Command+C——复制Command+V——粘贴(用习惯windows系统的宝宝,应该能看出来Command就相当于Ctrl~)Command+delete——删除Command+shift+delete——...

2018-12-11 22:37:50 250

原创 MAC OS X idea快捷键调整

一、视图切换快捷键1、各视图区域的切换 cmd + 视图区域对应的数字3、装了switchTab插件后,按下ctrl+tab后会得到可切换的区域列表4、cmd+e 查最近文件列表5、shift + cmd + e 最近修改文件列表6.ctrl + down idea 所有视图展示ctrl + up mac 展示所有应用视图二、搜索快捷键...

2018-12-11 00:15:31 538

转载 业务和技术的本质思考

业务技术定义现在IT技术,基本都是需要和业务打交道,但是你真正理解业务、技术的本质吗?怎么利用各自的优势?业务,是指某种有目的的工作或工作项目技术,是指人类对机器、硬件或人造器皿的运用,也包含更广的架构,如系统、组织方法学和技巧——维基百科业务具有强目的性,是为特定问题而生的;而技术具有弱目的性、普遍性和通用性。技术和业务的关系技术和业务其实是一个相对的概念,业务隶属于问题域,技...

2018-11-23 15:59:40 1186

转载 quartz工作原理

角色1、scheduler是一个计划调度器容器(总部),容器里面可以盛放众多的JobDetail和trigger,当容器启动后,里面的每个JobDetail都会根据trigger按部就班自动去执行。2、JobDetail是一个可执行的工作,它本身可能是有状态的。3、Trigger代表一个调度参数的配置,什么时候去调。4、当JobDetail和Trigger在scheduler容器上注册后...

2018-11-17 15:56:46 1763

转载 zookeeper实现分布式锁

zookeeper介绍一种提供配置管理、分布式协同以及命名的中心化服务Zookeeper提供一个多层级的节点命名空间(节点称为znode),每个节点都用一个以斜杠(/)分隔的路径表示,而且每个节点都有父节点(根节点除外),非常类似于文件系统。例如,/foo/doo这个表示一个znode,它的父节点为/foo,父父节点为/,而/为根节点没有父节点。与文件系统不同的是,这些节点都可以设置关联...

2018-11-17 15:28:15 169

原创 Dubbo消费端调用服务端过程分析

调用链的整体流程图下面蓝色部分是消费端的调用过程,大致过程分为Proxy–>Filter–>Invoker–>Directory–>LoadBalance–>Filter–>Invoker–>Client集群容错的架构图在集群调用失败时,Dubbo 提供了多种容错方案,缺省为 failover 重试。源码分析dubbo-master cons

2018-11-14 21:58:47 1037

原创 Dubbo服务发布

服务的发布ServiceBean类图com.alibaba.dubbo.config.spring.ServiceBean#onApplicationEvent >com.alibaba.dubbo.config.ServiceConfig#export >com.alibaba.dubbo.config.ServiceConfig#doExport >com....

2018-11-14 20:15:10 228

转载 mysql中的锁

MyISAM表锁MySQL表级锁有两种模式:表共享锁(Table Read Lock)和表独占写锁(Table Write Lock)对MyISAM的读操作,不会阻塞其他用户对同一表请求,但会阻塞对同一表的写请求;对MyISAM的写操作,则会阻塞其他用户对同一表的读和写操作;MyISAM表的读操作和写操作之间,以及写操作之间是串行的。如何加表锁MyISAM在执行查询语句(SELEC...

2018-11-12 20:03:00 163

转载 InnoDB事务支持

InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁和表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。1.事务(Transaction)及其ACID属性原性性(Actomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。一致性(Consistent):在事务开始和完成时,数据都必须保...

2018-11-12 18:05:08 2107

原创 Netty4源码再次分析

先上个demo,好顺着往里跟代码public class Netty4Hello { /** * 服务端监听的端口地址 */ private static final int portNumber = 7878; public static void main(String[] args) throws InterruptedException {...

2018-11-08 22:45:53 501

转载 jvm垃圾回收

先来回顾下jvm的内存结构,来个整体的印象,实际是使用的分代的思路。垃圾回收算法引用计数法(Reference Counting Collector)堆中每个对象实例都有一个引用计数。当一个对象被创建时,且将该对象实例分配给一个变量,该变量计数设置为1。当任何其它变量被赋值为这个对象的引用时,计数加1(a = b,则b引用的对象实例的计数器+1),但当一个对象实例的某个引用超过了生命周期或...

2018-11-08 15:48:06 186

转载 java线程状态

线程状态1、新建(New)新创建了一个线程对象,还未调用start()方法。2、就绪(Ready)线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中 获取cpu 的使用权 。3、运行中(Running)可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。4、限期等...

2018-11-08 14:56:56 197

转载 classloader解决jar冲突隔离

业务背景随着业务的发展 和 架构的升级, 业务会越来越多的依赖公司内部提供的 中间件 ,如 rpc服务框架、分库分表框架、异步消息框架、公共工具包等等。每个中间件都有自己的 jar包依赖体系,最常用的如: logback、log4j、httpclient 、common-lang 、guava、zookeeper 等等 ,这些jar包依赖不仅会产生版本冲突,甚至会有jar包不兼容的情况出现,...

2018-11-07 19:41:31 3409 3

转载 java.util.concurrent之AQS

AQS的主要使用方式是继承,子类通过继承同步器并实现它的抽象方法来管理同步状态。AQS使用一个int类型的成员变量state来表示同步状态,当state>0时表示已经获取了锁,当state = 0时表示释放了锁。它提供了三个方法(getState()、setState(int newState)、compareAndSetState(int expect,int update))来对同步状...

2018-11-07 14:45:21 230

转载 rocketmq 消息broker存储和可靠性保证

消息存储消息中间件中消息堆积是很常见,这要求broker具有消息存储的能力,消息存储结构决定了消息的读写性能,对整体性能有很大影响,metaq是分布式的,多个borker可以为一个topic提供服务,一个topic下的消息分散存储在多个broker,它们是多对多关系。消息定义id消息的唯一id,系统自动产生,用户无法设置,在发送成功后由服务器返回,发送失败则为0。topic消息的主题...

2018-11-06 17:33:36 3640

原创 dubbo 请求发送与响应设计

dubbo invoke流程com.alibaba.dubbo.rpc.protocol.AbstractInvoker#invoke >com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker#doInvoke >区分isOneway/isAsync/同步调用 >同步调用 currentClient.request(inv,...

2018-11-06 16:13:23 791

转载 Netty Channel和ChannelFuture

Channel介绍首先强调一点:NIO的Channel与Netty的Channel不是一个东西!Netty重新设计了Channel接口,并且给予了很多不同的实现。Channel时Netty的网络抽象类,除了NIO中Channel所包含的网络I/O操作,主动建立/关闭连接,获取双方网络地址的功能外,还包含了Netty框架的功能,例如:获取Channel的EventLoop\Pipeline等。...

2018-11-06 15:20:47 2091

转载 Netty4线程模型

Reactor模型单线程模型Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上面完成,NIO线程的职责如下:1)作为NIO服务端,接收客户端的TCP连接;2)作为NIO客户端,向服务端发起TCP连接;3)读取通信对端的请求或者应答消息;4)向通信对端发送消息请求或者应答消息。Reactor单线程模型示意图如下所示:对于一些小容量应用场景,可以使用单线程模型。但...

2018-11-05 21:58:35 4117

转载 微服务架构

微服务架构微服务的特点1.单一职责。单个服务尽量专注一件事情,高内聚、低耦合;2.进程隔离;3.独立性。每个服务可以独立的开发、测试、构建、部署;4.小且灵活;优点1.交付周期。每个服务可以独立的开发、测试和交付,降低周期;2.快速沟通小团队开发,降低代码耦合度导致的沟通成本。业务按服务拆分,新人不需要了解整体架构,上手快;3.定制化。可以根据市场需求,灵活多变的组合出新...

2018-11-04 13:53:02 530

转载 分库分表

分库分表为什么分库分表在高并发和海量数据的场景下,通过使用分库分表的手段,能够解决单机或者单库单表的性能瓶颈和压力,突破IO、连接数、硬件资源的瓶颈。当然,投入硬件资源会更多,同时也会带来一些技术问题和挑战:如跨分片的复杂查询,跨分片事务等。一般来说,Mysql 单库超过5000万条记录,Oracle单库超过1亿条记录,DB压力就很大(当然处理能力和字段数量/访问模式/记录长度有进一步关系)...

2018-11-02 18:54:40 213

转载 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级

一、缓存雪崩原因由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。缓存正常从Redis中获取,示意图如下:缓存失效瞬间示意图如下:解决方法1)用加锁或者队列的方式保证来保证不会有...

2018-11-02 15:04:25 252

转载 一致性hash算法

一致性hash为Redis集群使用hash或者分库使用hash因此公式为hash(dataKey) % 4 = 2 ,可知直接定位到了第2号服务器使用普通Hash的问题如果4台缓存服务器已经不能满足我们的缓存需求,增加几台缓存服务器,带来的结果就是当服务器数量变动时,所有缓存的位置都要发生改变同样的,假设4台缓存中突然有一台缓存服务器出现了故障,无法进行缓存,那么我们则需要将故障机器...

2018-11-02 14:21:07 195

原创 交易环节消息中间件设计——去哪儿余昭辉

交易环节消息中间件问题考虑不能丢消息丢消息意味着掉单,意味着支付成功但是没给人家出票,这是不能接受的。稳定消息中间件一旦出问题,交易不能进行,也是严重的故障。性能典型的消息中间件包含 3 部分producer(发布者)、broker(消息中间件)、consumer(消费者),是一个比较简单的模型,下图展示了把消息发送给 consumer 的全过程。Producer 发布端设计...

2018-11-01 20:20:18 779

转载 分布式事务

分布式事务分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚)常规的解决办法就是引入一个“协调者”的组件来统一调度所有分布式节点的执行。XA规范应用程序( AP )事务管理器( TM )——交易中间件在一个 DTP 环境中,交易中间件是必需的,由它通知和协调相关数据库的提交或回滚。而一个数据库只将其自己所...

2018-11-01 19:14:17 171

转载 CAP理论&BASE理论

CAP理论 C:Consistency 一致性同一数据的多个副本是否实时相同。A:Availability 可用性可用性:一定时间内 & 系统返回一个明确的结果 则称为该系统可用。P:Partition tolerance 分区容错性将同一服务分布在多个系统中,从而保证某一个系统宕机,仍然有其他系统提供相同的服务。一个分布式系统无论在CAP三者之间如何权衡,都无法彻底放弃...

2018-11-01 14:29:53 513

转载 tortoisegit 常见错误disconnected no supported authentication methods available(server sent: publickey)

参考 http://www.cnblogs.com/hamsterPP/p/5184491.html

2018-04-23 17:34:02 853

原创 AQS阻塞队列

AQS阻塞队列管理AQS中有一个内部类ConditionObject实现了Condition接口。所谓条件队列,其实是一个单向链表;在讲解AQS的实现原理时只讲解了AQS队列,AQS队列前面讲过是双向链表结构。也就是说在AQS整体实现中维护了两个链表:一个是“同步队列”双向链表(这里简称AQS队列),另一个是“条件队列”单向链表。

2018-03-13 20:21:24 1029

原创 FutureTask实现原理

提交的Runnable任务在内部统一被转换为Callable任务。查看submit方法的返回值,为一个Future,实际上这个Futrue为FutureTask实例,通过此实例,调用get方法,可以阻塞当前线程,直到任务运行完毕,返回结果。

2018-03-12 20:47:17 683

原创 LockSupport park/unpark

LockSupport是JDK中比较底层的类,用来创建锁和其他同步工具类的基本线程阻塞原语。java锁和同步器框架的核心AQS:AbstractQueuedSynchronizer,就是通过调用LockSupport.park()和LockSupport.unpark()实现线程的阻塞和唤醒的。

2018-03-12 20:05:40 379

转载 徐州丰县结婚双喜鸿禧

解释转自:http://pxcjc.blog.163.com/blog/static/21916882008818111525201/在俺的老家一带,男婚女嫁不但要操办喜事,摆上酒席招待亲朋好友,还要事先在自家和五服以内的本家大门上贴上大红的喜字,以烘托喜庆的气氛。城里人办喜事,贴的喜字是“囍”,咱乡下人办喜事贴喜字,可比城里人有讲究。大闺女出门子,贴的是“鸿喜”;小伙子娶媳妇,贴的是“双喜”。为什

2017-10-01 11:11:09 5449

原创 SOA治理系统中mvn版本号管理经验总结

版本号在SOA系统治理中,多系统之间使用RPC调用框架(dubbo)通信,通常会用到mvn两方包,那么mvn版本号何时进行升级,如何升级?何时升级请求对象结构变更;请求对象新增;接口方法签名更改;接口方法新增;升级版本的好处: 1. 可以不影响当前主干版本的小问题修复分支发布; 2. 清楚的知道版本之间的差异,可以提前预估新版本的影响范围;如何升级首先考虑升级版本后对历史服务的兼容性

2017-07-29 23:02:09 477

原创 apt-get intall(deepIn/Ubuntu)

ubuntu/deepIn安装软件,知道软件包的名称$ sudo apt-get install subversion$ sudo apt-get install libapache2-svn查看软件包安装的相关的文件$ dpkg-query --help// 列出属于这个软件包的所有文件$ dpkg-query -L <软件包名称>

2017-07-23 11:59:49 517

原创 mvn命令

// mvn 单独deploy jar包

2017-07-21 17:43:50 447

原创 docker命令

docker列表 $docker ps 进入docker $docker exec -it [775c7c9ee1e1-dockerId] /bin/bashdocker信息 $docker info

2017-07-21 17:33:35 376

原创 Git常用命令

Git获取远程分支可以将远程分支信息获取到本地 下载远程仓库的所有变动 $ git fetch [remote]切换到指定分支,并更新工作区 $ git checkout [branch-name]远程分支映射到本地命名为local-branchname 的一分支 git checkout -b local-branchname origin/remote_branchname新建一个分支

2017-07-21 17:30:16 368

原创 黑域免root管理自启

黑域免root开启

2017-04-19 13:49:01 4799

原创 Java后台埋点统计

埋点监控

2017-03-23 15:47:28 13631 5

原创 Quartz中的concurrent属性

参考:http://kanpiaoxue.iteye.com/blog/2103210concurrent false 第一个job未完成,第二个job不会开始。concurrent true 第一个job未完成,第二个job仍然会开始。

2017-03-21 17:15:05 4107

原创 应用发布但任务还在继续,强行关闭存在问题

场景描述应用发布但任务还在继续,强行关闭存在问题。举个例子,例如出票应用,整个出机票的时间需要30s左右,在发布应用的时候,有不少的任务正在执行中,强行关闭则会导致出票任务状态错误。

2017-03-21 16:53:11 428

埋点监控api包

埋点监控api两方包,无具体实现。

2017-03-23

jquery.js+jquery.form.js 插件

jquery.js jquery.form.js 插件,组合测试通过!可能版本有点老!我也不是很晓得

2013-04-20

struts2 Ajax json Jquery demo

使用JQuery传递数据到struts action ,并返回JSON对象数据,在JQuery回调函数解析数据的,Ajax异步处理的小测试

2013-04-20

struts2 中文文件名文件下载

解决中文文件名问题,使用解决方法,文件名编码:ISO8859-1

2013-04-08

动态规划的一个最经典最典型的教程

动态规划的一个最经典最典型的教程,简短,易懂。。。。

2011-09-15

空空如也

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

TA关注的人

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