自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kafka producer写入优化

目录提出需求环境信息测试系统,寻找问题Kafka producer 写入原理Producer 参数ACKS 参数Producer send 方法调用结果Note参考文献提出需求由于线上的接口是暴露给外部用户使用,外部用户付费接入,产品经理提出了需求,需要在公司内部做重新数据清洗的时候尽量减少对外部用户数据更新的影响,当前更新数据需要耗费24个小时左右,产品经理提出12小时是可接受的,于是针对当前的调用链路逐一排查,寻找问题.环境信息所有服务基于AWS公有云部署,producer部署在ECS上 1C

2022-02-21 23:10:23 1440

原创 使用AWS DMS 升级Postgre 10到12

Postgre 是经常被用到的关系型数据库,本文将详细介绍在AWS云端升级Postgre版本的方案为什么需要升级?新的数据库版本有新的功能特性,AWS和开源团队对于每个特定的版本提供有限时间的技术支持,超过技术支持时间后,没有技术支持将会造成安全及系统风险,所以为了避免潜在的风险,需要在当前版本停止支持之前升级到比较新的版本.每个版本对应的官方维护时间PostgreSQL: Versioning Policy升级方案选择升级方案主要分为两类, in place 和 out of pl..

2021-10-24 21:26:49 463

原创 vim基本操作练习

参考书籍<linux系统命令及shell脚本实践指南>多行编辑在一般模式下ctrl+v 多行块选中v 选中选中之后可以使用y 复制, d 删除, p 粘贴多文件编辑touch test1 test2 创建两个文件echo “aaa” > test1echo “bbb” > test2vim test1 test2 同时打开两个文件默认打开第一个test1切换到test2 :n从test2 切换到test1 :N使用vimtutor功能hjkl 对应 左

2021-01-06 21:55:21 597

原创 k8s自定义指标HPA实践(微服务基于自定义指标自动扩缩容的实践)附demo

先上demo代码仓库https://github.com/wentjiang/prometheus-HPA-test自动扩缩容的使用场景在开发微服务时,我们会有一些请求量突增的场景,举个例子,快上下班的时候,大家都需要签到签退,那么签到考勤,那么对于考勤服务,在上下班的时候,会出现流量激增的情况,一种解决方法是,我们将服务的数量启动到能满足峰值的情况,这种情况会产生不必要的资源浪费,那么,怎么样才能解决该问题呢?作为云原生时代最重要的基础设施,k8s为我们提供了HPA(Horizontal Po

2020-12-25 22:53:58 3264

原创 DDD(Domain-Driven Design)领域驱动设计-(三)命令风暴&寻找聚合

回顾上文我们讲了事件风暴,找出了系统中所有的事件,都通过"something has been done"的形式描述,如"填空题被创建"等DDD整体的三个阶段是第一阶段:战略设计 ->行为模型第二阶段:战术设计 ->领域模型第三阶段:实施落地 ->实现模型命令风暴什么是命令命令是领域事件触发的动作,被执行之后,创建领域事件命令触发的原因有哪些?用户外部系统定时任务事件...

2020-08-05 21:57:49 933

原创 DDD(Domain-Driven Design)领域驱动设计-(二)事件风暴

本节及后边的章节都以实际的例子进行描述题目如下:什么是领域事件事件风暴中的事件特指领域事件,是领域专家关心的事件,业务上真实发生的事,这件事有业务价值

2020-07-28 22:46:47 853

原创 DDD(Domain-Driven Design)领域驱动设计-(一)整体概述

前言最近公司通过8节课组织了DDD培训,在此以系列文章作为总结,本篇文章主要介绍DDD整体概述什么是DDD?(领域驱动设计)传统架构方式如果对于传统的web开发比较熟悉的同学一定会了解传统的三层架构,既controller层,service层,dao层,传统的软件架构能够解决业务中的实际问题,但是对于复杂多变的业务场景,很多时候会发现,业务是一团乱麻,在现有系统中扩展功能会难以扩展,或者业务的扩展导致其他业务的不可用DDD的定义DDD经过这些年的发展,已经成为了一个业务与技术结合,架构适应业务

2020-07-12 22:31:28 429 2

原创 Alluxio2.X简要介绍

本文基于将alluxio 2.X集成到大数据发行版的经验,从各个方面介绍alluxio什么是alluxio?alluxio是一个以内存为中心的分布式虚拟存储系统为什么需要alluxio?借用官网的一张图来说明最主要有两点功能:在数据分析系统和底层存储之间架起桥梁,alluxio像胶水一样,将不同的底层存储用统一的接口统一暴露给上层的计算引擎,起到了一个文件系统gateway的作用内存优先的分布式架构,领先其他方案数量级的差别,alluxio支持多级缓存,优先使用内存缓存,同时也可以设置ss

