自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

熊孩子会撒野

小二,来两斤梦想~

  • 博客(68)
  • 收藏
  • 关注

原创 Token used before issued验签问题

Token used before issued

2022-09-19 19:32:39 821 1

原创 一个奇怪的前端页面加载问题

用户反馈生产环境的一个列表页面加载不出来,这情况大多数出现在列表数据比较大的情况下(由于后端无法分页,故采用的是前端分页),但是切换成无痕模式是正常的。打开F12查看接口响应情况,列表接口没有正常返回数据,状态Status为failed,错误信息是net::ERR_CONTENT_LENGTH_MISMATCH。另外还有一些前端埋点接口因为鉴权失败报的状态码401错误。网上查了ERR_CONTENT_LENGTH_MISMATCH信息,说是什么Nginx的缓存目录已满,但我们已经没有去变更N

2021-10-27 11:40:23 2122

原创 改造Arthas实现容器在线诊断工具(2)

紧接着上一篇继续改造Arthas(3)禁用高危命令Arthas提供了丰富的命令,但由于公司安全规定,有些高级且有风险的命令需要禁止不能使用,比如热更新、加载代码等命令在arthas-core模块com.taobao.arthas.core.command.BuiltinCommandPack类中,初始化了内置提供的所有命令类可以注意到入参为disabledCommands数组,该数组就是定义不能使用的命令列表,不加入到最终的命令数组commands中这个disabledC.

2021-06-26 14:09:11 427

原创 改造Arthas实现容器在线诊断工具(1)

2021-06-26 13:11:51 526

原创 记一次有意思的浏览器乱码问题

今天群里收到大量反馈,对外提供互联网访问的应用的内容展示都乱码了。经过排查发现,发现在内网访问是正常的,而通过互联网访问,用IE浏览器或者火狐是正常的,但用Chrome浏览器访问却是乱码。这就有意思了,不同浏览器的表现还不一样,那应该跟浏览器设置编码格式的方式有关。Chrome浏览器上的内容是乱码,查看其返回的响应头中Content-Type已经设置了编码格式为UTF-8。接着下载Chrome的插件Charset,查看页面的编码格式却为GBK,然后修改页面的编码格式为UTF-8,内容正常显示。.

2021-06-23 00:36:20 508

原创 Docker容器应用文件cp功能探讨

想针对Docker容器的应用实现文件拷贝的功能,主要是想把Java应用的Dump文件拷贝到本地之后进行分析,暂时还没有想到什么好的方案。目前kao'l

2021-06-01 23:33:23 396

原创 聊聊一致性哈希算法的实现

