11 QIANGLU0

尚未进行身份认证

我要认证

知识改变命运,梦想创造未来

等级
TA的排名 4w+

新秀网关Apache-APISIX 插件 proxy-rewrite

一、概述proxy-rewrite 官方的定义是上游代理信息重写插件(请求方是下游,服务方是上游)。举个例子就是你的应用服务(用于认证的)接口各式各样的REST API,我现在就可以通过proxy-rewrite 插件给他们统一加一个前缀auth来方便管理和使用而你应用代码不需要任何改变。以前访问你应用使用/sso/check api,现在就是/auth/sso/check api了,而这个转换过程就是proxy-rewrite的功能了。这里是官方的介绍:https://github.com/apac

2020-07-07 15:33:04

新秀网关-Apache-APISIX--初探

一、概述最近有工作需求需要搞一个网关来给我们的应用做路由、限流等等功能。以前使用的Spring Cloud Zuul做网关,但目前的技术体系如果要用它就比较繁琐点了,所以又看了看其他的,发现Apisix 这货很不错啊。主要是KONG忒复杂了,Apisix很轻量很简单的样子,看起来不错,下面看下和KONG的官方对比。功能Apache APISIXKONG项目归属Apache 软件基金会Kong Inc.技术架构Nginx + etcdNginx + postgres

2020-07-01 19:07:45

Mac Docker 新版换源的问题

