自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习空间

学习空间

  • 博客(66)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 流控比较

算法原理时间复杂度空间复杂度问题适用场景固定窗口固定时间窗口计数O(1)O(1)临界突变容易实现,适用于一些简单的流控场景,流量比较均匀,或者允许临界突变滑动窗口窗口拆分,子窗口独立统计,按窗口时间滑动,统一限流。O(1)O(M) - M为子窗口数精度&平滑度适用大多数场景,可以通过调节采样子窗口数来平衡开销漏桶算法基于(出口)流速来做流控O(1)O(1)突发流量被整形 要求输出速率恒定的场景,能够平滑流量令牌桶算法基于(...

2021-03-22 11:56:33 249

原创 公司进化论

公司进化论前言创新对于企业、个人的重要性不言而喻,但是在实际创新相关的工作中,如何引导相关同学进行正向创新却缺少相关的理论知识和方法论。本文是读《公司进化论》一书的读后感,希望通过本文能够给从事创新相关工作的同学带来一点灵感,也给希望创新但是暂无头绪的同学一些思路。##基本模型需要消除的误解:创新本身就是有价值的 获得经济优势;差异化、同化、提高效率虽则品类的成熟,创新变得不再必需,创新的可能性也减小 不同阶段对应不同创新模型创新的本质在任何公司都是相同的 2B和2C创新

2020-09-02 11:04:35 1141

翻译 Scrum Or Kanban: 选择属于自己的敏捷管理框架

背景最近项目组内部正在推进敏捷开发落地,作为一个非互联网行业转行过来的开发人员,个人对敏捷开发了解不多,希望通过本文加深对敏捷开发的了解,并积极推送项目组内敏捷开发的落地。本文翻译自KANBAN VS SCRUM: CHOOSING THE BEST AGILE PROJECT MANAGEMENT FRAMEWORK。正文“我们使用敏捷开发”,在于软件开发团队交流时,我们听到越拉越多这样...

2019-10-24 18:03:13 844

原创 Genymotion 定位不起作用

Genymotion 定位不起作用问题现象无法通过Genymotion提供的GPS进行定位,如下图的修改不起作用。解决方式打开Genymotion的模拟器打开Genymotion Shell,shell会自动连接已打开的模拟器在窗口输入:gps getlatitudegps getlongitude你会发现输出都是0。这时重新使用Genymotion提供的窗口设置经纬...

2018-11-23 11:40:20 2000 1

原创 反应式编程简介

反应式编程简介What反应式编程是一种编程思想、编程方式,是为了简化并发编程而出现的。与传统的处理方式相比,它能够基于数据流中的事件进行反应处理。例如:a+b=c的场景,在传统编程方式下如果a、b发生变化,那么我们需要重新计算a+b来得到c的新值。而反应式编程中,我们不需要重新计算,a、b的变化事件会触发c的值自动更新。这种方式类似于我们在消息中间件中常见的发布/订阅模式。由流发布事件...

2018-06-28 13:08:30 6614

翻译 分布式系统概述

分布式系统概述总结自:A Thorough Introduction to Distributed Systems分布式系统概述概述什么是分布式系统为什么需要分布式系统?扩展数据库继续扩展陷阱去中心化与分布式分布式系统类型分布式数据存储CAP定理Cassandra共识分布式计算MapReduce更好的技术分布式文件系统HDFSIPFSA...

2018-06-17 19:08:00 2163 1

原创 Maven发布源码包

Maven发布源码包第一步按照官网的Usage,在pom文件中添加如下内容:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId>

2018-06-15 11:44:34 1374

原创 Spring注入List/Map

Spring注入List/MapXML方式之前一直使用xml的方式进行Spring配置,对于内部元素为String的List和Map属性的注入一般为如下方式:<bean id = "testBean" class = "com.a.b.c.TestBean"> <property name = "fieldMap"> <ma...

2018-06-12 16:24:20 3818

原创 Git中的变基(Rebase)

Git中的变基(Rebase)背景介绍VCS(版本管理系统)是我们开发中每天都会打交道的基础开发系统,当前使用最为广泛的非SVN和GIT两者莫属,两者分别代表了CVCS(集中式版本管理系统)和DVCS(分布式版本管理系统)。两者具体的区别网上有大量的文档,可以自行google和bing。作者之前一直使用的是SVN,既CVCS的一种,这种系统的操作较为简单明了(也可能是之前习惯了)。...

2018-05-30 20:36:57 21115 1

原创 重构概述

重构概述新入职公司的第一个任务是重构现有的项目,正好之前阅读了《重构 改善既有代码的设计》一书,特此结合工作经历记录相关内容。什么是重构?先来说说我个人的理解,重构就是在保证代码现有功能的前提下让代码的风格、组织结构更加符合我个人的阅读、编写习惯。当然,权威的定义是(《重构 改善既有代码的设计》中的定义):名词:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前...

2018-05-25 22:46:43 368

原创 Spring中的注解 -- 概述

Spring中的注解 – 概述概述随着Spring版本的更新以及子项目的发展,使用注解方式配置已经是现在Spring应用中首选,版本结合之前Spring 扩展及初始化过程分析一问中的介绍对Spring中注解的实现原理进行简要的描述。注解的工作原理及问题抛开Spring注解不谈,Java注解一般的应用方式如下:自定义注解,并将注解编写到目标类、属性或方法上在运行时通过...

2018-05-04 10:08:35 259

原创 JDK1.8 特性实践

JDK1.8 特性实践个人喜欢看源码学习,但是随着JDK1.8趋于稳定,越来越多的架构迁移到JDK1.8上,所以对于之前不是很关注的1.8语言特性给源码阅读带来了很大的困扰,所以这里对新特性(其实已经很老了)通过代码进行实践。每一种新特性都是为了解决问题而添加的,所以从问题出发进行实践学习。此部分只着重描述语言层次的新特性或其他特性的概述。更全的特性介绍请参见:中文:https://...

2018-04-27 17:57:20 424

原创 Dubbo速查 -- URL参数

URL参数记录,URL中参数的查询优先级为: methodName.name->name->default.name name desc mock 配置此method在客户端调用时是直接调用,还是强制使用mock,还是调用失败后使用mock retries 调用Provider失败后的重试其他Provider的次数 forks 并...

2018-04-25 11:45:54 2433

原创 Dubbo概述--其他

Dubbo概述–其他Dubbo概述–其他写在前面其他监听机制过滤机制集群相关请求分发URL参数默认扩展类写在前面本文参考了Dubbo官方手册结合Dubbo2.6.1版本源码分析。推荐先阅读官方手册。鉴于个人水平有限,如有不正确的地方请指出,欢迎一起讨论,谢谢!其他监听机制监听机制包含两层,一层是Provider、Consumer...

2018-04-25 11:38:53 318

原创 Dubbo概述--调用过程

Dubbo概述–调用过程Dubbo概述–调用过程写在前面调用过程Consumer请求Provider响应Consumer接收响应总结写在前面本文参考了Dubbo官方手册结合Dubbo2.6.1版本源码分析。推荐先阅读官方手册。鉴于个人水平有限,如有不正确的地方请指出,欢迎一起讨论,谢谢!调用过程本过程的分析是基于最简单的Demo进行分析的,...

2018-04-25 11:37:12 1223

原创 Dubbo概述--启动过程

Dubbo–启动过程Dubbo–启动过程写在前面启动过程Provier启动过程(暴露服务)Consumer启动过程(引用服务)写在前面本文参考了Dubbo官方手册结合Dubbo2.6.1版本源码分析。推荐先阅读官方手册。鉴于个人水平有限,如有不正确的地方请指出,欢迎一起讨论,谢谢!启动过程启动过程主要从Provider和Consumer进行分...

2018-04-25 11:33:09 656

原创 两人猜牌问题分析

两人猜牌问题分析两人猜牌问题分析问题思路总结无意间看到一个逻辑分析题,经过长达N个小时的分析,现将分析过程记录。问题S 先生、P先生、Q先生他们知道桌子的抽屉里有16张扑克牌:红桃A、Q、4 黑桃J、8、4、2、7、3 草花K、Q、5、4、6 方块A、5。约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉 P先生,把这张牌的花色告诉Q先生。这时,约翰教...

2018-04-23 16:46:51 3197 1

原创 Spring 扩展及初始化过程分析

Spring 相关以下分析基于Spring-4.3.10版本Spring 相关命名空间扩展Context初始化总结Bean初始化创建bean逻辑总结其他命名空间扩展Spring中命名空间的扩展(Schema扩展)使用了JAVA SPI机制,具体实现方式为:在自己jar包的META-INF目录下添加spring.handlers文件文...

2018-04-20 11:28:55 478

原创 Dubbo概述--服务扩展及初始化

Dubbo–服务扩展及初始化Dubbo–服务扩展及初始化写在前面服务扩展初始化过程一级标签说明写在前面本文参考了Dubbo官方手册结合Dubbo2.6.1版本源码分析。推荐先阅读官方手册。鉴于个人水平有限,如有不正确的地方请指出,欢迎一起讨论,谢谢!服务扩展Dubbo使用类似于SPI的方式进行服务扩展管理,从大量服务提供接口中选择实际提供服务的...

2018-04-20 11:25:46 1224

原创 RocketMQ 简介 -- Broker

RocketMQ BrokerRocketMQ Broker概述处理Producer消息处理Consumer消息内部服务概述Broker即是物理上的概念,也是逻辑上的概念。多个物理Broker通过IP:PORT区分,多个逻辑Broker通过BrokerName区分。多个逻辑Broker组成Cluster。Broker与Topic是多对多的关系。Brok...

2018-04-12 18:10:44 12168

原创 RocketMQ 简介 -- Producer And Consumer

RocketMQ Producer And ConsumerRocketMQ Producer And ConsumerProducerTransactionProducerConsumerCommonProducerProducer实例都有的Producer Group Name,此Name在事务消息时起作用。Producer发送消息时,会尝试从Na...

2018-04-12 17:04:52 1371

原创 RocketMQ 简介 -- NameServer And Message

RocketMQ NameServer And MessageRocketMQ NameServer And MessageNameServer请求处理Message消息属性概念ClusterBrokerTopicNameServer管理以Key-Value的形式保存各个NameSpace下的配置(userHome/namesrv/kvC...

2018-04-12 17:02:17 752

原创 Tomcat连接

Tomcat连接Tomcat连接概述处理时序图时序图说明ConnectorHttp11NioProtocolAcceptorNioEndpointPollerPollerEventSocketProcessorHttp11ConnectionHandlerHttp11NioProcessorInternalNioInputBufferCoyoteAdapter...

2018-04-02 11:37:02 1866

原创 Tomcat结构简介

Tomcat结构简介Tomcat结构简介结构简图概述说明CatalinaLifecycleServerServiceContainerEngineHostContextWrapperPipelineValveConnector/ProtocolHandler/AbstractEndPoint结构简图概述Tomcat中组件大...

2018-03-12 20:56:02 1252

原创 JMX中的描述说明

JMX中的描述说明在开发工作中,会时常遇到通过JMX对应用进行监控、管理,此时JMX MBean自身的描述信息就很重要了 (否则Swagger UI也不会那么火。。。)。但是,在实际应用中,我们会发现自己写的MBean是没有意义的,都是默认的值,说的不错但是是废话,而别人家的MBean是这样的(以Tomcat为例),是有意义的,能知道这个是干啥的。感谢Tomcat是开源的,赶紧看看人家怎么实现的吧。

2018-03-08 09:14:46 414

原创 SPI机制介绍

SPI机制介绍SPI机制介绍概述实现说明实现举例概述SPI即Service Provider Interface(服务提供者接口),与我们常用的API(Application Programming Inteface)概念不同:SPI是面向服务提供者的,用于描述服务提供者如何扩展才能在符合服务要求的情况下提供具体的服务实现。一般用于基于某个标准接口/服务...

2018-03-06 15:06:45 526

原创 软件需求设计简明模板

需求分析设计模板原始需求 填写项 填写内容 需求编号 来自需求统一管理系统中的需求ID 需求名称 需求描述 原始的需求描述 接纳意见 问题单号 缺陷跟踪系统中的相关问题单号需求分析影响模块受影响或涉及的模块是否涉及数据库脚本注意可能涉及到的不同数据库系统是否有操作系统差异lin...

2018-03-01 17:36:18 2030

原创 Spring 扫描不到注解

Spring 扫描不到注解问题现象项目中使用了如下配置,进行扫描。<ctx:component-scan base-package="com.li.test.rs"/>但是开发环境中无论如何无法正常扫描到注解类,而生产环境没有此问题。问题原因原因很简单,开发环境中项目所在路径中存在空格,所以造成此问题。原因定位及剖析首先打开Spring的debug级别日志,发现日志中有如下输出:[org.spri

2017-12-28 15:59:10 3105

原创 ClassLoade学习记录

基本介绍类加载器,功能是负责读取Java字节码代码(.class文件),并转换成java.lang.Class类的一个实例(每个实例代表一个Java类)并加载到JVM中。其中Java字节码的来源不只是编译的.class文件也有通过动态代理生成的动态类、从网络下载等其他来源。 基本上所有的类加载器都是java.lang.ClassLoader类的子类。类加载器除上述功能外还负责加载Jav

2015-02-08 19:06:58 746

转载 Struts1整合Spring

使用 Spring 的 ActionSupport 类整合 Structs1.X, 使用 Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor,将 Struts Action 管理委托给 Spring 框架装载应用环境:      无论您使用哪种技术,都需要使用 Spring 的 ContextLoader

2014-05-21 11:49:48 1047

原创 JVM----内存区域及溢出异常

JVM内存区域  程序计数器:一个较小的内存空间,可以看做是当前执行代码的行号指示器,分支、循环、跳转、异常处理、线程方面都要依赖这个计数器完成。这个程序计数器是线程隔离的,即每个线程有唯一的程序计数器。Native方法是不会在程序计数器内计数的,只会为Null。这个区域的异常不会导致OutOfMemoryError。 JVM栈:主要用于描述java方法执行的内

2014-04-08 11:28:21 1361

原创 Eclipse中Errors occurred during the build.问题解决方式

错误现象在Eclipse中保存java文件的时候,系统会出现这个错误,错误信息主要是:Errors occurredduring the build.Errors runningbuilder 'Maven Project Builder' on project 'MyJavaTest'.java.lang.NullPointerException

2014-04-04 11:03:08 20431 5

原创 dwr推送spring实现

概述最近项目需要一个主动推送的功能,果断百度、google发现网上主要有两种实现方式:一种是使用HTML5的webSockect,这个需要Tomcat7以上才支持,而且需要客户端的IE浏览器都支持HTML5。所以被我们果断的放弃的了。另一种是使用dwr实现,dwr是一个JS与服务端Java类交互的Ajax框架。可以做到后台调用Java类方法的同时前台JS方法执行,前台JS方法执行的同时

2014-03-21 10:48:48 1617 1

转载 quartz使用说明

转载自http://lwhvanness.iteye.com/blog/5468701,首先定义创建定时任务类MainTask.java Java代码  package com.lwh.action;  public class MainTask {      public void execute(){          System.out.prin

2014-03-18 17:59:18 913

原创 java多线程(一)----线程基本介绍

简介虽然相对其他语言来说,Java将线程抽象化为Thread类来控制,做到了一定程度的简化。但是由于多线程自身受到JDK版本、硬件、操作系统等影响带来的不确定性,尤其是当多线程访问临界资源时,我们必须在多线程编程时保持一个谨慎的心态。下面对多线程知识做一个简单的总结,由于个人水平有限有不到之处请指正。什么时候应该使用多线程多线程,听起来很高端的样子,仿佛使用了多线程我们就是大牛了。但是

2014-03-13 15:00:43 1199

原创 eclipse下利用mavan自动部署

maven除了作为jar包的管理工具之外还有很强大的编译、部署等功能,下面介绍下如何在eclipse中利用maven来自动部署J2EE项目到Tomcat,避免不断的手动重启Tomcat,部署,使用maven一下就可以搞定。首先,在tomcat安装目录(可以是本机也可以是远程服务器,这里以Tomcat6为例)的conf/tomcat-users.xml文件中设置Tomcat管理用户,我的用户一般

2014-03-12 17:38:03 2573

原创 《MongoDB权威指南》学习整理----Java操作MongoDB实例

简介虽然上面我们介绍了很多MongoDB的知识,但是对于J2EE程序猿来说,我们最多的还是通过MongoDB的Driver来实现对MongoDB实例的操作,虽然我们在实际会遇到各种各种的MongoDB操作,但是都是较为复杂的CRUD,所以我在这里知识简单的介绍下MongDB在Java中的使用,驱动的下载地址推荐使用maven连接OSChina的服务器下载,起码我是这样的,这里我并没有介绍太复杂

2014-03-10 17:16:11 1680

原创 《MongoDB权威指南》学习整理----MongoDB分片

简介MongoDB的分片和复制都是MongoDB为了提供大数据高负载为我们提供的提高性能的方式。两者都是使用类似集群(多个节点)的方式部署。不同之处在于,副本集中所有节点的存储的数据时一致的。而分片中的每个节点存储的数据一般都是不同的,类似于关系数据库中的水平切分,或DB2中的分区表。而且和复制一样,MongoDB可以自动化的处理分片、负载均衡,当然也可以人为的手动分片。分片说明上文提

2014-03-10 17:08:32 1156

原创 《MongoDB权威指南》学习整理----MongoDB复制

简介在生产环境中,为了保证数据的安全性,我们通常要使用冗余保存。MongoDB中我们提供了这个功能,也就是MongoDB的复制。主从复制主从是复制是MongoDB中最常见的复制方式,可以用于备份、故障恢复、读扩展等方面。这种方式一般设置有1个主节点1到多个从节点,每个从节点都要知道主节点的位置并且从节点从主节点复制数据。一般情况下,从节点不要超过12个,同时。主节点与从节点不同的地

2014-03-10 17:07:18 1094

原创 《MongoDB权威指南》学习整理----MongoDB安全和备份

安全简介在前面的文档中,我们都没有提到过MongoDB为我们提供的安全管理方面功能,数据的安全管理是我们需要关注的重要部分。下面我们介绍一下MongoDB的安全管理功能MongoDB支持的对单个连接的认证,当然,比较简陋。安全基础知识MongoDB中的安全机制实际上是通过对每个访问数据库丽连接验证数据库中保存的用户信息来实现的。实现安全控制的步骤为:在需要控制的数据

2014-03-10 17:05:16 999

扫描指定目录下所有jar包的目录

用于扫描指定目录下所有jar包内的注解类,方便归类总结。

2018-05-03

修改后的JSONWriter类

修改后的JSONWriter类,相信请见

2013-11-02

手机归属地数据库文件

文件中是从网上搜集到的手机号码归属地数据,一部分是txt的,一部分是Access数据库文件

2013-09-23

PHP和MySQL开发第4版(高清).part4

PHP和MySQL开发第4版(高清).part4,第四部分

2013-06-30

PHP和MySQL开发第4版(高清).part3

PHP和MySQL开发第4版(高清),第三部分

2013-06-30

PHP和MySQL开发第4版(高清)part2

PHP和MySQL开发,第4版(高清),亲测高清

2013-06-30

PHP和MySQL开发第四版(高清)part1

上传有大小限制,分成了4个部分,亲测是高清版

2013-06-30

爬网页软件

用起来很简单很方便,下载网页非常有用。尤其是喜欢看小说的朋友们

2011-10-08

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

TA关注的人

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