2020-06-11 21:59:44 344

原创 docker本地构建kerberos单机环境

kerberos简介众所周知,kerberos是大数据环境下最常用的安全通信的保障机制,是一种网络协议本文不涉及kerberos原理,只涉及docker搭建kerberos环境打包docker镜像FROM centos:7RUN yum install -y krb5-server krb5-libs krb5-auth-dialog krb5-workstationCMD ["/...

2020-03-23 22:07:34 3105 8

原创 hive on tez集成完整采坑指南(含tez-ui及安全环境)

hive on tez 介绍使用版本hadoop 3.1.1hive 3.1.0tez 0.9.2timeline v1安装过程注意点官网上文档并不能完整的搭建,需要参考源码中的文档部分配置官网文档没有写出来,需要查看源代码排查前置条件hadoop安全集群hive已安装tez搭建tez打包编译tez需要根据hadoop环境的版本,使用对应的脚本编译生成对应的...

2020-03-10 23:18:47 10853 10

原创 hive实战读书笔记(第9章)Hive性能优化

hive用户面临的一个比较大的问题是,用户需要等待较长的响应时间,与传统关系数据库查询的性能相比,hive响应速度慢的令人发指本章介绍一套诊断改进hive查询性能的系统方法,通过这个过程,将单个hive查询的执行时间从475秒缩短到49s执行引擎hive目前支持3种执行引擎,每种引擎都各有优缺点,默认的引擎由hive-site.xml文件中的hive.execution.engine属性控制...

2019-12-25 22:21:20 510

原创 hive实战读书笔记(第4章)hive表DDL

schema-on-readhadoop提供了存储和处理任何结构化,半结构化,非结构化数据的能力,hive允许用户在这些数据上创建一个元数据层,并使用sql接口来访问该层.hive并不是一个数据库,而是一个友好的接口,可以查询hdfs上的底层数据文件,是一种读取数据的模式,因而叫做schema-on-readhive的数据模型hive的数据模型与关系型数据库非常类似,由表,列,行和分区组成...

2019-12-23 22:43:36 306

原创 jupyter kernel添加使用和配置

jupyter是一个交互的python开发工具,今天终于将这个环境能够流畅的用起来了为什么使用jupyter notebook?交互式的界面,每一步的结果都能保留,即算即用网上的各种教程,很多都使用jupyter做的,是一个必备工具在一个jupyter下如何使用多个python环境呢?手动的一个一个添加虚拟环境到jupyter中首先需要创建虚拟环境,如何创建可以参考 https:/...

2019-12-08 17:34:27 874

原创 离线计算框架MapReduce

mapreduce2与mapreduce1的对比MapReduce基本构成组件ContainerAllocator:与ResourceManager进行通讯,为MapReduce作业申请资源ClientService:由MRClientService实现了MRClientProtocol协议,获取作业状态,控制作业Job:表示一个MapReduce作业,维护了作业状态机Task:表示...

2019-12-04 17:43:11 552

原创 机器学习基础-朴素贝叶斯分类

贝叶斯定理可以将公式改写为c表示一个分类,f表示属性对应的数据字段这里举个例子,c代表苹果,f代表红色P(苹果|红色)=P(红色|苹果)XP(苹果)/P(红色)通过苹果是红色的条件概率可以得到红色是苹果的条件概率通过先验概率可以算出后验概率一个果子是苹果的概率为0.3 P(c)=0.3一个果子是红色的概率为0.2 P(f)=0.2苹果是红色的概率...

2019-11-28 11:30:36 539

原创 机器学习基础-概率和统计基本概念

记录概率和统计相关的概念和基础知识总体来说概率和统计是互逆的:概率根据数据生成的过程进行建模,研究某种模型产生的数据有什么特性,统计学正好相反,通过已知的数据,来推导产生这些数据的模型是怎样的概率:是描述可能性的一个数值随机变量:描述事件可能出现的所有状态,分为离散随机变量和连续随机变量概率分布:描述每种状态出现的可能性,随机变量X表示小球的颜色,100个球中红色20个,蓝色40个,...

2019-11-27 21:44:47 402

原创 机器学习基础-线性代数学习

记录线性代数学习中的各个概念向量和向量空间标量:是个单独的数字,不能表示方向向量:也可叫做矢量,一组数字,有序排列,可以用数组或者链表表示特征向量:物体的特征有很多维度衡量,我们可以用向量表示物体的特征,向量的每个元素代表一维的特征,元素的值代表了相应特征的值矩阵特征向量:矩阵的几何意义是坐标变换,如果矩阵存在特征向量和特征值,矩阵的特征向量表示了他在空间中最主要的运动方向...

2019-11-26 21:31:27 244

原创 一文读懂python本地开发环境配置

python和java包管理的不同javajava需要安装jdk,我们通常使用maven进行包管理,有中央仓库,有本地仓库,项目优先从本地仓库拉取,拉不到会从远程仓库拉取,所有项目用到的包都会放在本地仓库,需要使用的时候在本地拉取即可,高版本的jdk向前兼容,jdk8的编译器可以编译成1.7的版本pythonpython与java有很大的不同,由于python为解释执行,没有了编译...

2019-11-24 19:39:28 478

原创 hadoop3.1集成tez和tez-ui

一.搭建hadoop第一步搭建好hadoop3.1版本,参考官方教程一步一步实现就好;https://hadoop.apache.org/docs/r3.1.2/hadoop-project-dist/hadoop-common/SingleCluster.html这里需要注意对应的hadoop版本,每个版本可能会有一些差别二.tez安装1.编译tezhttp://tez....

2019-11-19 09:20:55 3904 8

原创 脚本清理maven项目打包残留文件,节省磁盘空间

由于公司给配置的电脑是256G的macbookpro,本机硬盘已经捉襟见肘了,想到工作以来的java项目非常多,很多都是本地打包启动之后,从来没有进行过清理,遂想到使用python写个简单的脚本脚本如下# coding=utf-8# 清理对应目录下的所有java程序由于maven打包造成的垃圾,# 遍历目录,有pom文件的目录执行mvn cleanimport osimport...

2019-11-15 17:13:35 589

原创 hbase1.3版本启动流程及优化

由于线上集群有上千台机器,启动时间在30分钟左右,需要对启动流程进行优化,阅读了hbase启动相关的源码,首先,hbase启动分为需要三个组件,hmaster和regionserver,zookeeperhmaster:在启动过程中主要负责region分配给那个regionserver,regionserver:会将regionserver分配过的的region初始化到能够提供服务...

2019-11-08 14:31:23 347

原创 HBase远程调试

在做web开发的时候,我们很容易的能够搭建本地环境进行debug调试,但是对于大数据系统来说,本地调试变得不太现实,我认为主要是由两个原因导致的:1.依赖的组件太多,比如,hbase就需要依赖zookeeper及hdfs;2.系统启动需要配置的环境变量及初始化所做的操作比较多;那么我们如何对大数据系统进行调试呢?以下以hbase作为示例首先需要java环境,搭建好hadoop,...

2019-11-05 20:12:42 392

原创 mac下virtualbox虚拟机centos联网问题

由于要搭建大数据的环境,尝试使用docker搭建了单节点的hadoop&hive环境,在使用tez时一直有问题,后边再解决这个问题,想到可能是使用docker搭建的问题,所以使用虚拟机搭建进行尝试,搭建的过程中又遇到了网络连接的问题,之前解决过几次,这次记录下来;正常步骤安装好centos7之后是没有网的,默认有一张nat的网卡,学过计算机网络的同学都知道nat是网络地址转换,将虚...

2019-10-24 20:30:28 618

原创 sentinel的资料整理

sentinel简介主要分为核心库和dashboard核心库不依赖dashboard使用步骤1.定义资源2.定义规则3.验证规则是否生效定义资源的方式1.主流框架支持主流框架适配2.自定义方式支持 // 1.5.0 版本开始可以利用 try-with-resources 特性 // 资源名可使用任意有业务语义的字符串,比如方法名、接口名或其它可唯一标识的字符串...

2019-08-26 18:37:58 631

原创 skywalking调研相关资料整理

apache 官方页面http://skywalking.apache.orggithub主页https://github.com/apache/skywalking关闭插件的方式:plugins目录下删除对应的jar包支持的config修改https://github.com/apache/skywalking/blob/2e846c6078/docs/en/set...

2019-07-07 15:17:45 681

翻译 pinpoint agent性能优化方面官方文档翻译

文章源地址https://naver.github.io/pinpoint/techdetail.html#optimizing-performance-of-the-pinpoint-agentpinpoint agent 的性能优化最后我们将介绍怎样去优化pinpoint的agent用二进制的格式(Thrift)你可以使用二进制的格式化(Thrift)提升转码速度,尽管这是...

2019-07-02 10:51:21 879

原创 top结合jstack处理线上cpu飙升问题

java程序线上运行时,出现cpu过高的情况如何进行定位呢?记得刚参加工作的时候,老同事留下的一个项目,出现了cpu100%的情况,后来检查代码发现,之前的同事在写这块的时候,没有考录到多线程并发的问题,有个定时器偶发的多线程情况下同时写入同一个hashmap,导致cpu爆表我们写一个小demo进行演示首先准备一段java示例代码:public class Test{ publ...

2019-06-30 11:10:45 462 5

原创 skywalking与pinpoint全链路追踪方案对比

由于公司目前有200多微服务,微服务之间的调用关系错综复杂,调用关系人工维护基本不可能实现,需要调研一套全链路追踪方案,初步调研之后选取了skywalking和pinpoint进行对比;选取skywalking和pinpoint对比的原因是:两者都使用探针(agent)技术进行信息采集,集成到项目内时不用修改业务代码,避免造成后期难以推进的问题;以下是进行的一些维度的对比,主要从功能性需求...

2019-06-30 09:49:33 2767 1

原创 docker中不能读取带"."环境变量的问题

问题描述:打包的docker镜像,启动时使用docker run -e 参数添加环境变量时,环境变量名称中包含".",有时能在环境变量里获取到,有时不能在环境变量里获取到;由于linux设置环境变量的规范中,不允许带".",但公司老的内部java框架中使用了读取带"."的环境变量做配置,所以需要解决该问题;复现方法:先打包基础的docker镜像:Dockerfile如下F...

2019-05-31 00:14:08 2616 3

原创 ServiceLoader用法demo

我们经常在写代码的时候用到接口,一个接口可以有不同的实现,在spring中,可以使用注入类名或对象名来指定注入对象,在一个大型项目中,有可能有一批接口,接口的实现封装在jar包中,我们需要将jar中的实现类,创造出来,供我们动态的使用,这个时候,怎么能动态的,并且将这些类不耦合的创造出来呢?java1.6之后提供了ServiceLoad类供我们使用;简单的来说,serviceL...

2019-04-07 23:06:11 1337

原创 并发模式之Future模式

当我们调用一个方法的时候,这个方法可能会执行的很慢,常规的做法是,等待这个很慢的函数执行完成之后,再进行下一步的操作;Future所应对的场景:当执行较慢的函数返回的结果并不是实时调用,而是随后再使用时,我们可以先通过Future模式,让其执行,真正使用时才去获取结果值,或者阻塞;其中涉及到几个概念:Main      系统的调用者,当前执行的主函数Client     返回Fut...

2018-10-09 21:42:25 165

原创 spring cloud gateway Unhandled failure: Only one connection receive subscriber allowed.

https://gist.github.com/WeirdBob/b25569d461f0f54444d2c0eab51f3c48ToUppercaseGlobalFilter.javahttps://github.com/spring-cloud/spring-cloud-gateway/issues/135spring cloud gateway 重写request body 或者...

2018-09-27 09:30:34 1055

原创 web开发中的跨域问题

一.为什么会有跨域问题?1.浏览器限制2.跨域域名,端口,协议任意一个不相同;3.XHR(XMLHttpRequest)请求 满足以上三个条件才会触发跨域,任意一个不满足就不算是跨域;二.解决跨域问题的方法针对上边三中种方式,让其不满足上边的条件即可;1.浏览器解除安全设置,这种方式需要修改客户端的浏览器,另外此种方式也不安全,不方便也不建议这样设置;2.将...

2018-08-05 22:06:51 361

原创 web后端http协议使用过程中安全防范及https协议实现原理

最近部门在进行对外暴露接口http协议向https协议转换上大学时,学习过计算机网络,包括https协议,https是在http(HyperText Transfer Protocol)协议的基础上,增加了ssl(Secure Sockets Layer)http协议http协议在网络上明文传输,容易被他人盗取信息,篡改信息等,在http协议上可以增加一些防护措施及实践中常用的一些技巧...

2018-08-02 10:42:18 2075

原创 Apache AB 性能测试

上篇介绍了jmeter性能测试工具,本文介绍一个更加简单的测试工具 Apache AB性能测试;还是使用上文的测试链接http://localhost:8111/index/hello?name=wentjiang,安装apache服务器,因为AB测试功能是Apache服务器所带的一个测试工具;执行命令为:ab -n 100 -c 10 http://localhost:8111/index/he...

2018-07-15 20:39:13 303

原创 jmeter性能测试实践

通常进行web开发都需要进行性能测试,以保证线上系统稳定性,测试可以由测试人员进行,开发者也需要掌握相关技能以下为jmeter的简单使用;官网地址: https://jmeter.apache.org/下载之后,解压到任意目录,目录结构如下bin目录下有对应的启动脚本;打开命令行输入启动脚本,主界面jmeter友好的支持中文,我们可以在选项里边直接选择中文;最主要的功能当然是测试了,在此使用spr...

2018-07-15 20:33:31 247

struts API chm文档

struts没有官方的帮助文档,在这里提供一个,方便大家使用

2015-05-02

空空如也

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

TA关注的人

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