自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 redis实现延时队列

Redis如何实现延时队列:使用sortedset,拿时间戳作为score,消息内容作为key调用zadd来生产消息,消费者用zrangebyscore指令获取N秒之前的数据轮询进行处理。...

2023-09-13 22:17:44 56 1

原创 spring的context:component-scan必须配置扫描子包问题

未使用spring-boot,系统里有类实现InitializingBean,但需依赖注入一对象,为util:properties,使用的@Autowired,这个类作为bean配置在spring配置文件中。刚开始只配置了context:component-scan扫描父包,发现不能拿到依赖注入的util:properties,即依赖的properties对象为空。后来新增一个context:component-scan,将子包也配置到里面,就正常了。详细原因还在分析中,有点颠覆之前的认识了。原工程里也

2022-04-21 22:48:21 797

原创 记一次springboot工程占位符不能替换的问题

springboot工程占位符不能替换的问题

2022-03-08 18:53:07 1728

原创 阿里开源项目

阿里开源项目Java1.分布式应用服务开发的一站式解决方案 Spring Cloud AlibabaSpring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应

2021-03-01 18:37:10 1082

原创 java HashMap&ConcurrentHashMap

HashMap是我们非常常用的数据结构,由数组和链表组合构成的数据结构。大概如下,数组里面每个地方都存了Key-Value这样的实例,在Java7叫Entry在Java8中叫Node。HashMap的默认初始化长度16,在使用是2的幂的数字的时候,Length-1的值是所有二进制位全为1,这种情况下,index的结果等同于HashCode后几位的值。只要输入的HashCode本身分布均...

2020-03-27 12:24:23 180

原创 设计与开发应用服务器--相关技术

服务器的设计与开发涉及到诸多技术和问题,归纳一下大致可以分为以下几种: 服务器启动和接收数据过程 多线程策略 NIO 长连接 同步与异步 配置化支持 责任链模式 集群与负载均衡 数据包设计 服务端连接协议 客户端连接技术服务器启动和数据请求过程各种服务器所提供的功能和实现机制都不尽相同,但在启动和数据...

2020-03-27 08:52:08 191

原创 java future模式

Future介绍用过Java并发包的朋友或许对Future (interface) 已经比较熟悉了,其实Future 本身是一种被广泛运用的并发设计模式,可在很大程度上简化需要数据流同步的并发应用开发。Future模式可以简单的看成是 Proxy 模式 与 Thread-Per-Message 模式 的结合,在Proxy模式中,用一个Proxy来代替真正的目标(Subject)生成,目...

2020-03-27 08:45:03 108

原创 java难度大算法

