自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(219)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 java并发编程实践笔记14

自定义Semaphore和ReentrantLock主要实现利用jdk的Semaphore和ReentrantLock互相委托,实现自定义的Semaphore和ReentrantLock。使用ReentrantLock实现Semaphore下面是自定义的Semaphore代码:/** * 自定义 * * 委托给 lock 和condition实现 * Created by Admi

2017-01-19 00:41:28 573 3

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

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

2016-06-17 09:50:26 1151

原创 spring boot 使用 log4j 异步日志

操作步骤1. 排除默认的 logback 依赖,同时引入log4j2<!-- 排除默认的 logback 依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion>

2021-10-30 19:19:31 1922

原创 004-protostuff踩坑-java bean新增字段反序列化失败问题

protostuff 避免 更改 java 对象字段 ,比如新增一个,导致 redis 等缓存 的数据反序列化失败问题??问题重现:我们有个方法 通过 attrKey 查询 List ,同时方法中有缓存,会优先查询缓存,没有读库,然后 写缓存 返回。方法伪代码如下: public void setId(String attrKey) { // 从 缓存查询 List<ConfAttr> attrValues = cacheClient.get(attrKey);

2021-07-29 16:58:54 5576

原创 003-Resilience4j学习

TimeLimitertimeoutDuration : 默认 1s : 超时时间配置 (类型是 Duration)cancelRunningFuture : 默认 true: 当 future.get 超时时候(TimeoutException),是否调用 future.cancel 取消异步任务aop 时候 执行先后顺序说明优先级列表名称aop优先级(从高到底 (高的先执行))retryAspectOrderOrdered.LOWEST_PRECEDENCE - 4

2021-07-29 01:17:49 406

原创 002-Spring Cloud Circuit Breaker 学习

官方文档https://docs.spring.io/spring-cloud-circuitbreaker/docs/current/reference/html/#usage-documentation功能分析配置入口org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JAutoConfiguration主要配置了 org.springframework.cloud.circuitbreaker.resilience

2021-07-26 23:23:01 632 1

原创 001-spring boot 2.5.x feign 生产环境使用参考

spring feign 总结启用项目中增加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>io.github

2021-07-25 02:15:00 1309

原创 idea2020.2 ubuntu20.4 输入法切换使用问题

解决办法在 “Help | Edit Custom VM options…” and add -Drecreate.x11.input.method=true to a new line重启 IDE

2020-10-01 07:35:57 975 1

原创 zuul 重写路由请求

zuul 重写路由请求比如 我们在转发请求时候,添加open 前缀public class RequestPathFilter extends ZuulFilter { @Value("${forward.pathPrefix:}") private String forwardPathPrefix = ""; @Override public String filterType() { return FilterConstants.ROUTE_TYP

2020-09-29 15:03:44 630

原创 spring kafka配置优化

生产者配置下面用的是 kafka-clients-2.0.1.jar 的原生配置# 用来初始化连接kafka(不用配置全部节点,会动态发现)bootstrap.servers=172.28.15.138:9092,172.28.15.195:9092,172.28.15.145:9092# 生产者缓存发送记录,如果生产速度过快,buffer占满,则生产者会阻塞 max.block.ms 直到抛出异常。并且不是全部用来缓存记录,比如压缩也会用到 默认 32 * 1024 * 1024 (32m)bu

2020-09-09 19:51:12 1316

原创 基于vscode编写markdown导出带书签(目录)的pdf

目的有时候我们需要对写完的markdown文件,导出pdf,同时带有书签。这里总结下我的实现前提基于ubuntu20.04基于vscode编写和相关的插件安装下载安装vscode下载安装markdown插件 Markdown All in One (方便编写)和 Markdown Preview Enhanced (提供导出功能)因为需要导出带有书签的pdf 所以这里我们 使用 Prince(可以将html导出pdf) (注意这里使用的是ubuntu系统)下载地址: https:/

2020-09-04 01:33:01 6918 7

原创 java helloworld

编译执行代码结构Hellow.java 在默认包下Helloworld.java 在com.test 包下两者代码相同 都是 print hellow。编译编译 Hellow.java javac Hellow.java编译 Helloworld.java javac com/test/Helloworld.javaPS: 如果执行javac 没有报错,会在对应的源码目录生成对应的.class 文件执行# 先进入项目根目录java -cp . Hellow

2020-07-03 18:58:04 176

原创 ubuntu20 nginx安装

源码安装~/app/nginx/nginx-1.16.1执行:configuresudo ./configure --prefix=/usr/nginx最终输出:Configuration summaryusing system PCRE libraryOpenSSL library is not usedusing system zlib librarynginx path prefix: “/usr/nginx”nginx binary file: “/usr/nginx/

2020-06-13 21:47:11 618

原创 开发-外放-checklist

开发步骤 checklist建表-同步准备好索引 (如果是按月分表等,更要注意,最好写在程序定时任务)。建表-注意数据的清除策略注意缓存- 哪些方法需要缓存,同时需要清除注意高并发- 哪些功能并发高, 服务自身, redis 是否撑不住,mongo是否撑不住 ,依赖别人接口是否撑不住, ====其他外部依赖是否撑不住注意哪些方法 需要单个进程 执行,只能执行一次。 (比如活动结算,只需要一个线程 执行一次)开发记得 打印日志,特别是关键的地方,需要查证问题的地方外放步骤 checklist

2020-05-20 14:45:19 359

原创 字典 复制思路

# 原始代码room_sessid = req_local.get(UserElement.ROOM_SESSID)recom_token = req_local.get(UserElement.RECOM_TOKEN) if room_sessid: info[UserElement.ROOM_SESSID] = room_sessid if recom_token...

2020-04-15 10:33:41 181

原创 python本地缓存

import datetimeimport functoolsimport heapqimport inspectimport loggingimport randomimport timeimport weakreffrom eventlet.semaphore import Semaphorefrom service.globaldef import Constslo...

2020-02-27 14:00:47 1958

原创 vimrc配置

vimrc配置set encoding=utf-8 set termencoding=utf-8 set fileencodings=ucs-bom,utf-8,gbk set ambiwidth=doubleset fileformats=unix,dos,mac" 自动缩进 set smartindent set smarttab set cindent " tab设置 ...

2020-02-07 18:17:56 136

原创 python参数校验代码

class Code(object): MSG = { } @classmethod def api_resp(cls, code=0, msg=None, data=None): if codeis None: reason = cls.MSG.get(result, '') return JsonRes(...

2019-06-21 19:35:52 2703

原创 nameko笔记2-启动自定义配置文件格式

前言nameko 默认的启动文件格式yaml 或者直接命令行输入某些参数是否可以 自定义nameko的配置格式呢,比如利用json格式 或者改为直接读取consul 的远程配置nameko 的配置文件加载过程从nameko源码 可以看到 加载yaml 大概如下(比如执行 nameko run --config foo.yaml service ):启动参数传到命令Run 然后调用 ...

2019-05-04 00:04:37 1072 1

原创 nameko笔记1-nameko启动命令分析

nameko 命令分析安装namekopip install nameko安装 rabbitmq很多nameko 内嵌的功能依赖于rmq(如 rpc pub-sub)debian-based operating systems:apt-get install rabbitmq-server参考:参考: https://nameko.readthedocs.io/en/stable...

2019-05-03 21:02:05 2132

原创 python-consul-分布式配置代码

下面是一份 给予consul作为分布式配置的python代码:class LyConf(object): def __init__(self, consul_key, consul_client=None, host='127.0.0.1', port=8500, loop_interval=5): if consul_client:...

2019-05-01 23:29:55 1065

原创 python列表生成式-笔记

效率代码如下:# -*- coding:utf-8 -*-import timesize = 10000000t1 = time.time()a = list(range(size))t2 = time.time()print('x=%s' % a[100])print(t2-t1)t1 = time.time()b = [x for x in range(size)]...

2019-04-27 09:52:47 145

原创 python redis 分布式锁

实现class DisLockService: DEL_SCRIPT = ''' if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end ''' @staticmethod d...

2018-12-07 17:26:19 798

原创 跨域问题方案总结

什么是同源策略?同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指&quot;协议+域名+端口&quot;三者相同,即便两个不同的域名指向同一个ip地址,也非同源。3.同源策略限制以下几种行为:1.) Cookie、LocalStorage...

2018-11-28 19:37:17 192

原创 redis lua 脚本使用

lua 教程http://www.runoob.com/lua/lua-tutorial.htmllua redis 教程深入理解redis.pdf 第五章一段记榜的脚本zaddIfNotExistsOrGtPreVal.luafor k, v in ipairs(KEYS)do local prescore = redis.call('ZSCORE', v, ARGV[1]...

2018-10-09 18:00:55 1304

原创 使用java consul-api注册服务

注册服务代码如下public void registerService(ServiceConfig service) { NewService newService = parseFrom(service); Check check = service.getCheck(); if (check != null) { New...

2018-09-24 10:31:14 5023

原创 docker搭建consul集群

说明docker版本:18.06.1-ceconsul 版本:v1.2.3系统:ubuntu18本文将介绍在一台机器上搭建三个server节点 1个Client节点的consul集群。docker安装1.卸载老版本 sudo apt-get remove docker \ docker-engine \ docker.i...

2018-09-23 18:16:31 6418 1

原创 sping boot 中使用 redis 分布式锁

public class RedisLock { private static Logger logger = LoggerFactory.getLogger(RedisLock.class);private static final String LOCK_MSG = &amp;quot;OK&amp;quot;;private static final Long UNLOCK_MSG = 1L;privat...

2018-09-14 17:11:26 277

原创 python 自定义base64

class MyBase64(obejct): STANDARD_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' # standard base64 alphabet def __init__(self, alphabet=None): if alphab...

2018-08-27 17:39:51 2134

原创 java自定义base64

public class MyBase64 implements Codec {private final static Logger LOGGER = LoggerFactory.getLogger(MyBase64.class);private final static String STANDARD_ALPHABET = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcd...

2018-07-26 09:45:08 697

原创 idea 使用 总结

idea 使用 总结技巧常用 我用的多的 Maven Helper ,Alibaba Java Coding Guidelines,IntelliJ Lombok plugin,JRebel,FindBugs,gsonformat,codemaker (各种bean互转), GenerateAllSetter (快速调用全部的setter 方法,避免自己注入写少了)自定义 se...

2018-06-07 11:29:59 810 1

原创 dubbo 分析-调用过程分析

dubbo 调用过程分析本章 主要介绍 dubbo 服务和客户端 调用过程。服务端 接收请求流程服务端配置直接采用dubbo 源码例子 dubbo-demo-provider配置如下:&lt;!-- provider's application name, used for tracing dependency relationship --&gt;&lt;d...

2018-04-15 11:19:20 894

原创 dubbo分析-export一个服务

export一个service我们先看下export 一个service 的具体代码:// 服务实现HellowService hellowService = new HellowServiceImpl();// 应用配置ApplicationConfig applicationConfig = new ApplicationConfig();applicationConfig....

2018-04-10 13:25:17 2119

原创 dubbo分析-ExtensionLoader自适应实现

ExtensionLoader 一般使用方式#截取 自 ServiceConfig 代码片段public class ServiceConfig&lt;T&gt; extends AbstractServiceConfig { private static final long serialVersionUID = 3033787999037024738L; privat...

2018-04-08 21:55:37 492

原创 dubbo分析-netty 实现同步通信

说明dubbo默认的protocol 是 DubboProtocol,默认的远程通信采用netty(不是netty4),默认的codec2是 hessian2。这里我们来分析一下 dubbo实现 netty 异步转同步的细节。# ExchangeChannel上篇我们说过 dubbo 的上层通信封装在exchangeServer 和 exchangeClient。查看源码发现 发送...

2018-04-05 18:54:16 2299 1

原创 dubbo分析-protocol 源码分析

protocol 结构图 方法说明:export 将方法暴露出去。refer 引用 一个远程service。destroy 销毁全部的 invoker(service 和refer)。AbstractProtocol 分析属性分析: Map&lt;String, Exporter&lt;?&gt;&gt; exporterMap : key是 监听 addre...

2018-04-05 01:09:59 369

原创 fidder 抓包

抓http包:点击菜单 tools=》 connections=》勾选 allow remote computers to connect默认代理端口 是8888 可以再 connections tab页 更改。抓https包 除了上面配置的http抓包以外:点击菜单 tools=》 https 勾选 capture htttps connects ...

2018-04-04 15:01:39 192

转载 Publisher的消息确认机制

在前面的文章中提到了queue和consumer之间的消息确认机制:通过设置ack。那么Publisher能不到知道他post的Message有没有到达queue,甚至更近一步,是否被某个Consumer处理呢?毕竟对于一些非常重要的数据,可能Publisher需要确认某个消息已经被正确处理。      在我们的系统中,我们没有是实现这种确认,也就是说,不管Message是否被Consum

2017-12-19 09:54:46 895

转载 Spring-amqp 1.6.1 生产者与消费者消息确认配置与使用

通过Publisher Confirms and Returns机制,生产者可以判断消息是否发送到了exchange及queue,而通过消费者确认机制,Rabbitmq可以决定是否重发消息给消费者,以保证消息被处理。1.什么是Publisher Confirms and Returns?Delivery processing acknowledgements from cons

2017-12-19 09:52:50 724 1

转载 git reset revert 回退回滚取消提交返回上一版

git reset revert 回退回滚取消提交返回上一版总有一天你会遇到下面的问题.(1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚.(2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚.这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的.大致分为下面

2017-12-08 09:28:01 321

趣谈网络协议

网络协议是每个程序员入门的必修课,但是彻底掌握并应用网络协议知识却并非易事,比如常见的 TCP/IP、HTTP。网络协议的内容很基础,但基础知识不等于简单知识,更不等于不重要的知识。在网络协议的学习过程中,如果你也有过这样的感受: 协议知识琐碎又枯燥,一看书就头大; 协议内容很基础,但面试一问就“崩盘”; 工作遇到才去查书,现学却没法现卖; 协议知识太底层,不知道如何在热门领域应用。 那么,“趣谈网络协议”专栏就是为你量身定制的

2018-12-03

jdk源码阅读一:ArrayList

jdk源码阅读一:ArrayList

2017-01-14

scala-2.10.6.tgz

scala-2.10.6.tgz 官网下载 scala 2.10

2015-11-23

CSDN在线培训——Hadoop 2.0新特性剖析及应用

课程介绍:Hadoop 2.0新特性剖析及应用 课程大纲: 1. HDFS 2.0新特性剖析及应用 (1)NameNode HA (2)NameNode Federation (3)HDFS 快照(snapshot) (4)HDFS 缓存(in-memory cache) (5)HDFS ACL (6)异构层级存储结构(Heterogeneous Storage hierarchy) 2. YARN新特性剖析及应用 (1)ResourceManager HA (2)对多框架的支持 (3)对多类型资源的调度策略 (4)history log server与timeline server (5)对long-lived service的支持 3. MapReduce新特性剖析及应用 (1)MapReduce as a client library好处

2014-12-01

struts2.3.4.chm

struts2.3.4很好的帮助文档,感觉挺好用的

2012-08-10

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

TA关注的人

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