python
Java架构师课代表
java架构大数据每天分享干货
展开
-
ES中的动态映射和动态模板
为了方便演示和切换 ES 地址,在 ~/.bashrc 中添加如下变量和脚本:ES=localhost:9200escurl () { curl -H 'Content-Type: application/json' "$@";}复制代码Elasticsearch 具有非常强大的动态性和灵活性,例如当向一个不存在的索引添加文档时,会自动创建该索引,例如:$ escurl -XPUT $ES/my_article/doc/1?pretty -d '{ "title": .原创 2020-10-10 16:37:47 · 1243 阅读 · 1 评论 -
Go发起HTTP2.0请求流程分析(后篇)——标头压缩
阅读建议这是HTTP2.0系列的最后一篇,笔者推荐阅读顺序如下:Go中的HTTP请求之——HTTP1.1请求流程分析 Go发起HTTP2.0请求流程分析(前篇) Go发起HTTP2.0请求流程分析(中篇)——数据帧&流控制回顾在前篇(*http2ClientConn).roundTrip方法中提到了写入请求header,而在写入请求header之前需要先编码(源码见github.com/golang/go/b…在中篇(*http2ClientConn).readLoop方法中提原创 2020-09-21 14:05:06 · 566 阅读 · 2 评论 -
3分钟短文:说说Laravel页面会话之间的数据保存Session用法
引言我们知HTTP请求是没有状态的,两个请求之间没有直接的关联关系。但大多数情况下, 我们需要保持用户的会话间数据的连续性,这时,为了数据安全起见, 有必要在服务器上临时存储一些上下文数据了。这就是 session 设计的目的。代码时间在laravel中可以使用系统提供的Session类方便地操作会话数据,而且其存储介质也是抽象出来的, 可以无缝衔接,只是驱动更换一下罢了。框架内Session支持的驱动类型如下:file 存储在 storage/framework/sess.原创 2020-09-19 13:33:17 · 361 阅读 · 0 评论 -
一次年轻代GC长暂停问题的解决与思考
问题描述公司某规则引擎系统,在每次发版启动会手动预热,预热完成当流量切进来之后会偶发的出现一次长达1-2秒的年轻代GC(流量并不大,并且LB下的每一台服务都会出现该情况)在这次长暂停之后,每一次的年轻代GC暂停时间又都恢复在20-100ms以内2s虽然看起来不长,但是对比规则引擎每次10ms左右的响应时间来说,还是不可以接受的;并且由于该规则引擎响应超时,还会导致出单超时失败问题分析在分析该系统GC日志后发现,2s暂停发生在Young GC阶段,而且每次发生长暂停的Young GC都会伴原创 2020-09-17 20:42:20 · 480 阅读 · 0 评论 -
快速理解golang标准库flag包
flag包概述flag包实现了命令行参数的解析flag包的工作流程基本分为三步:注册flag,主要用flag.String(), Bool(), Int()等函数注册flag,或者用flag.BoolVar(),StringVar(),IntVar()等函数把flag绑定到变量. 解析flag,使用flag.Parse()函数解析在命令行使用了的flag。 最后根据命令行输入的flag处理逻辑通过一个栗子感受一下package mainimport ( "flag"原创 2020-09-16 15:48:17 · 655 阅读 · 0 评论 -
讲的这么细,这下你应该理解ThinkPHP的Loader自动加载了
想了很久终于要开始系列文章的编写了,期望是写出提升和面试都可以搞定的系列文章。 当你看到本文时,如果你发现咔咔没有编写到的面试热点问题或者技术难点,期待评论区指出,一起完善。前言目前在整理PHP进阶路线图,如有好的建议咔咔会第一时间进行收录。一、自动加载loader源码分析1-1 学习目标 类的自动加载 类自动加载的俩种方式 spl_autoload_register必须会使用 实现自定义文件的类的自动加载 1-2 Composer加载从上.转载 2020-09-16 13:55:36 · 546 阅读 · 0 评论 -
Oh! Binlog还能这样用之Canal篇
背景不知道是否你还在为下面的问题而困扰:•当你使用了redis或者其他中间件做缓存的时候,经常发现缓存和数据库的数据不一致,只能通过定时任务或者缓存过期的方式去做一些限制。•当你使用了ES做搜索工具,使用双写的那一套方法,还在为ES和数据库不是一个事务而担忧。•当你需要迁移数据的时候,也还在使用双写的方法,如果是同一个数据库的还好,如果是不同数据库就不能保证事务,那么数据一致性也是个问题,就会写很多的修复Job和检查Job。这些问题相信在很多同学的业务当中应该都遇到过,也可能因为这些问题常常增加原创 2020-09-15 15:59:57 · 535 阅读 · 0 评论 -
程序员你如何检查参数的合法性?
背景大部分的方法和构造函数对传入的参数值有一些限制,比如:常见的索引值必须是非负数,对象引用不能为空。你应该使用清晰的文档来标注所有的这些限制,然后在方法体开始的地方强制他们检查。应该在错误发生的时候尽快的检查出来,这是基本原则。如果你不这么做,当错误发生的时候,错误将不会被检测出来,这让定位错误的源头变得更困难。如果一个非法参数传递到一个方法中,在方法执行前进行了参数检查。它将会快速失败,并给出清晰的异常信息。如果方法没有检查参数,下面这些事情会发生。程度 说明 糟糕原创 2020-09-15 15:56:46 · 338 阅读 · 0 评论 -
Oplog4j - 基于Spring的通用操作日志生成工具
作为一个JAVA程序员, 都应该了解操作日志的需求吧? 这里介绍一个快速实现类似操作日志, 审核日志等审查功能的开源工具oplog4j.实例先来看一个OpLog4j生成的操作日志实例. 为了便于查看, 这里对内容做了格式化, 还添加了一些注释说明. 开发者可以根据这个实例的内容判断OpLog4j是否能满足产品的需求.//以下内容是基于一个单元测试中, com.github.djbing85.model.DefaultOpLog的真实输出summary: update user info //原创 2020-09-15 15:30:43 · 668 阅读 · 0 评论 -
3个最常用的redis可视化客户端
1.Redis Desktop Manager(简洁,个人觉得新版本太卡了,一直用老版本)2.Redis Studio(比RDM更轻便,但连不上之后加载不出节点)3.RedisClient(和上面一样,连接之后加载不出数据节点)所以好像除了RDM没有更好的选择了,当然一般人用指令也就够了...原创 2020-09-14 19:43:15 · 666 阅读 · 0 评论 -
ArrayList源码学习
List是一个线性结构的容器,其中实现类ArrayList底层是一个Object数组,它可以根据元素个数自动扩容,也使用到了泛型。相比于List的另一个实现类LinkedList:底层是一条链表。ArrayList具有数组的优点:可以根据数组下标直接访问元素。但是由于数组大小不可更改,所以ArrayList在增加元素、删除元素时会有额外的复制数组的开销。 LinkedList是一条链表,它没有下标,在查找元素的时候,总是从表头开始寻找,效率较低,但是增加、删除元素的时候,只需要更改几个指针的指向就可以原创 2020-09-14 14:41:55 · 126 阅读 · 0 评论 -
「easy Backend」掌握HTTP请求的精髓
http请求过程网上有很多博客写的很详尽也总结的很好,本文更多地面向前端来浅显地描述HTTP访问的过程,帮助大家更好的理解流程。本文有很多概念性的东西,晦涩难懂,有不明确或者存疑的地方欢迎版聊谈论。1、访问过程概览如果面试的时候问到了这道题,用一句话来回答的话,我会说:客户端向服务端发送访问请求,服务端复制了一份自己的内容返回给客户端的过程,但这是把大象塞进冰箱式的回答。把大象塞进冰箱这一步还可以继续拆解成以下几个步骤:打一个类比来解释这个过程:比如我家(client-s..原创 2020-09-12 14:25:21 · 198 阅读 · 0 评论 -
为什么start方法才能启动线程,而run不行?
我们都知道,一个线程直接对应了一个Thread对象,在刚开始学习线程的时候我们也知道启动线程是通过start()方法,而并非run()方法。那这是为什么呢?如果你熟悉Thread的代码的话,你应该知道在这个类加载的时候会注册一些native方法一看到native我就想起了JNI,registerNatives()实际上就是java方法和C/C++的函数对应。在首次加载的时候就会注册这些native方法。Thread中有很多native方法,大家有兴趣的可以去看看。关于JNI方法的.原创 2020-09-11 15:09:00 · 265 阅读 · 0 评论 -
彻底搞懂 etcd 系列文章之:etcd 事务 AP
0 专辑概述etcd 是云原生架构中重要的基础组件,由 CNCF 孵化托管。etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册与发现,还可以作为 key-value 存储的中间件。《彻底搞懂 etcd 系列文章》将会从 etcd 的基本功能实践、API 接口、实现原理、源码分析,以及实现中的踩坑经验等几方面具体展开介绍 etcd。预计会有 20 篇左右的文章,笔者将会每周持续更新,欢迎关注。1 etcd 的事务 Transaction事务是键值存储中的原子 If/Then原创 2020-09-09 12:52:17 · 1696 阅读 · 0 评论