题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。static int[] bits = new int[] { 1, 2, 3, 4, 5 };/*** @param args*/public static void main(String[] ar...

2020-03-27 08:36:45 541

原创 Top K

1. 问题描述在大规模数据处理中,常遇到的一类问题是,在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题通常称为“top K”问题,如:在搜索引擎中,统计搜索最热门的10个查询词;在歌曲库中统计下载率最高的前10首歌等等。2. 当前解决方案针对top k类问题,通常比较好的方案是【分治+trie树/hash+小顶堆】,即先将数据集按照hash方法分解成...

2020-03-26 21:24:35 184

原创 java 字符串split

使用StringTokenizer比使用Spring.split()提高接近一倍的性能。要是用indexOf来逐步查找,性能还能进一步提高25%左右。很显然,越接近底层的方法性能越得到满足。不过,这个只是在于对性能要求高的需求底下才有真正的意义。普通应用,String.split()足以补充一点:使用String.indexOf()去扫描的时候,如果使用ArrayList或者...

2020-03-26 21:21:24 120

原创 java队列

在JDK 5之前LinkedList就已经存在,而且本身实现都是一种双向队列。所以到了JDK 5以后就将LinkedList同时实现Deque接口,这样LinkedList就又属于Queue的一部分了。通常情况下Queue都是靠链表结构实现的,但是链表意味着有一些而外的引用开销,如果是双向链表开销就更大了。所以为了节省内存,一种方式就是使用固定大小的数组来实现队列。在这种情况下队列的大小是固定...

2020-03-26 21:21:02 85

原创 spring中的线程池

多线程并发处理起来通常比较麻烦,如果你使用spring容器来管理业务bean,事情就好办了多了。spring封装了java的多线程的实现,你只需要关注于并发事物的流程以及一些并发负载量等特性,具体来说如何使用spring来处理并发事务:1.了解 TaskExecutor接口Spring的TaskExecutor接口等同于java.util.concurrent.Executor接口。...

2020-03-26 21:17:15 660

原创 zookeeper应用场景

Zookeeper的主流应用场景实现思路(除去官方示例)(1)配置管理集中式的配置管理在应用集群中是非常常见的,一般商业公司内部都会实现一套集中的配置管理中心,应对不同的应用集群对于共享各自配置的需求,并且在配置变更时能够通知到集群中的每一个机器。Zookeeper很容易实现这种集中式的配置管理,比如将APP1的所有配置配置到/APP1 znode下,APP1所有机器一启动就对/APP...

2020-03-26 21:15:48 495

原创 HBase存储结构

一、 Hbase存储框架图1 Hbase存储架构图1、 结构HBase中的每张表都通过行键按照一定的范围被分割成多个子表(HRegion),默认一个HRegion超过256M就要被分割成两个,由HRegionServer管理,管理哪些HRegion由HMaster分配。HRegionServer存取一个子表时,会创建一个HRegion对象,然后对表的每个列...

2020-03-26 21:10:53 2355

原创 负载均衡策略

负载均衡分全局负载均衡和本地负载均衡。地负载均衡是指对本地的服务器群做负载均衡,全局负载均衡是指对分别放置在不同的地理位置、有不同网络结构的服务器群间作负载均衡。循环DNS就是每次解析域名时指向IP loop list 里的下一个IP.负载均衡路由器通过某种策略把请求发送到响应最快的server上, 同时可以满足故障转移/故障恢复. 但是负载均衡路由器本身需要维护,...

2020-03-26 21:05:01 1087

原创 一致性hash算法

consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 ...

2020-03-26 21:04:13 81

原创 java程序里运行外部程序

使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序。 1. exec(String command) 2. exec(String command, String envp[], File dir) 3. exec(String cmd, String envp[]) 4. exec(String cmdarray[]) 5. exe...

2020-03-26 21:03:17 241

转载 httpclient使用参数设置

参数设置1、httpclient 4.2.3HttpParams params = new BasicHttpParams();//设置连接超时时间Integer CONNECTION_TIMEOUT = 2 * 1000; //设置请求超时2秒钟 根据业务调整Integer SO_TIMEOUT = 2 * 1000; //设置等待数据超时时间2秒钟 根据业务调整

2015-01-20 15:06:49 9605

转载 用“逐步排除”的方法定位Java服务线上“系统性”故障

一、摘要由于硬件问题、系统资源紧缺或者程序本身的BUG,Java服务在线上不可避免地会出现一些“系统性”故障,比如:服务性能明显下降、部分(或所有)接口超时或卡死等。其中部分故障隐藏颇深,对运维和开发造成长期困扰。笔者根据自己的学习和实践,总结出一套行之有效的“逐步排除”的方法,来快速定位Java服务线上“系统性”故障。二、导言Java语言是广泛使用的语言,它具

2015-01-20 14:37:17 850

转载 Linux性能监控之IO篇

接下来我们分析一些具体的情况,在这些情况下I/O会成为系统的瓶颈。我们会用到工具top,vmstat,iostat,sar等。每一个工具的输出都从不同的方面反映除系统的性能情况。情况1:同一时间进行大量的I/O操作   在这种情况时我们会发现CPU的wa时间百分比会上升,证明系统的idle时间大部分都是在等待I/O操作。# vmstat 1procs -----memory--

2013-12-06 18:22:56 632

转载 实际项目中的常见算法

Linux内核中的基本数据结构和算法链表、双向链表和无锁链表B+ 树,代码中的注释将会告诉你一些教科书中不能学到的内容:这是一个简单的B+树实现,我写它的目的是作为练习,并以此了解B+树的工作原理。结果该实现发挥了它的实用价值。...一个不经常在教科书中提及的技巧:最小值应该放在右侧,而不是左侧。一个节点内所有被使用的槽位应该在左侧,没有使用的节点应

2013-12-02 16:57:50 629

转载 hadoop读写文件

读文件   读文件时内部工作机制参看下图:  客户端通过调用FileSystem对象(对应于HDFS文件系统,调用DistributedFileSystem对象)的open()方法来打开文件(也即图中的第一步),DistributedFileSystem通过RPC(Remote Procedure Call)调用询问NameNode来得到此文件最开始几个block的文件位置

2013-11-25 18:27:15 658

转载 HBase HBaseServer实现

1. HBaseServer创建后有几个重要的角色.   1.1 Listener deamon线程,负责接收HMaster,HRegionServer,HBase Client的http请求.   1.2 Responder demon线程,负责将处理完的请求,发送回调用者.   1.3 Connection listener接收到的每个Socket请求都会创建一个Connectio

2013-11-25 17:24:10 527

转载 HBase 客户端读取实现

HBase 以客户端角色来调用服务器端的RPC实现 HBase 以客户端角色来调用服务器端的RPC实现 1. HBase的客户端RPC实际上是在Hadoop客户端RPC做的修改,具体的类为:    HBase org.apache.hadoop.hbase.ipc.HBaseRPC    Hadoop org.apache.hadoop.ipc.RPC    2. 大致流程

2013-11-25 17:04:15 1092

转载 spring mvc工作原理

Spring MVC工作流程图图一图二 Spring工作流程描述      1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;      2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据

2013-11-21 13:12:58 1775

转载 HBase监控

对于稳定维护hbase,全面掌握分布式系统中的每一台主机状况,以及检测系统可能或正在出现的瓶颈,强大的监控是必须的。 比如:   region数、block住的内存大小、请求数、命中率、flush/split/compact次数和时间、读写响应时间分布、storefile数目、jvm状况、 本文介绍将hbase监控加入ganglia中 hbase本身集成了jmx进行

2013-11-13 12:22:29 1226

转载 HBase深入分析之RegionServer

所有的用户数据以及元数据的请求,在经过Region的定位,最终会落在RegionServer上,并由RegionServer实现数据的读写操作。本小节将重点介绍RegionServer的代码结构和功能,从实现细节上深入理解RegionServer对于数据的操作流程。1 RegionServer概述RegionServer是HBase集群运行在每个工作节点上的服务。它是整个HBase

2013-11-12 18:15:55 1316

转载 ZooKeeper实现分布式队列Queue

ZooKeeper是一个分步式的协作系统,何为协作,ZooKeeper价值又有何体现。通过这篇文章的分布式队列的案例,你将了解到ZooKeeper的强大。关于ZooKeeper的基本使用,请参考:ZooKeeper伪分步式集群安装及使用目录分布式队列设计思路程序实现1. 分布式队列队列有很多种产品,大都是消息系统所实现的,像ActiveMQ,JBossMQ,

2013-11-12 17:59:01 776

转载 提升HBase写性能

调整参数入门级的调优可以从调整参数开始。投入小,回报快。1. Write Buffer Size快速配置Java代码  HTable htable = new HTable(config, tablename);   htable.setWriteBufferSize(6 * 1024 * 1024);   htable.setAutoFlush(false);

2013-11-12 17:57:56 548

软件文档模板

软件文档模板国家标准

2008-05-28

Building Service Oriented Architectures (SOA) with the J2EE Platform

Building Service Oriented Architectures (SOA) with the J2EE Platform

2008-03-06

osgi in action

osgi 好的参考文档

2008-03-06

空空如也

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

TA关注的人

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