一、问题因为官方仓库实在是太慢了,所以一般我们都换个国内的使用,但网上查了下都是老资料了,根本没用,所以查了下官方资料。当前使用的版本2、解决看了下资料,其实也很简单打开 Prefreences 点击Docker Engine ,如图然后将我们国内源加入即可,完整配置如下{ "debug": true, "experimental": false, "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn",

2020-06-30 15:22:48

Spring Boot RocketMQ 多集群客户端使用小坑记录

一、前情今儿听说业务小伙伴需要在项目中使用多个RocketMQ集群,当前业务有一个集群做canal消费使用(此MQ集群开启了ACL),需要在增加一个MQ集群做业务数据发送,项目使用了Spring Boot组件。好了,问题描述完了,概括下,就是当前有个MQ集群在进行数据消费,需要在像另一个MQ集群发送数据。整明白需求,搞起来,这不是分分钟的事儿吗,嗖嗖嗖,我就写了下面的Config。public class RocketMqConfig { @Value("${rocketmq.mall.na

2020-06-29 18:42:28

Netty 新手入门 ( 一 ) Netty 与 NIO

前言最近因为工作需要使用到Netty方面的技术点,而以前也对这方面没有太多的关注过,所以边学习边总结,也给自己留个资料,以便以后查看起来方便。Java NIO再说Netty 之前先简单了解下Java 的NIO,因为Netty也是为了简化我们的编码对Java NIO进行了一系列的封装。Java NIO 从java领域讲就是 NEW I/O ,另一种就是Non-blocking I/O。它是一种同步非阻塞的I/O模型,也是I/O多路复用的基础。在NIO中有三个非常重要的概念,缓冲区(Buffer)、通

2020-06-23 17:21:38

一文搞定 Spring Cloud @RefreshScope 刷新机制

一、前言用过Spring Cloud的同学都知道在使用动态配置刷新的我们要配置一个@RefreshScope 在类上才可以实现对象属性的的动态更新,本着知其所以然的态度,晚上没事儿又把这个点回顾了一下,下面就来简单的说下自己的理解。总览下,实现@RefreshScope 动态刷新的就需要以下几个:@ Scope@RefreshScopeRefreshScopeGenericScopeScopeContextRefresher二、@Scope一句话,@RefreshSco

2020-06-11 00:01:43

ThreadDump分析实战(性能瓶颈分析)

一、回顾在前面我们了解了ThreadDump的查看方式,也大概了解了其能够做些什么,下面我们来继续探讨这个问题,不了解的同学回顾下以前的资料ThreadDump分析笔记(一) 解读堆栈ThreadDump分析笔记(二) 分析堆栈二、瓶颈在哪里改善资源也就是我们常说的性能优化,改善也就是需要在有限的资源内去做更多的事情。线程的运行因某个特定资源受阻时,我们称之为受限于该资源比如受限于数据库,受限于对端的处理能力等。其实利用并发来提高系统性能,就是意味着我们要使CPU尽可能的处于忙碌的状态。如果程序

2020-06-01 23:47:31

一张图之MySql知识体系完全体

MySql知识点是非常多的,最近抽时间总结了下体系图,大纲大概19块内容80多个大知识点,为了方便查看放了一张概括图,下面只是罗列了一下里面大概的知识点一级和二级目录,末尾放了完整版的图,但因为图片太大了不压缩传不上来,可能会不清晰,如果需要高清完整版和xmind 源文件扫码文末图片,输入暗号:mysql因为图真是太大了, 个人感觉PDF文件打开更加流畅。体系图我会慢慢的更新完善,有兴趣的可以扫码公众号获取最新的体系图和pdf、xmind 源文件(因为里面有很多注释图片目前展示不出来)暗号:mysql

2020-05-28 15:34:01

如何构建一个开源的javaagent项目

前情提要目前项目使用的agent 是在skywalking 上进行改造扩展的,但由于skywalking 的版本也是需要周期性更新的,这样会导致在合并的时候非常恶心人,所以准备从skywalking agent 中将改造的插件功能剥离出来。先说下独立功能有几个组件,大概访问流程是这样的 ui --> proxy --> agentui 负责命令交互,数据展示等proxy 负责通道维护,数据分拣agent 负责应用数据监控抓取所以在我们剥离出来后也会有三个项目 ui、

2020-05-27 11:32:47

ThreadDump分析笔记(二) 分析堆栈

最近在进行一些系统问题追踪分析,顺便翻了翻以前的笔记和书籍,突然发现了以前写的 ThreadDump分析笔记(一) 解读堆栈,阿哈哈哈,好吧,这次顺便补个二。线程堆栈是我们排查问题常用的一种数据,具有很高的价值。但是线程堆栈打印出来是贼拉多的,上一次已经把基础概念说了,今儿就来叨叨下应该怎么看这玩意。##0x01 线程堆栈可以干嘛线程堆栈主要是反映了当前系统线程正在干什么,堆栈可以从几个角度...

2020-03-17 14:30:02

JVM的基础世界(内存结构)

最近抽空又拜读了下JVM 虚拟机第三版,也算巩固巩固知识顺便做下总结吧,先抛砖引玉梳理下基础知识。第三版扩充了不少知识点还是很不错的,建议有时间可以完整读一下,这玩意真是每次读感觉都不一样啊。总结:1、内存结构的基本概念2、使用new 关键字后发生了什么3、对象已经创建了,对象在内存中的结构4、怎么定位到内存中的对象0x01 运行时数据区程序计数器:可以看成当前线程执行的字节...

2020-03-13 17:48:49

Redis 5.0.5 Cluster 集群搭建

参考资料:https://redis.io/download1、下载部署wget -b http://download.redis.io/releases/redis-5.0.5.tar.gztar xzf redis-5.0.5.tar.gzcd redis-5.0.5 make && make install 编译安装2、集群创建Redis 集群最小配置...

2019-11-11 09:48:10

MySQL 读书笔记 (三)InnoDB中的表

一、索引组织表在InnoDB中存储引擎中,表都是根据主键索引顺序组织存放的,这种存储方式称为索引组织表。其中每张表都有个主键,如果在表创建的时候没有指定,那么InnoDB将按照下面方式进行创建。1、首先判断是否有非空唯一索引(Unique NOT NULL ),如果有就选择其为主键。如果有多个非空唯一索引,那么就根据定义所以的顺序选择主键。就是哪个唯一索引先被定义哪个就成为主键。2、如...

2019-09-23 23:01:41

一百天算法训练(两数之和)

LeetCode 1 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0...

2019-09-22 10:22:57

一百天算法训练 (宝石与石头)

LeetCode 771 宝石与石头给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J =...

2019-09-19 23:26:18

MySQL 读书笔记 (二) InnoDB初探

一、什么是InnoDB从MySQL 5.5 开始 InnoDB 就作为了默认表存储引擎,完整的支持了MySQL的ACID事物。是OLTP应用中核心表的首选存储引擎。其特点如下:支持行锁、支持MVCC、支持外健、提供一致性非锁定读(不可重复读的现象就是它的锅,READ COMMIT级别下会默认读取最新的一次快照)。二、体系架构先来看一张架构图感受下:如图所示,其主要分为三个部分,后台线...

2019-09-17 23:56:25

MySQL 读书笔记(一) 体系结构

感觉好久没有看MySQL相关的书了,最近边复习,边整理下感觉重要的知识点,一点点的由简入繁,先从整体概念上理解下,扩充下整个知识图谱。一、MySQL 体系结构基础中有两个重要概念,数据库和数据库实例。数据库:文件的集合,依照某种数据模型组织并存放于二级存储器中的数据集合。数据库实例:是程序,位于用户与操作系统之间的一层数据库管理软件,用户对于数据库的任何操作(DML,DDL)都是在数...

2019-08-11 19:43:24

ELK esrally 压测工具安装使用

ES 是近乎线性扩展的分布式系统,所以可以总结成同一个测试模式:1.使用和线上集群相同硬件配置的服务器搭建一个单节点集群。2.使用和线上集群相同的映射创建一个 0 副本,1 分片的测试索引。3.使用和线上集群相同的数据写入进行压测。4.观察写入性能,或者运行查询请求观察搜索聚合性能。5.持续压测数小时,使用监控系统记录 eps、requesttime、fielddata cache、GC...

2019-06-26 10:07:02

Spring Cloud Feign 基础

Finchley.SR2一、什么是Feignfeign 是一种声明式的web 客户端,可以使用它的注解创建接口,它也支持自定义编解码。Spring Cloud 集成了Ribbon 和Eureka 为客户端提供了负载均衡策略。Feing有两个主要注解: (@EnableFeignClients 用于开启feign功能,@FeignClient 用于定义feign 接口)。二、 引入...

2019-01-29 20:13:40

Spring Cloud F & Spring Boot 2.0 版本升级说明书

Spring Boot 2.0 需要 Java 8 或更高版本。不再支持 Java 6 和 7 了在 Spring Boot 2.0 中,许多配置属性被重新命名/删除,开发人员需要更新依赖版本以下库的最低支持版本已更改:Elasticsearch 5.6Gradle 4Hibernate 5.2Jetty 9.4Spring Framework 5Spring Security...

2019-01-08 18:05:49

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。