自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HELLOW,文浩

优雅的键盘啪啦啦。。

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

原创 Golang的可直接取地址addressable

可以取地址的仅仅为:1、变量都可取地址2、字面量--复合类型初始化。3、表达式---迂回指针和变量嵌套。

2023-03-31 00:18:04 1089 1

原创 Go与Re2正则

Golang支持Re2正则标准(实际上并不支持全部,只是Re2语法的子集),本文介绍一些Golang正则支持语法的解释。

2023-03-28 10:51:21 1480

原创 Go Test基本机制和实践规范

维护单元测试,需要投入一定的时间和精力,但是作为一个长期迭代的产品,定义完整的单元测试的收益是绝对大于投入的,其意义主要有。• 相比于代码创造的时间,工程修改和维护需要占用大量的时间。单元测试的意义,就在于修改和维护的用例可以重复使用,减少重复bug的出现,提升代码的质量和研发速度。• 如果某些功能难以写测试用例,那么便说明代码的耦合性较强。因此单元测试,可以检验和保证代码的松散耦合。

2023-03-22 21:31:05 1203

原创 Go module依赖下载

从proxy下载,从一个代理服务器中下载已经缓存的module包,你可以理解为代理proxy中存储了$GOPATH/pk/mod中的一样布局的内容,供开发者下载。从vcs下载,例如从git 、svn这些版本控制系统中直接clone并将module下载到$GOPATH/pk/mod下。

2023-03-13 19:54:36 2191

原创 Go语言规范中的可赋值

go语法中的赋值无处不在,赋值操作、调用方法时的receiver赋值、调用方法的parameter赋值、方法返回值的接收变量赋值,赋值即值拷贝,这个大家都懂,可是赋值的类型约束是什么?

2023-02-24 23:07:57 860

转载 linux单横线

Linux 命令中单横线、双横线,我们称之为命令行选项。单横线选项后面跟的参数必须是单字符参数,一个字符表示一个参数,可以多个参数写在同一个横线后面。双横线选项后面跟的参数必须是多字符参数(单词),双横线后只能跟一个参数。

2022-10-25 18:12:22 627

原创 listeners和advertised.listeners区别

另外,NIUBI和NIUBITOO这个名字是随便取的,那么在listener.security.protocol.map这个配置中你就要指定NIUBI对应什么安全协议。当然如果你起的名字是SSL,PLAINTEXT这些名字,那么就会默认就有相应的SSL,PLAINTEXT安全协议啦!

2022-09-15 20:24:07 1372

转载 ClickHouse日志存储实践(唯品会)

Clickhouse压缩率这么高,但没有索引,其查询速度如何?虽然没有索引,但其向量执行和SIMD配合多核CPU,可以大大缓解没有全文索引的缺点。经过多次测试对比后,其查询速度在绝大多数场景下和ES不相上下,在部分场景下甚至比ES还要快。...

2022-08-26 16:01:04 2783 1

转载 计算密集型服务性能优化

性能优化是一个庞杂的话题,不同的场景,不同的视角都会得到不同的理解。比如:有的为了提高吞吐,有的为了降低延迟,有的为了节省资源。他们并不是同一个问题,有时可以牺牲一定的延迟来换取更高的吞吐,比如批量处理;有时可以用更多的存储空间来换取更低的延迟,比如哈希表……

2022-08-22 17:45:27 410

转载 OLAP和OLTP

OLTP(on-line transaction processing)为联机事务处理。OLAP(On-Line Analytical Processing)为联机分析处理。两者简单的区别为OLTP是做事务处理,OLAP是做分析处理。站在数据库的操作层面来看,OLTP主要是对数据的增删改,侧重实时性,OLAP是对数据的查询,侧重大数据量查询。...

2022-08-18 17:24:16 224

转载 Xff和Refer

Xff是一个 HTTP 扩展头部,主要是为了让 Web 服务器获取访问用户的真实 IP 地址。在代理转发及反向代理中经常使用X-Forwarded-For 字段。

2022-07-26 17:40:19 2965

转载 Docker、虚拟机性能测试

docker性能测试测试环境:操作系统:CentOS7、openstack nova-docker启动的centos7、openstack环境启动的centos7虚拟机CPU:Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz * 2内存:Micron 2133MHz 16G * 8网卡:Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection关键字:Linpack、netperf、iome

2022-03-04 13:14:18 4464

转载 127.0.0.1和localhost和0.0.0.0区别

