自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (25)
  • 收藏
  • 关注

原创 肖邦技术栈

2020-12-11 15:09:47 28007

原创 一、搜索引擎篇-揭开es神秘的面纱

一、为什么需要搜索引擎?数据库适合结构化数据的精确查询,而不适合半结构化、 非结构化数据的模糊查询及灵活搜索(特别是数据量大时),无法提供想要的实时性。结构化数据:用表、字段表示的数据半结构化数据: xml、html非结构化数据: 文本、 文档、 图片、 音频、 视频等二、搜索引擎如何做到?1、为什么称为倒排索引?原名Inverted index, 失败地翻译成了倒排索...

2020-05-05 10:15:10 40261 1

原创 唯品会osp

2020-12-07 10:44:48 342

原创 服务宕机及优化

一、现象: 16点30分左右,某服务飘红,重启之后,内存很快又爆掉,扩充实例到8台之后仍然不行,请运维临时调大最大堆和最小堆到3g,暂时抗住。二、原因分析: 历史遗留问题,1年前某开发写代码时将,所有数据拼成一条sql去存储,随着数据量变大14w数据用一条sql怼到数据库导致服务宕机。 三、Kibana日志:四、线上服务器配置:-xms2g -xmx2g 年轻代1G 老年代1G...

2020-10-15 11:10:41 338

原创 三、搜索引擎篇-lucene入门代码示例

一、lucene是什么?最受欢迎的java开源全文搜索引擎开发工具包。 提供了完整的查询引擎和索引引擎, 部分文本分词引擎。 Lucene的目的是为软件开发人员提供一个简单易用的工具包, 以方便在目标系统中实现全文检索功能, 或者是以此为基础建立起完整的全文检索引擎。二、lucene代码示例:package com.javaxiaobang.es.lucene;import co...

2020-05-04 21:12:26 9482

原创 二、搜索引擎篇-搭建es环境

一、添加es用户:[root@javaxiaobang ~]# useradd es[root@javaxiaobang ~]# passwd es二、修改centos配置:1、[root@javaxiaobang ~]# vim /etc/sysctl.conf#在文件最后面添加内容:vm.max_map_count=262144[root@javaxiaobang ~...

2020-05-04 17:17:57 18311

原创 kafka安装(一)

一、下载地址:链接:https://pan.baidu.com/s/18vp_qCGZgZNjtaewOCc3Uw 密码:54jh二、启动zookeeper:[root@javaxiaobang kafka]# bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log &[1]...

2020-03-20 22:55:48 9175 1

原创 jvm命令行工具(四)

一、jps (Java Virtual Machine Process Status Tool)查看java进程[root@javaxiaobang ~]# jps -l #输出jar包全名20656 sun.tools.jps.Jps3952 clientapp-0.0.1.jar4196 hystrixapp-0.0.1.jar3604 eurekaserver-0.0.1.j...

2020-03-11 18:38:01 28301

原创 Netty复习-走进Netty(一)

一、Netty是什么?本质:网络应用程序框架实现:异步、事件驱动特性:高性能、可维护、快速开发用途:开发服务器和客户端二、Netty优势?支持常用应用层协议解决粘包、半包的传输问题完善的异常处理机制三、JDK NIO的缺点?epoll 空轮询bug :异常唤醒空转导致 CPU 100%API不友好,功能薄弱粘包、半包需要自己去处理需要自己去解决遇...

2020-02-27 17:20:52 9134

原创 counter计数器

一、为什么要做计数器:在唯品会的工作的时候,为了更好的推动系统向智慧供应链发展,理性分析供应商和商助对产品的使用频率,于是,开发了一款轻量级计数器,供各团队使用。二、难点:1、数据量大2、各团队需要保证极端情况下,计数器服务不可用时,不影响各团队业务正常运行3、需要使用简单4、个别需要统一业务日志5、不能有额外的定时器一直轮询三、优势:1、简单 @LogCo...

2019-12-02 18:16:46 19637

原创 百万用户消息处理

场景: 每条消息内容假设占内存1KB(约512个汉字),100W用户的消息同时放入内存约占976.56MB。-----大消息每条消息内容假设占内存0.12KB(约58个汉字),100W用户的消息同时放入内存约占107.56MB。-----本次需求消息(温馨提示:上课提醒有助于养成良好学习习惯哦~\r\n同时为了避免干扰\r\n上课消息提醒只会在每周一、三、五推送哦~) 服务器相关...

2019-11-22 11:12:36 28366

原创 阿里云redis5.0.6集群搭建