以前看过了解过一致性哈希算法的实现原理,现在真正要用代码实现时,还是有好几个细节需要确定的。假设我们的目标是:有N个节点,新建的资源要均匀分配到这些节点上。另外为了在节点少的情况下让分配更均衡,需要加上虚拟节点的概念。那大概的实现思路是:定义一个哈希算法,定义虚拟节点的副本数为K。首先计算好这N个节点的K个虚拟节点的哈希值,这N*K个哈希值从小到大排序,当新建一个资源,就需要使用相同的哈希算法计算出这个资源的哈希值H。然后根据哈希值H找到是在N*K个哈希值中排在哪个虚拟节点所在位置(即从小到大排序后

2020-05-13 13:09:35 296

原创 解析Java源码文件中所有sql操作(下)

接着上篇解析Xml文件的文章,讲下Java文件的处理思路。2.2 对于Java文件2.2.1 针对jdbc的操作jdbc是在源码上直接写sql语句,类似于下图:public class JdbcDemo { private static final String SQL_SELECT = "" + " SELECT *" + " ...

2019-10-25 16:42:27 257

原创 解析Java源码文件中所有sql操作(上)

最近做了一道题目,记录一下实现思路。题目大概是:目前JAVA程序操作数据库主要通过两种方式:(1)JDBC:直接在JAVA源码中写SQL语句(2)MyBatis:在XML中配置SQL语句或通过注解指定SQL语句输入为一个JAVA源码文件zip包,统计出访问的数据库表名称以及操作类型(SELECT/UPDATE/DELETE), 其中插入insert操作归为UPDATE进行输...

2019-10-23 17:29:28 343

原创 Tomcat连接器与线程池原理及参数释义(2)

紧接着上篇的连接器,现在讲下线程池。二、线程池Executor1. 概念(1)Executor元素代表Tomcat中的线程池,可以由其他组件分享使用。要使用该线程池,组件需要通过executor属性来指定该线程池。没有配置的话,则使用默认的Worker线程池(默认配置下,Tomcat会为每个连接器创建一个绑定的线程池(最大线程数为200),即没有用Executor线程池的话,...

2019-09-04 22:32:46 336

原创 Tomcat连接器与线程池原理及参数释义(1)

最近在组里进行了技术分享,故将网上及官网查找的,统一整理出来。一、连接器Connector1. 概念Connector的主要功能是接收连接请求,并把用户请求包装成标准的HTTP请求(包含协议名称、请求头Head、请求方法是Get还是Post等),创建request和response对象用于和请求端交换数据;然后分配线程给Engine(Servlet容器)来处理请求,并把req...

2019-09-04 19:33:59 444

原创 Ant Design vue 模态框form表单初始值不能动态更新

在用Ant Design vue框架时遇到一个问题,在实现编辑功能时,我们是调用一个模态框modal,调用modal中methods定义的edit方法,然后用initialValue来填充表单的初始值。但后面发现第一次打开编辑modal时,初始值能够正常赋值,当再次打开modal窗口时,表单显示的值还是第一次打开的初始值。代码大概是这样:<template> <a-...

2019-09-04 16:47:27 9271 2

原创 后台重构:基于状态机的事件机制

对于后台业务实现方式的重构,源于目前的业务场景太多太复杂,我们写代码的时候总不免落入“伪面向对象”的方式,以瀑布流的形式一直在原来的业务代码上叠新的代码,创建不同的分支。导致每提一个小需求,就要在各个地方去增加代码,而且还会遗漏,并且代码的质量难以维护。出于这样的困境,我们想将现在实现的业务场景进行高度抽象和归类,很多业务代码,无非是对数据状态的变更。比如一条数据A,在业务场景A下,只是从状态...

2019-05-10 11:00:39 1141

原创 MyCat批量insert的问题

目前在用MyCat做批量插入时,写数据失败,报错信息如下:The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.批量insert的实现方式:修改前:insert into t...

2019-03-07 15:08:54 4202

原创 dubbo Duplicate spring bean id的问题解析

近期,项目微服务开始提供RPC服务,微服务之间改为dubbo调用。本地开发调试时,服务提供方和服务消费方都能正常启动,验证通过。对于消费方,在bean的xml文件声明服务消费的引用方式:&lt;dubbo:reference id="operationWaybillService" interface="com.demo.service.OperationWaybillService" ...

2019-02-22 10:03:01 17009 4

原创 编程比赛题目:亿级流量实时分析(第二天)

虽然第一天的比赛里,我们用ELK成功对日志文件进行解析,并用可视化界面展示数据。但我们不想只限于“搭环境比赛”,而且从第一天的情况来看, ES的性能在有效的资源下已经有点撑不住了。所以决定今天开始自己造轮子。 再次分析题目,其实比赛要的是某时间段某源IP、目标IP、请求URL的统计数据,对具体的数据明细并不关心。故我们打算自己写个Agent脚本,读取日志文件,通过socket传输给Se...

2019-01-09 21:14:39 234

原创 编程比赛题目:亿级流量实时分析(第一天)

跌跌撞撞闯进了决赛,乍一看这题目有点唬人。 题目主要是:网关上会有很多业务请求,需要实时或近实时采集网关请求日志,指标包括:请求频率、平均响应时间、90%响应时间、最大响应时间、请求正确率等。每个组有固定的虚拟机资源(内存8G-CPU4C-磁盘150G),一共6台,其中2台为日志生成节点,上面部署有模拟网关的服务器,不断地生成日志文件到指定目录下,日志文件数量固定,文件写满就会覆盖...

2018-12-26 20:54:17 257

原创 编程比赛题目:提高页面加载速度

没想到接近年底了,12月份还是那么忙,一直没有腾出时间来写文章。刚好最近在参加公司内部的一系列比赛,趁机整理一下学到的东西吧。 本关比赛的题目是抽取了公司内部的一个新项目,主要是展示各种创新作品,其中有个文章内容模块,由于文本内容很多,而且还包含了大量图片。同时由于采用了富文本编辑器,会存储大量的样式标签。最终的结果是查询作品的详情接口很慢,前端体验的效果很差。另外希望富文本编辑器能够...

2018-12-23 14:56:06 183

原创 记一次MyCat因Spring事务未回滚而应用故障的生产问题

最近生产环境出现一个问题,某张表里的primary key主键出现了重复冲突(duplicate key),应用层抛出了异常,但应用的其他不相关功能也受到了影响,比如查询数据失败。按道理,这属于不同事务之间的功能,应该不会受关联影响。 查看代码,spring.xml已经配置了事务管理器,对所有insert开头的插入方法增加了事务处理:&lt;tx:method name="inser...

2018-11-28 23:29:19 1854

原创 《分布式服务架构 原理、设计与实战》综合3

================================== 请看上篇 =================================== 第7章 服务的容器化过程1.容器和虚拟化的区别(1)容器是对应用层的抽象,它把应用程序的代码和相关依赖打包在一起执行,多个容器可以在同一台物理机上互不影响地独立运行,并且共享操作系统内核,启动非常快,占用的空间非常少,一般也就十几兆...

2018-11-19 20:16:51 359

原创 《分布式服务架构 原理、设计与实战》综合2

==============================请看上篇=================================== 第4章 大数据日志系统的构建1.日志分类(1)按产生的来源:系统日志、容器日志、应用日志(2)按应用目标:性能日志、安全日志(3)按级别不同:调试日志、信息日志、警告日志、错误日志 2.对于计数器日志、响应时间日志、异常日志,方...

2018-11-19 18:26:18 393

原创 《分布式服务架构 原理、设计与实战》综合1

=========================== 开篇有讲 ============================这本书算是《可伸缩服务架构 框架与中间件》的捆绑作品,具体可看我之前写的几篇文章:《可伸缩服务架构 框架与中间件》综合1《可伸缩服务架构 框架与中间件》综合2《可伸缩服务架构 框架与中间件》综合3《可伸缩服务架构 框架与中间件》综合4 这书以分布式微...

2018-11-19 14:46:51 410

原创 再遇《穆斯林的葬礼》

几年前读过《穆斯林的葬礼》,但不给力的记忆能力,让我对这本书留下的唯一印象是,故事好看,仅此而已。多年之后再次读阅,一方面是为了摆脱周末被手机牢牢绑架的困境,另一方面为了找回“故事好看”的印象背后,触动内心的情节。书中围绕着两条故事主线轮流讲诉,一边是“玉”,由盛至衰,另一边是“月”,从圆变缺。故事里总是充满着各种各样的悲情,韩子奇的一生与玉紧密相连,因为玉而养家糊口、声名显赫,也因为玉而...

2018-11-05 22:30:02 359

原创 DevOps国际峰会2018深圳站 会议学习

虽然周六有事,但还是抽了上午的时间去参加了DevOps国际峰会2018深圳站,毕竟还是自己掏了钱买了门票的,不舍得不去。会议上绝大多数都是与DevOps自动化运维相关的,自己更感兴趣的还是其中那个关于架构主题的。 有个人的演讲比较有意思,名叫《微服务:过早拆分是万恶之源》。主要是讲由于业务规模的扩大、业务场景的复杂度,应用会由一开始的单体,拆分为多个微服务。而在这个改造的过程中,有一些...

2018-11-05 21:57:36 765

原创 《可伸缩服务架构 框架与中间件》综合(4)

=========================请看上篇================================ 第7章 RPC服务的发展历程和对比分析1. RPC采用客户端/服务端模式,请求程序就是一个客户端,服务提供程序就是一个服务端。RPC是构建在语言级之上的,是跨语言的,它在OSI七层模型中介于会话层和表示层之间。 2. RPC实现透明的远程过程调用的重点...

2018-10-18 18:48:08 261

原创 《可伸缩服务架构 框架与中间件》综合(3)

==================================请看上篇======================================== 第5章 大数据利器之Elasticsearch1. Lucene底层是基于Lucene实现的,其基于倒排表的设计原理,采用了分段的存储模式,使它在读写时几乎完全避免了锁的出现,大大提升了读写性能。 2. 分段存储(...

2018-10-09 22:08:54 331

原创 《可伸缩服务架构 框架与中间件》综合(2)

=================================请看上篇====================================== 第3章 轻量级的数据库分库分表架构与框架1. 分库分表的定义(1)垂直拆分根据业务的维度,将原来的一个库(表)拆分为多个库(表),每个库(表)与原有的结构不同。这种方式除了用于分解单库单表的压力,也用于实现冷热分离。1》...

2018-10-09 21:00:43 379

原创 《可伸缩服务架构 框架与中间件》综合(1)

    =======开篇吐槽:最近一段时间刚好碰上中秋国庆双节,而且工作任务繁重,基本很难保证有时间来写文章了=======       《可伸缩服务架构 框架与中间件》与《分布式服务架构 原理、设计与实战》是要配套捆绑着看,这营销手段,服。       这书主要介绍了在分布式系统中常规用到的一些框架组件,比如分布式ID、消息队列、缓存、RPC框架、ES等。书中大部分内容的作用更多的...

2018-09-27 09:59:35 463

原创 如何设计一张事件记录流水表(版本2)

在设计完 版本1的事件记录表 后,大家就开始马不停蹄写代码去新增事件记录数据。 版本1:事件表 流水ID id 对象ID obj_id 系统编码 sys_code 网点编码 area_code 操作者工号 operator_id 源...

2018-09-12 11:55:43 3841

原创 如何设计一张事件记录流水表(版本1)

        目前新功能在试点范围内上线试用,业务关心新功能的试用情况,需要对生产数据进行统计和汇总,以便跟旧功能在流程上做一些比较分析。我们需要配合的是,跟大数据团队一起,提供几个数据基表,其中要有一张表,能够记录新功能的全生命周期。       统一抽象来说,解决的是:       谁(Who)什么时候(When)以什么身份(Role)在什么地点(Where),对什么东西(What)...

2018-09-07 12:05:00 7715

原创 深挖Openstack Compute HA(3)

在测试HA方案时,会用到很多CLI命令去查看当前节点的状态和信息。其中有一些经验总结,如下:1. 相互疏散的节点是Status为enabled的computer节点2. Computer节点为disabled时,将不会有新的VM实例调度过去3. 测试关机状态    就是在物理机上关闭电源,从而所有网络都是不通的4. 当所有网络都不通时,该如何处理?    就是会选择不到任何...

2018-08-25 12:36:44 1374

原创 《笑场》有点意思

       最近想看点别的书,自己一直喜欢看随笔,于是搜了搜,找到了这本《笑场》。如果不是因为那部脱口秀节目,还真不知道作者还出过书。       “未曾开言我先笑场,笑场完了听我诉一诉衷肠”,书名的由来,就宣誓了接下来书中内容的随性和带点惆怅。书中附带一小册《扯经》,主要讲遗寺师徒二人的幽默生活。每一段小对话,貌似很生活百态,却总能映射到自己的内心世界里,也反映着平日的交流风格和思考方式。...

2018-08-22 09:09:36 1041

原创 深挖Openstack Compute HA(2)

================================= 紧接着上篇 HA(1) ==================================== 接下来继续讲第二大模块:[实例疏散]       在PING模块中如果获取到计算节点中只要有任何一个网Ping不通,就会根据不同的网络状态进行组合,执行相应的疏散操作,让出故障的计算节点上的实例能够快速在另外一个计算节...

2018-08-20 21:00:05 572

原创 深挖Openstack Compute HA(1)

       OpenStack在计算节点HA(High Available,高可用)上一直没有成熟且可靠的方案,碰巧项目中有遇到这种HA的功能需求,故尝试着做一个这种方案,以便能够实时保障用户的实例安全、持续可用,当节点发生故障时,影响情况对用户透明。       所以我们的方案是,及时监测计算节点的状态,当节点发生故障时将实例进行疏散,将原节点的实例转移到另外一个新节点上重新运行,保证实例...

2018-08-20 20:29:58 1162

原创 《长日将尽》小感

        自从听到了前领导的读书推荐,便心痒痒地网购了几本书,其中一本便是,《长日将尽》,英籍日裔小说家石黑一雄的作品。        书到手后有点纠结,没想到是台版,繁体字,文字由上至下,从右往左。但屈服于自己的阅读强迫症,旁边放着一本一直不读的书,内心总不舒服。还好自己有早到公司的习惯,十点上班前,是属于留给自己内心的时间。吃着早餐,摊开书本,赶着这一时刻的宁静,把故事读完。  ...

2018-08-08 09:57:06 590

原创 重构 - 分布式ID设计方案

分布式ID的生成方案有很多种,在网上都可以搜到。在这里详细介绍一下我们目前项目所用到的实际方案。 一. ID值获取及表结构设计(1)获取ID值的接口获取唯一ID的接口方法是由我们一个基础功能微服务提供,URL如下:&lt;IP&gt;:&lt;Port&gt;/sequence/getSequence 请求参数为:String prefix(ID值的类型,一种类型对应ID值...

2018-08-07 18:30:37 466

原创 Mysql的奇淫怪技

在项目开发的过程中,包括测试人员提出的一些bug,慢慢总结出一些Mysql的使用经验。1. decimal类型的字段总长度包括了精度长度。比如decimal(10, 2),则表示小数点左边为8位,右边为2位。decimal类型字段常用于存储精度要求高的数字。 2. 字段默认不区分大小写。测试跟我说,产品名判断是否重名时有bug,不能区分大小写。存在名为test的产品,再取TES...

2018-07-24 09:23:07 426

原创 重构 - WebSocket Session共享

最近在做消息中心模块,想要实现消息实时推送到前端页面展示,直接摒弃了前端定时轮训调用接口来获取消息数据的方式,采用了WebSocket服务端推送。流程是首先前端跟后端应用新建一个连接,并携带当前登录的用户ID,此时WebSocket会创建一个WebsocketSession来唯一绑定该连接,我们会在后端用Map建立用户ID与Session的映射关系:Map&lt;String userI...

2018-07-18 15:16:30 6420 6

原创 捣鼓nsq - 安装和运行

【学习新东西,最好先成功运行一个demo,这样才有研究下去的信心和动力。】 1. nsq安装下载地址: http://nsq.io/deployment/installing.html 目前的稳定版是V1.0.0-compat,由于在window平台上安装,所以选择: nsq-1.0.0-compat.windows-amd64.go1.8.tar.gz下载之后解压到某...

2018-07-17 09:00:06 1940

原创 深挖Openstack keystone - 源码分析(1)

一.  Policy策略Policy机制就是用来控制某一个User在某个Tenant中某个操作的权限。对于Keystone服务来说,policy就是一个json文件,默认是/etc/keystone/policy.json。{    "admin_required": "role:admin",    "cloud_admin": "rule:admin_required and d...

2018-07-17 08:57:09 1272

空空如也

空空如也

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

TA关注的人

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