0.0.0.0和127.0.0.1共同点:都属于特殊地址。 都属于A类地址。 都是IPV4地址。区别:在服务器中,0.0.0.0指的是本机上的所有IPV4地址,,如果我绑定的端口指定了0.0.0.0,那么通过内网地址或外网地址都可以访问我的应用。但是如果我只绑定了内网地址,那么通过外网地址就不能访问,所以如果绑定0.0.0.0,也有一定安全隐患,对于只需要内网访问的服务,可以只绑定内网地址。 在路由中,0.0.0.0表示的是默认路由,即当路由表中完全没有找到完全匹配的路由的时候所对应的路由

2021-04-22 18:31:46 761

转载 服务容错

一、容错方案要防止雪崩的扩散,我们就要做好服务的容错:保护自己不被猪队友拖垮的一些措施。常见的容错方案:隔离、超时、限流、熔断、降级1、隔离将系统按照一定的原则划分为若干个服务模块,各个模块之间相对独立,无强依赖。当有故障发生时,能将问题和影响隔离在某个模块内部,而不扩散风险,不波及其它模块,不影响整体的系统服务。常见的隔离方式有:线程池隔离和信号量隔离。2、超时上游服务调用下游服务时,设置一个最大响应时间,如果超过这个时间,下游未作出响应,就断开请求,释放掉线程。3、限流限制系统的输入和

2021-04-14 16:17:53 255

转载 并发编程模型

并发系统可以采用多种并发编程模型来实现。并发模型指定了系统中的线程如何通过协作来完成分配给它们的作业。不同的并发模型采用不同的方式拆分作业,同时线程间的协作和交互方式也不相同。这篇并发模型教程将会较深入地介绍目前(2015年,本文撰写时间)比较流行的几种并发模型。并发模型与分布式系统之间的相似性本文所描述的并发模型类似于分布式系统中使用的很多体系结构。在并发系统中线程之间可以相互通信。在分布式系统中进程之间也可以相互通信(进程有可能在不同的机器中)。线程和进程之间具有很多相似的特性。这也就是为什么很

2021-04-01 12:22:08 279

转载 -Xms -Xmx等jvm参数的含义

堆内存分配:JVM初始分配的内存由-Xms指定,默认是物理内存的1/64JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。对象的堆内存由称为垃圾回收器的自动内存管理系统回收。非堆内存分配:JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxP

2021-03-19 15:38:23 12580

转载 java的getResource方法

1. 前言在Java中获取资源的时候,经常用到getResource和getResourceAsStream,本文总结一下这两种获取资源文件的路径差异。2.Class.getResource(String path)path不以'/'开头时,默认是从此类所在的包下取资源;path以'/'开头时,则是从项目的ClassPath根下获取资源。在这里'/'表示ClassPath的根目录。JDK设置这样的规则,是很好理解的,path不以'/'开头时,我们就能获取与当前类所在的路径相同的资源文件,

2021-03-12 10:50:25 1537

转载 RocketMq实现分布式事务

这篇讲有关RocketMQ实现分布式事务的理论知识,下篇也会示例 通过SpringCloud来实例RocketMQ实现分布式事务的项目。一、举个分布式事务场景列子:假设A给B转100块钱,同时它们不是同一个服务上。目标:就是A减100块钱,B加100块钱。实际情况可能有四种:1)就是A账户减100 (成功),B账户加100 (成功)2)就是A账户减100(失败),B账户加100 (失败)3)就是A账户减100(成功),B账户加100 (失败)4)就是A账户减...

2021-03-11 14:57:48 247

转载 一文讲懂蓝绿发布和金丝雀发布

在之前关于CI/CD的文章中,我们简单讨论了蓝绿部署和金丝雀发布以及它们在持续交付中所扮演的角色。这些都是十分有效的方法,能够大大降低与应用程序部署相关的风险。所以,这篇文章我们来深入介绍蓝绿部署和金丝雀发布。蓝绿部署和金丝雀发布通过让IT人员可以在发布过程中发生问题时能够还原到先前版本来减轻应用程序部署的风险。这两个方法让版本之间来回切换就像轻按开关一样容易,并且可以自动执行,从而最大程度减少了用户暴露在错误代码的时间。在我们更进一步讨论这两种方法之前,让我们先区分部署和发布。如何将部署与发布

2021-03-10 17:34:27 519

转载 系统设计有状态、无状态