一、引言:去年买的阿里云上周到期了,昨晚看到双11新用户有优惠活动,赶紧偷摸的用媳妇手机,花800块买了3年阿里云(2核4G),好了,搭建新环境吧!注:需要打开阿里云的安全组端口(https://oneinstack.com/docs/securitygroup/)二、redis集群搭建:1.​​​​CentOs命令如下:​wget http://download.re...

2019-11-03 17:46:47 10001

原创 ZAB协议(Zookeeper Atomic Broadcast)

一、简语:ZAB协议是Paxos算法的经典实现二、ZAB协议的两种模式:1.崩溃恢复:1.每个server都有一张选票(myid,zxid),选票投给自己2.收集所有server的投票3.比较投票(逻辑:优先比较zxid,选出zxid最大的,其次比较myid)4.改变服务器状态(崩溃恢复->消息广播 或 崩溃恢复->数据同步)2.消息广播:1.lea...

2019-02-28 19:17:26 17888

原创 mysql之重要命令(三)

一、引言人脑记录的知识,往往会遗忘,还是记录到博客放心点二、命令-- 查看版本show variables like '%version%';-- 支持哪些存储引擎show engines;-- 默认存储引擎show variables like '%storage_engine%';-- 默认隔离级别show variables like 'transaction_i...

2018-12-05 20:34:02 18012

原创 mysql之explain(二)

一、引言最近订阅了极客时间mysql的专栏,感觉讲的还不错,在此之前也看过一些mysql的知识,但是不太系统,故而经常性的用过即忘,趁着对这块感兴趣,赶紧把这块知识记录下来!二、准备工作CREATE TABLE `order_detail` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID', `...

2018-12-05 16:54:27 17903

原创 多线程处理容器ExecutorCompletionService使用

一、多线程的好处:接口调用,往往离不开多线程,可以减少响应时间二、场景:1、业务A有1W个条形码需要调用第三方(商品服务)获取商品信息接口2、第三方(商品服务)获取商品信息接口, 单次只允许传入10个条形码来查询三、代码:import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springfr...

2018-12-04 20:32:40 21635

原创 手写redis客户端

一、RESP通信协议 RedisSerialization Protocol (Redis序列化协议). 特点:容易实现、解析快、可读性强 以\r\n分割数据.二、撸代码package com.dongnao.demo;import java.io.IOException;import java.io.InputStream...

2018-08-27 22:00:57 10270 5

原创 分布式一致性协议-2PC与3PC(三)

一、分布式一致性一个事务需要跨多个分布式节点,又要保持事务的ACID特性,需要引入协调者来统一调度所有分布式节点的执行逻辑,被调度的节点称为参与者。协调者负责调用参与者,并决定最终是否提交事务。基于这个思想,衍生出2PC和3PC两种协议二、2PC协议(Two phase commit)二阶段提交:将事务分成了投票和执行两个阶段。优点:原理简单缺点:单点问题、同步阻塞、...

2018-05-16 22:03:03 18178

原创 分布式架构(二)

一、从单机到分布式:二、分布式常见问题:三、ACID事务的四大特性:原子性:一次执行过程中,要么都成功,要么都失败一致性:从一个一致性状态到另一个一致性状态隔离性:事务之间互不干扰持久性:一旦事务成功结束,它所做的操作会永久保存下来四、CAP理论一致性(Consistency):在分布式环境中,数据在多个节点之间是否能保持一致性可用性(Availa...

2018-05-07 20:37:21 17825

原创 缓存雪崩

缓存服务器挂了或大量缓存集中在一段时间内失效,请求全部转发到数据库上,造成数据库瞬时压力过大雪崩!失效的几种情况:1、缓存服务器挂了2、高峰期缓存局部失效3、热点缓存失效解决方案:1、避免缓存集中失效,不同的key设置不同的超时时间2、增加互斥锁,控制数据库请求,重建缓存3、提高缓存的HA,如:redis集群我的博客园地址...

2018-04-16 21:59:19 9158

原创 秒杀系统如何设计

近来听到关于秒杀的话题,想起N年前去某当面试,好像有类似设计题,觉得挺有意思,整理了下,供大家临时应急使用!秒杀场景:10W真实用户参与秒杀,仅有100人可以成功购买商品。考虑到码农的特殊手段,接口流量咱们按20W去算.思路如下:1、前端控制   技术控制,置灰按钮、防止重复提交   2、后端负载均衡、分散流量单机理论极限并发约6W,20W流量需要4台服务,去分散流量3、用户频率限制用户手脚不停的...

2018-04-16 21:49:37 36996

原创 redis资源未释放引发的问题

一、redis资源未释放的起因:N年前,在修改一个古老程序时,不小心把redis释放的这块给干掉了, if (jedis != null) { if (!isInProcess) { jedis.del(currentPageRunControlRedisKey); } JedisUtil.getInstance().closeJedis(j...

2018-04-16 21:47:57 11316

原创 Zookeeper简介和安装(一)

一、简介:Zookeeper是一个分布式协调服务,提供的服务如下:命名服务:类似于DNS,但仅对于节点配置管理:服务配置信息的管理集群管理:Dubbo使用Zookeeper实现服务治理分布式锁:选举一个leader,这样某一时刻只有一个服务在干活,当leader出问题时释放锁,立即切到另一个服务二、下载:点这里三、三种安装模式: 单机、真分布集群模式、伪分布集群模式四、伪分布式集群搭建:1...

2018-04-16 21:45:32 17860

原创 jvm内存结构(一)

学习之余,整理了下JVM的资料堆:需要重点关注的一块区域,涉及到内存的分配与回收方法区:用于存储已经被虚拟机加载的类信息、常量、静态变量等数据,也叫永久区常量池:用于存放编译期生成的各种字面量和符号引用(JDK6在方法区、JDK7在堆中)虚拟机栈:栈里面存放着基本数据类型和对象的引用方法执行时会创建一个栈帧(存储局部变量表、操作数栈、动态链接、方法出口等...

2018-04-12 14:12:48 17813

原创 AQS分析(AbstractQueuedSynchronizer)(三)

1、AQS是什么  AQS同步器是Java并发编程的基础,从资源共享的角度分成独占和共享两种模式,像ReentrantLock、ThreadPoolExecutor、CountDownLatch等都是基于AQS来实现的,如图:2、AQS同步队列的基本结构  AQS维护了一个头节点(head)和一个尾节点(tail)结构的双向链表,当一个线程获取锁失败时,会将该线程打包成一个Node节点,挂到同步队...

2018-04-12 10:59:30 43524

原创 原子操作(二)

一、什么是原子操作不可被中断的一个或一系列操作二、Java中如何实现原子操作通过锁和循环CAS(自旋)的方式来实现三、什么是CAS(Compare And Swap)CPU的原子锁技术,由CPU提供的CMPXCHG指令保证//AtomicInteger的计数是典型的CASpublic final int incrementAndGet() { for (;;) { ...

2018-04-12 10:55:16 17834

原创 线程基础知识(一)

一、线程是什么?  程序执行流的最小单元,也叫轻量级进程二、线程的5种状态   1、新建(NEW)新建了一个线程  2、就绪(RUNNABLE)调用start方法,处于待命阶段,只要得到军令(获得CPU时间片),立即执行命令(执行run方法)  3、运行(RUNNING)拥有CPU时间片这段时间内,执行具体命令  4、阻塞(BLOCKED)线程因为...

2018-04-12 10:52:23 17877

lucene入门代码示例

最受欢迎的java开源全文搜索引擎开发工具包。 提供了完整的查询引擎和索引引擎, 部分文本分词引擎。 Lucene的目的是为软件开发人员提供一个简单易用的工具包, 以方便在目标系统中实现全文检索功能, 或者是以此为基础建立起完整的全文检索引擎。

2020-05-04

jdk命令行工具.doc

jvm命令行工具,java性能优化,jdk命令工具, jcmd命令、jps命令、jmap命令、jstack命令、jinfo命令、jstat命令

2020-03-12

算法图解-图文并茂

算法图解-图文并茂

2018-10-23

非常好的EXTJS主题包

非常好的EXTJS主题包,这个文件很全,很漂亮,大家都说好

2014-10-20

java反编译

java反编译 java反编译 java反编译

2013-10-16

SVN 服务器 4MB

SVN 服务器 4MB

2013-10-16

plsql 绿色单文件免安装版本

plsql 绿色单文件免安装版本

2013-10-16

屏幕亮度调节

屏幕亮度调节.exe工具

2013-10-16

Everything 文件搜索软件

Everything 文件搜索软件

2013-10-16

SVN-x64中文版安装包

SVN-x64中文版安装包 亲测可以用

2013-10-16

oracle运行情况命令总结

介绍了,oracle数据库相关的高级操作。 oracle内存相关的一些命令。

2012-02-27

ORACLE 性能优化.doc

详细介绍了oracle, 如何调优,性能方面设置。 一些高级内容。

2012-02-27

Everything

非常好用的文件搜索工具。 适用于WIN7,XP,2003,2000。 中文破解版。

2012-02-27

plsql 无需安装

非常好用的plsql工具,无需安装。 直接运行exe文件即可。

2012-02-27

java 反编译工具

很好用的反编译工具,无需安装,就一个exe文件。

2012-02-27

log4j的jar包

log4j的jar包 log4j的jar包

2009-05-19

struts2的jar包

struts2 jar包 直接放到 wen-inf \lib\中就可以

2009-05-19

sqlserver2000的jar包

sqlserver2000的jar包 sqlserver2000的jar包

2009-05-19

htmlparser的jar包

htmlparser 解析wap页面可用

2009-05-19

dom4j的jar包(带xml解析例子)

dom4j的jar包 带xml几个例子

2009-05-19

强悍文本编辑器 - Notepad++ v5.3 Final 多国语言版

Notepad++ 是一款非常有特色的编辑器,是开源软件,可以免费使用。功能有: ①、内置支持多达 27 种语法高亮度显示(囊括各种常见的源代码、脚本,值得一提的是,完美支持 .nfo 文件查看),也支持自定义语言; ②、可自动检测文件类型,根据关键字显示节点,节点可自由折叠/打开,代码显示得非常有层次感!这是此软件最具特色的体现之一; ③、可打开双窗口,在分窗口中又可打开多个子窗口,允许快捷切换全屏显示模式(F11),支持鼠标滚轮改变文档显示比例,等等; ④、提供数个特色东东,如 邻行互换位置、宏功能,等等...现在网上有很多文件编辑器,这个却是不可多得的一款,不论是日常使用还是手写编程代码,都能让你体会到它独有的优势和方便。 Notepad++ 是在微软视窗环境之下的一个免费的代码编辑器。为了产生小巧且有效率的代码编辑器,这个在GPL许可证下的自由软体开发专案採用 win32 api 和 STL 以 C++ 程式语言撰写成,并且选用功能强大的编辑模组 Scintilla。多亏它的轻巧与执行效率,Notepad++ 可完美地取代微软视窗的记事本。 Notepad++ 的主要功能: 语法高亮度显示及语法摺迭功能 支援的程式语言: C C++ Java C# XML HTML PHP CSS makefile ASCII art (.nfo) doxygen ini file batch file Javascript ASP VB/VBS SQL Objective-C RC resource file Pascal Perl Python Lua TeX TCL Assembler Ruby Lisp Scheme Properties Diff Smalltalk Postscript VHDL Ada Caml AutoIt KiXtart Matlab Verilog Haskell InnoSetup CMake YAML 列印所见即所得(WYSIWYG) 如果你有彩色印表机,你可以把你的原始码以多种颜色列印出来。 用户自定程式语言 用户可自定程式语言:自定的程式语言不仅有语法高亮度显示功能,而且有语法摺迭功能功能。 註解关键字及运算符号亦可自定。详情请参考用户自定程式语言线上辅助 ( 画面一, 画面二, 画面三, 画面四 )。 字词自动完成功能(Auto-completion) 用 户能做自己的API列表(或从下载专区下载你需要的api档案) 。一旦api档案建立完成且在正确的路径系统,键入Ctrl+Space(你可以修改这个键盘捷径)启动字词自动完成功能(参考字词自动完成功能画面)。 欲知更详尽的资讯,请参考字词自动完成功能线上辅助。 支援同时编辑多重文件 你可以同时开启多页面来编辑。 支援多重视窗同步编辑 用户可同时有两个视窗对比排列。你不但能开启两个不同文件在分别两个不同的视窗内 (画面), 并且能开启一个单独文件在两个不同的视窗内(clone mode)进行同步编辑。同步编辑的成果将在两个的视窗内同时更新。请参考同步编辑画面。 支援Regular Expression搜寻及取代 用户可用Regular Expression来搜寻及取代一个字串。 完全支援拖曳功能 你可用拖曳功能来开启文件。你也可以用拖曳功能来变换开启文件的位置。 你甚至可拖曳开启文件从一个视窗到另一个视窗。 内部视窗位置可任意移动 自动侦测开启档案状态 如果外部修改(或删除)Notepad++已开启档案,用户将会被通知更新档案内容(或移除档案)。 放大与缩小功能 不需要多做介绍,画面将说明一切。 支援多国语言 支援中日韩视窗环境,及阿拉伯语与希柏来文的视窗环境。请参考 Notepad++ 在中文视窗下,阿拉伯语视窗下以及希柏来文视窗下的画面。 书籤 用户可用滑鼠点击书籤边行(书籤边行位于列数边行右方)或使用键盘捷径Ctrl+F2来标明或移除书籤。使用键盘捷径F2到下一个书籤或Shift+F2到上一个书籤。如欲清除所有书籤,使用选单 寻找->清除所有书籤 。请参考画面. 高亮度括号及缩排辅助 当插字游标(caret)移至下列字元{ } [ ] ( )旁侧时, 此字元与远方相对应的字元以及缩排辅助(如果存在的话)将会以高亮度来显示。请参考画面一, 画面二。

2009-03-25

空空如也

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

TA关注的人

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