自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

翻译 RPC框架核心技术

同前几篇博文,本次针对大神分享的PRC框架核心技术进行总结分享。欢迎讨论 一、RPC框架整体架构 RPC Client  &&  RPC Server RPC Client 1、动态代理,根据lookUp信息(接口-实现-方法)动态创建出代理类,(创建代...

2018-05-30 15:33:55 1242 0

翻译 (二)常用的优化策略

一、性能瓶颈的定位查看操作系统负载1、CPU (查看各性能指标命令集合-待整理)2、IO3、带宽4、其他使用Profiler测试,另外外部工具例如Java的JProfiler/TPTP/CodePro Profiler;通过日志查询二、性能优化策略(具体case)空间换时间1、将远程调用改为数据初...

2018-05-29 18:59:39 237 0

翻译 (一)服务容量预估

昨天一大神又做了一次精彩的分享,关于服务容量预估和常用的优化策略。鄙人将分享内容case及个人理解写出来,一在自我回顾总结,二在分享给大家,一起讨论。Case用户运营提出某活动价促销需求(优惠力度很大),且活动商品无限量供应。计划给1000w用户发送促销短信。问:你是负责该活动的RD,这次活动需要...

2018-05-29 17:47:52 2002 3

原创 JDK、CGLib、Javassist实现动态代理

一、类加载1.类加载过程模拟public class Programmer { public void code() { System.out.println("I'm a Programmer,Just Coding....."); ...

2018-05-22 11:04:30 1373 0

原创 Spring Cloud Zuul--服务网关

有了Eureka服务注册发现、Hystrix断路器、Ribbon服务调用负载均衡,以及spring cloud config 集群配置中心,似乎一个微服务框架已五脏俱全,last but not least,一个服务网关却不可或缺。 一、Zuul 实例     在上篇demo创建好注册中心、服务提...

2016-12-19 10:41:56 37960 5

原创 Spring Cloud Hystrix--熔断器

一、Hystrix 熔断器 1、引入pom org.springframework.boot spring-boot-starter-parent 1.3.5.RELEASE org.springframework.cloud sprin...

2016-12-13 16:39:19 3768 1

原创 Spring Cloud Ribbon--智能路由

一、Ribbon负载均衡 还是先通过一个demo直观的体验一下spring cloud Ribbon负载均衡技能 1、引入pom依赖 org.springframework.boot spring-boot-starter-parent 1.3.5.RELEASE ...

2016-12-12 16:21:00 4970 1

原创 Spring Cloud Eureka--服务发现

一、Spring Cloud      Spring Cloud 为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性 Token、全局锁、决策竞选、分布式会话和集群状态)操作的开发工具。最关键的是它足够简单,一般的开发人员只需要几天时间就可以学会它的基本...

2016-12-12 12:01:08 5218 1

原创 知识图谱和Neo4j图数据库

一、知识图谱                 互联网、大数据的背景下,谷歌、百度、搜狗等搜索引擎纷纷基于该背景,创建自己的知识图谱Knowledge Graph(谷歌)、知心(百度)和知立方(搜狗),主要用于改进搜索质量。 1、什么是知识图谱       一种基于图的数据结构,由节点(...

2016-09-04 11:48:42 30130 3

原创 Go 语言进阶—— 反射

项目中有多处用到反射,本文简单列举go中提供反射的常用case。 go reflect反射包,通过Type和Value 分别表示反射获取的类型和值。通过函数,reflect.TypeOf和reflect.ValueOf,返回被检查对象的类型和值。例如,x 被定义为:var x float64 =...

2019-08-19 17:27:28 107 0

原创 Go 语言进阶——函数-变量-类型-并发 基础

Go gc 时下流行的语言大都是运行在虚拟机上,如:Java 和 Scala 使用的 JVM,C# 和 VB.NET 使用的 .NET CLR。而go同样通过虚拟机,采用标记-清除回收器管理内存,尽管虚拟机的性能已经有了很大的提升,但任何使用 JIT 编译器和脚本语言解释器的编程语言(Ruby、...

2019-08-19 14:53:01 90 0

原创 Go框架进阶—— Resty

Simple HTTP and REST client library for Go。简单理解 java里的HttpClient,用于发送http 或rest协议的请求。 github:https://github.com/go-resty/resty api doc:https://godo...

2019-08-16 16:19:41 1037 0

原创 go框架进阶——定时任务 goCron

goCron是一个Golang作业调度工具,可以使用简单的语法定期执行go函数。 github:https://github.com/jasonlvhit/gocron api doc:https://godoc.org/github.com/jasonlvhit/gocron#Every ...

2019-08-16 14:41:09 2885 1

原创 OpenStack 和云计算(扫盲篇)

背景:工程尾期,将全套应用服务部署到OpenStack上。没用过,于是抽丝剥茧,研究研究啥是OpenStack What is OpenStack OpenStack是一个可以管理整个数据中心里大量资源池的云操作系统,包括计算、存储及网络资源。管理员可以通过管理台管理整个系统,并可以通过web...

2019-08-13 12:02:16 372 0

原创 APM ——全链路追踪

全链路追踪目的 微服务背景下 1.故障快速定位 跨语言实现开发中在业务日志中添加调用链ID,可以通过调用链结合业务日志快速定位错误信息。 2.各个调用环节的性能分析 分析调用链的各个环节耗时,分析系统的性能瓶颈,找到系统的薄弱环节针对性优化 3.数据分析 分析用户的行为路径,...

2019-08-01 16:28:32 2411 0

原创 Go——go web 集成swagger

swagger完美API文档的生成工具,免去繁琐的面向wiki编程。java中可直接引用swagger依赖,spring全家桶对swagger也集成通过写注解便可直接生成入参返回值的api接口文档。go项目也有对应的swaggo集成。下面介绍如何在go工程中使用swaggo自动生成接口文档。很简单...

2019-07-19 17:29:09 1037 0

原创 Go—GOPROXY代理 invalid $GOPROXY setting error

Go 由于是谷歌研发出品,很多开源依赖包都在国外服务器,down包经常会出现当不下来的情况,此时就需要设置$GOPROXY 代理,通过国内代理链接来获取包资源。 常用代理路径:https://goproxy.io/ 网站打开很直白的介绍了如何设置$GOPROXY变量。 In Linux o...

2019-07-08 11:58:49 2744 0

原创 Docker

Linux虚拟化容器技术,有效的由单个操作系统管理资源细化为独立的组中,更高效的平衡有冲突的资源间使用需求,docker2013年基于go实现的开源项目,进一步优化了容器使用的体验。每个容器内运行应用,不同容器间相互隔离,容器间可以建立通信机制。通过管理应用组件的封装、分发、部署、运行达到组件“一...

2019-06-02 17:55:03 90 0

原创 ReactJS编程(四)——state 和props数据传递

一、state vs props state对象,可以理解为组件内置的对象,通过更新赋值给state 类改变、重新渲染用户界面。类似java类中private属性的载体,用于传递类私有的数值。 class WebSite extends React.Component { constru...

2019-05-05 21:50:19 196 0

原创 ReactJS编程(三)

逻辑判断 1、if else 简单登陆逻辑如下: class LoginControl extends React.Component { //构造函数 初始化props、state数据 constructor(props) { super(props); this...

2019-05-05 21:34:47 74 0

原创 ReactJS编程(二)——自定义组件

原生 HTML 元素名以小写字母开头,而自定义的 React 类名以大写字母开头。其实ReactJS编程(一)中,已经自定义了Name、Url等组件进行页面元素封装。写法很简单,如下。 <script type="text/babel"> //自定义一个Hell...

2019-05-05 21:26:17 126 0

原创 ReactJS编程(一)

源于facebook13年开源 js框架,用于构建页面的js库。使用简单,直接在web页面引用react 三个核心js包即可。 react.min.js- React 的核心库 react-dom.min.js- 提供与 DOM 相关的功能 babel.min.js- Babel 可以将 E...

2019-05-05 21:18:43 63 0

原创 读《经济学》 看通货膨胀和物价问题

一、恩格尔系数 国际上用来衡量一个国家和地区的富裕程度(食品比重越大越穷);(食品 居住 医疗) 从有的吃、有的住、有得玩(投资)来衡量经济发展 二、有的吃:通货膨胀 物价问题 通货膨胀的要点:1.纸币流通 2.大多数商品 3.一段时间(月季年) 通货膨胀的分类:1.温和(价格上涨的水平...

2019-04-16 18:16:39 358 0

原创 架构设计——ID生成器

一、分布式ID发号器 要求很明确:不同机器同一时间生成不同ip;同一机器不同时间生成不同IP; 所以根据需求,可选变量有:机器(网卡、IP)+时间,随机数 二、Why not UUID? UUID的实现:算法的核心思想是结合机器的网卡、当地时间、一个随机数来生成UUID。 优势:保证唯一...

2019-04-16 14:19:48 2361 0

原创 读《经济学》 从经济学角度看社会政策

发jian书上居然驳回了。。。本文涉及任何敏感词汇么? 一、节俭悖论 道光帝崇尚节俭,非但没使大清王朝强盛胆儿更加衰败;“我这么提倡节俭,怎么还怎么穷呢”。 经济学节俭悖论:家庭、企业、政府三体,单个个体节制消费增加存储,对个体家庭是好事;但如果人人节约则会减少国民收入,引起经济萧条,对国家...

2019-04-14 12:12:44 286 0

原创 Go First Web——Go编写第一个web 模板 表单参数校验

之前没了解过go,两年前听别人分享据说是很牛逼,研究了两天,刚入门已被折服,展示一下用Go写一个web有多简单。 1.Go语言里提供了很完善的net/http包,通过http包可以很方便的编写一个可运行的web服务。非常便捷的设置路由url、静态文件等 2.Go内置的天然支持高并发特性,让该w...

2019-04-11 16:34:39 161 0

原创 GO 基础语法(2)——指针结构体集合并发反射

一、指针 //指针 获取对象、变量的内存地址 //取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。 //指针类型前面加上 * 号(前缀)来获取指针所指向的内容 func pointDef() { //定义指针变量 var ip *int /* 指向整型*/ //获取...

2019-04-10 17:21:25 83 0

原创 GO 基础语法(1)——常量变量函数数组

一、变量声明赋值 package main import ( "fmt" "unsafe" ) //全局变量声明 var ( globelString string globleInt int ) func main() { //局...

2019-04-09 17:01:05 123 0

原创 MAT定位OOM溢出源

前期准备: 配置oom自动dump jvm快照:-XX :+HeapDumpOnOutOfMemoryError 分析过程: 1)MAT中导入java_pid17932.hprof jvm快照,查看histogram 信息 注:Shallow Heap:对象自身不包含引用的大小;Ret...

2018-11-13 16:09:00 945 0

原创 Linux菜鸟——awk

一、语法 awk [选项参数] 'script' var=value file(s) 示例 echo "" | awk  '{print "hello kuaigou"}' awk '{a=0;b=1;pr...

2018-11-12 18:07:01 158 0

原创 spring IOC容器自自实现

流程 组件一、配置文件加载器  public final class PropsUtil { /** * 获取文件流,转成properti map内存 */ public static Properties loadProps(String fi...

2018-11-05 18:25:58 176 0

原创 缓存穿透 & 缓存雪崩 & 缓存预热 & 缓存热点并发访问

一、什么是缓存穿透? 缓存未命中某key,转而到db中查询。 缓存穿透的漏洞 恶意利用不存在的key频繁攻击应用,导致请求直接落到DB中,可能导致DB瞬时高负载或挂掉。 缓存穿透解决方案一: 先查询缓存,若缓存为null,则查询db,若DB仍返回无结果,将该key写入缓存,标识为不存在k...

2018-10-22 17:15:30 354 1

原创 Spring AOP 内部调用失效解决方案

背景 前两篇博客采用AOP实现接口入参、返回结果的log打印和方法参数校验。测试时发现一个问题,简言之: 1、service中方法1设置AOP拦截,奏效 2、同service中方法2未设置AOP拦截,但在方法2中直接diao调用方法1,方法1的AOP拦截失效。 原因 通过debug发现,...

2018-10-09 15:19:07 1693 0

原创 Redis缓存淘汰算法

Redis缓存淘汰策略 当实际内存超出 maxmemory 时,Redis 提供了几种可选策略 (maxmemory-policy) 来让用户自己决定淘汰哪些key。总结如下: Redis LRU近似算法 Redis 使用的是一种近似 LRU 算法: 1、key增加最近访问时间戳字段 ...

2018-09-25 16:55:49 1433 0

翻译 Mybatis缓存机制

一级缓存实现原理 1、创建了一个SqlSession对象,同时会为这个SqlSession对象创建一个新的Executor执行器 2、Executor接口的实现类BaseExecutor则使用PerpetualCache缓存对象维护缓存. 3、PerpetualCache缓存类实现Has...

2018-09-25 15:46:41 208 0

翻译 LFU & LRU-K 等常用缓存淘汰算法对比

上篇文章介绍了最常用的LRU算法及实现,本篇总结常用缓存淘汰算法,归总对比。 一、LFU (Least Frequently Used):最近最低使用频次被淘汰 实现:通过count记录缓存数据的使用次数,数据块按照引用计数排序,计数相同则按照时间排序。 1. 新加入数据插入到队列尾部(因...

2018-09-20 17:37:29 781 0

翻译 缓存淘汰算法LRU及JAVA实现

一、基本概念 命中:访问缓存是通过key get到对应value 回源: miss了,未命中导致回读源数据 淘汰:缓存满了,那么就会按照某一种策略,把缓存中的旧对象踢出,而把新的对象加入缓存池。(只有5个存储单元,来了第6个元素。则考虑谁出队) 淘汰策略:即缓存算法,决定到底应该踢出哪些对...

2018-09-20 16:39:48 596 0

原创 Spring AOP 通用入参校验终极版

入参校验一直是程序中一块鸡肋,食之无味却又不得不吃。经过几个版本变更,本次项目上线笔者终于将入参校验应用了稍微高级一点的写法。 基调:hibernate.validator 实现-低配版 1、引入pom &lt;dependency&gt; &lt;gr...

2018-09-17 19:31:51 1942 0

原创 Spring AOP 日志切面升级版

上一篇Spring AOP项目应用——方法入参校验 &amp; 日志横切 介绍了 spring AOP 5切面类型及应用场景。本次结合注解使用,方便又实惠。实现如下: 封装日志切面 @Aspect @Component public class LogAspect { pri...

2018-09-05 15:31:19 534 0

原创 Guava —— RateLimiter 接口限流

限流==保险丝策略,可借助框架如spring cloud中Hystrix组件实现。今天介绍使用guava RateLimiter 类实现接口限流。 常见限流算法 漏桶算法      漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率...

2018-09-04 09:57:44 782 0

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