一,系统设计:有状态、无状态惯例,先看栗子网站登录校验,很普通的一个功能对于这个功能我们要如何实现?先分析一下登录校验是个啥意思举个栗子,比如我们在登陆页输入用户名密码,登录了社交网站这时候想去看自己的新鲜事,却告诉我请先输入用户名密码进行验证。。这时候想去吐槽下这个2B体验,发个新鲜事,点完发布按钮时,又弹出框说请输入用户名密码进行验证。。。这时候脑子里上千个草泥马奔腾而过这样的产品可以说拜拜了对我们的用户来说,登录操作其实完成一次就够了,后续的操作服务应该能够自动...

2021-03-10 13:32:38 269

转载 缓存和数据库双写一致性分析

在做系统优化时,想到了将数据进行分级存储的思路。因为在系统中会存在一些数据,有些数据的实时性要求不高,比如一些配置信息。基本上配置了很久才会变一次。而有一些数据实时性要求非常高,比如订单和流水的数据。所以这里根据数据要求实时性不同将数据分为三级。 第1级:订单数据和支付流水数据;这两块数据对实时性和精确性要求很高,所以不添加任何缓存,读写操作将直接操作数据库。 第2级:用户相关数据;这些数据和用户相关,具有读多写少的特征,所以我们使用redis进行缓存。 第3级:支付配置信息;

2021-03-10 10:41:45 106

转载 简单讲懂什么是分布式

一、三个步骤完成华丽转身——任意软件变为“分布式”分布式——一个高大上的名词,是计算机软件设计中人民群众喜闻乐见的“逼格满满”、“不明觉厉”的几个名词之一。但很可惜,这玩意儿一点也不复杂,甚至有些“简单”。不信?你只要遵循下述步骤即可将任何一个软件拆分为“分布式”的:将你的整个软件视为一个系统(不管它有多复杂) 将整个系统分割为一系列的 Process(进程), 每个 Process 完成一定的功能 将这些 Process 分散到不同的机器上。分散后,选择若干种(没错一种可能不够)通信协议把他们连

2021-03-10 10:09:35 5252 1

转载 mysql的explain教程

在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。-- 实际SQL,查找用户名为Jefabc的员工select * from emp

2021-03-05 18:50:54 202

转载 SQL 的union和union all 语句

SQL UNION 操作符UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2注释:默认地,UNION 操作符选取不同的值,即UNION是去了

2021-03-05 17:58:49 254

转载 vue 中的watch用法

假设有如下代码: <div> <p>FullName: {{fullName}}</p> <p>FirstName: <input type="text" v-model="firstName"></p> </div> new Vue({ el: '#root', data: { firstName: 'Dawei', la..

2021-03-05 11:28:04 489

转载 vue的nextTick

什么是Vue.nextTick()??定义:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。所以就衍生出了这个获取更新后的DOM的Vue方法。所以放在Vue.nextTick()回调函数中的执行的应该是会对DOM进行操作的 js代码;理解:nextTick(),是将回调函数延迟在下一次dom更新数据后调用,简单的理解是:当数据更新了,在dom中渲染后,自动执行该函数,<template> <div class="h..

2021-03-01 16:39:42 746

转载 js中let和var的区别

最近很多前端的朋友去面试被问到let和var的区别,其实阮一峰老师的ES6中已经很详细介绍了let的用法和var的区别。我简单总结一下,以便各位以后面试中使用。ES6 新增了let命令,用来声明局部变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,而且有暂时性死区的约束。先看个var的常见变量提升的面试题目:题目1:var a = 99; // 全局变量af(); // f是函数,虽然定义在调用的后面,

2021-03-01 16:05:52 234

转载 javascript中判断真假条件

在所有编程语言中if是最长用的判断之一,但在js中到底哪些东西可以在if中式作为判断表达式呢?例如如何几行,只是少了一个括号,真假就完全不同,到底表示什么含义呢 1 var obj={}; 2 obj.Funtext=function(){}; 3 if(obj.Funtext) 4 { 5 alert("true obj.Funtext;"); 6 } 7 else 8 { 9 alert("false obj.Fun

2021-03-01 15:57:29 1596

转载 windows.location介绍

博客分类: JAVASCRIPTJavaScriptASP.netSchemeASP网络协议URL即:统一资源定位符 (Uniform Resource Locator, URL)完整的URL由这几个部分构成:scheme://host:port/path?query#fragmentscheme(通信协议):常用的http,ftp,maito等host(主机): 服务器(计算机)域名系统 (DNS) 主机名或 IP 地址。port(端口号)...

2021-03-01 14:38:20 415

转载 <tr> <th> 和 <td>

首标签<table>和尾标签</table>分别表示一个表格的开始与结束。tr是“tablerow(表格行)”的缩写,用于表示一行的开始和结束。th是"table head",表头的缩写。td是“tabledata(表格数据)”的缩写,用于表示行中各个单元格(cell)的开始和结束。...

2021-02-26 14:04:42 3019

转载 js中 == 和 ===的区别

console(34 == "34") 输出trueconsole(34 === "34") 输出false因此,== 只判断值,不判断类型,实际上里面有类型转换   === 不仅判断值,还需要判断类型,只有两者都相同时,才会输出true

2021-02-23 17:24:56 92

转载 理解css中的padding margin border属性

图解CSS padding、margin、border属性W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落、列表、标题、图片以及层。盒模型主要定义四个区域:内容(content)、内边距(padding)、边框(border)和外边距(margin)。对于初学者,经常会搞不清楚margin,background-color,background-image,padding,content,border之间的层次、关系和相互影响。这里提供一

2021-02-23 15:18:06 255

转载 html中script脚本的位置

首先需要知道:html文件是自上而下的执行方式,但引入的css和javascript的顺序有所不同,css引入执行加载时,程序仍然往下执行,而执行到<script>脚本是则中断线程,待该script脚本执行结束之后程序才继续往下执行。    所以,大部分网上讨论是将script脚本放在<body>之后,那样dom的生成就不会因为长时间执行script脚本而延迟阻塞,加快了页面的加载速度。    但又不能将所有的script放在body之后,因为有一些页面的效果的实现,是需

2021-02-22 16:51:57 859

转载 nginx基本功能

本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完。1Nginx能做什么——反向代理——负载均衡——HTTP服务器(动静分离)——正向代理以上就是我了解到的Nginx在不依赖第三方模块能处理的事情,下面详细说明每种功能怎么做。2反向代理反向代理应该是Nginx做的最多的一件事了。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果..

2021-02-19 17:12:44 79

转载 零拷贝原理

引言传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。这样做最大的好处是可以减少磁盘 I/O 的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那么就不需要再进行实际的物理磁盘 I/O 操作。但是数据传输过程中的数据拷贝操作却导致了极大的 CPU 开销,限制了操作系统有效进行数据传输操作的能力。零拷贝( zero-copy )技术可以有效地改善数据传输的性能,在内核

2021-02-09 14:12:00 154

转载 用户态和内核态区别

操作系统用户态和内核态之间的切换过程1. 用户态和内核态的概念区别究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子:1)例子 void testfork(){ if(0 = = fork()){ printf(“create new process success!/n”);}printf(“te...

2021-02-09 14:04:23 2322

转载 容错、高可用、灾备的区别

标题里面的三个术语,很容易混淆,专业人员有时也会用错。本文就用图片解释它们有何区别。容错容错(fault tolerance)指的是,发生故障时,系统还能继续运行。飞机有四个引擎,如果一个引擎坏了,剩下三个引擎,还能继续飞,这就是"容错"。同样的,汽车的一个轮子扎破了,剩下三个轮子,也还是勉强能行驶。容错的目的是,发生故障时,系统的运行水平可能有所下降,但是依然可用,不会完全失败。高可用高可用(high availability)指的是,系统能够比正常时...

2021-02-09 10:37:57 1032

转载 Iaas,Paas,Saas的区别

看到一片文章,讲的很形象。看完后,个人理解,iaas比如阿里云服务器,paas比如小程序平台,saas比如专门提供给各个企业的内部管理系统。越来越多的软件,开始采用云服务。云服务只是一个统称,可以分成三大类。IaaS:基础设施服务,Infrastructure-as-a-service PaaS:平台服务,Platform-as-a-service SaaS:软件服务,Software-as-a-service它们有什么区别呢?IBM 的软件架构师 Albert Barron

2021-02-09 10:32:55 266

转载 k8s容器通讯

概述首先k8s里面容器是存在于pod里面的,所以容器之间通讯,一般分为三种类型:1. pod内部容器之间2. pod 与 pod 容器之间3. pod 访问service服务pod内部容器之间这种情况下容器通讯比较简单,因为k8s pod内部容器是共享网络空间的,所以容器直接可以使用localhost访问其他容器。k8s在启动容器的时候会先启动一个pause容器,这个容器就是实现这个功能的。pod 与 pod 容器之间这种类型又可以分为两种情况:1. 两个pod在一台

2021-01-21 10:33:24 219

转载 ES high-level-client和DSL学习

一、ElasticSearch 简介中文官方文档链接https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.6/java-rest-high-getting-started.html1、简介ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多员工能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 语言开发的,并作为 Apache 许.

2021-01-05 15:38:02 1591

空空如也

空空如也

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

TA关注的人

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