自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 grpc-pb字段顺序

简介grpc序列化时,如果服务提供方和服务调用方请求字段的数量和顺序不一致时,发生的情况1.基本代码pb文件syntax = "proto3"; // 版本声明,使用Protocol Buffers v3版本package serialize; // 包名// 定义一个服务service SerializeService { // 方法 rpc SendMsg (MsgRequest) returns (MsgReply) {}}message MsgRequest

2020-12-11 15:01:56 733

原创 Prometheus-Metrics

MetricsPrometheus存在多种不同的监控指标Metrics,在不同的场景下应该要选择不同的Metrics。1.Counter:只增不减的计数器Counter类型的指标其工作方式和计数器一样,只增不减(除非系统发生重置)。常见的监控指标,如http_requests_total是Counter类型的监控指标。 一般在定义Counter类型指标的名称时推荐使用==_total==作为后缀。通过increase函数获取过去五分钟请求数量increase(http_requests_tot

2020-12-11 15:00:45 1261

原创 go技巧-json转map

go技巧-json转map1.简介当我们遇到一个json对象,很多人想到的解析方法是,通过一个结构体对象来解析。如果这是双方确定好的结构题对象还好,但是如果是有不确定字段的额外信息就很难解析。尤其是json对象及其复杂的时候,构建一个对应的结构体对象是非常复杂的。所有当转结构体对象难以实现,而你又只需要部分字段信息,可以使用map解析!2.手动强转以下面json对象为例{ "name": "yyy", "res": { "code": 1, "msg

2020-08-22 17:11:46 2275 2

原创 面试-美团一面

自我介绍项目redis数据结构redis备份(aof,rdb)分布式事务(cap,base)2pc数据库事务的具体实现(MVCC)数据库和缓存的一致性数据库主从复制的模式(?没听过)一条语句在数据库中的执行过程(语法解析,寻找对应的库,不知道)synchronized和volatile的区别volatile适用场景公平锁类锁和普通锁编程题:对数据的出现次数排序,如果相同...

2020-03-27 17:34:04 260

原创 分布式锁-mysql行锁

分布式锁-mysql行锁锁工具类 MutexUtilpublic class MutexUtil { public static void lock(String mutexName,Connection connection) { PreparedStatement preparedStatement= null;//获得锁 ResultSet r...

2020-03-05 12:46:59 312

转载 leetcode-84.柱状图中最大的矩形

84.柱状图中最大的矩形题目要点关于求解这道题有两点(1)是多个柱子组成的矩形的高度,一定是由最低的一根柱子决定的以当前柱子为最低高度,遍历整个数组,求出所有的面积可能矩形面积=最低柱子高度*柱子数(大于等于最低高度且互相相邻)(2)如何确定对应矩形的柱子数以当前柱子i为最低高度,则需要找到对应大于等于当前柱子i的柱子数,分别向左和向右,找到柱子高度小于当前柱子高度的坐标left和...

2020-02-11 18:17:19 119

原创 leetcode-76. 最小覆盖子串

76. 最小覆盖子串题目描述给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"题目详见:https://leetcode-cn.com/problems/minimum-window-substring解法-滑动窗口第一步移动right,找到符...

2020-02-05 18:10:35 194

原创 leetcode-72. 编辑距离

72. 编辑距离题目描述给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = "horse", word2 = "ros"输出: 3解释: horse -> rorse (将 'h' 替换为 'r')rorse ...

2020-02-03 14:45:23 145

原创 leetcode-49字母异位词分组

P49-字母异位词分组题目描述给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]详见leetcode49题链接:https://lee...

2020-01-23 17:12:34 117

原创 java-Object

ObjectObject类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入方法概览public native int hashCode()public boolean equals(Object obj)protected native Object clone() throws CloneNotSupportedException...

2020-01-21 11:43:44 151

原创 LinkedHashMap- accessOrder参数的意义

LinkedHashMap- accessOrder参数的意义构造方法public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder) {accessOrder的取值只有true和false示例:stati...

2020-01-11 12:43:17 1104

原创 java-System.arraycopy

System.arraycopy方法详解System.arraycopy(最快的遍历方式)从java.lang.System类的源码可见:public static void arraycopy( Object src, //源数组 int srcPos, //源数组的起始...

2020-01-02 14:29:15 771 1

原创 mysql-联接查询-驱动表

联接查询-驱动表1.概念驱动表,即需要从驱动表中拿出来每条记录,去与被驱动表的所有记录进行匹配探测。驱动表,作为外层循环被驱动表,即里层循环,由于需要不断的拿外层循环传进来的每条记录去匹配,所以是随机读取的,走索引查询会大大提高速度。2.判断驱动表与被驱动表最有效确定驱动表的方式-EXPLAIN EXPLAIN select * from dept_emp as d inner...

2019-12-16 19:16:45 541 1

原创 mysql-联接查询-联接算法

1.Simple Nested-Loops Join算法1.1概念从一张表(外部表)中每次读取一条记录,然后将记录与内部表中的记录进行比较。对于外部表R,内部表S,并且不存在索引扫描成本O(Rn*Sn),Rn和Sn表示对应表的记录数1.2 算法算法如下:For each row r in R do //从表R取出一条记录r For each row s in S do // ...

2019-12-16 17:02:27 142

原创 mysql-联接查询-增加索引

联接查询-增加索引1.对应的表CREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREATE TABLE `s...

2019-12-16 15:48:11 686

原创 nginx-ssl配置504错误

重要的事情说三遍:一定要使用https://加你指定的域名访问!一定要使用https://加你指定的域名访问!一定要使用https://加你指定的域名访问! curl -k https://www.ssl.com <h1>https connnection</h1>不要直接使用你指定的域名访问,浪费我一晚上时间!...

2019-12-11 21:10:55 441

原创 ssl加密

ssl加密为什么需要ssl加密?非对称加密的缺点:1.不够安全通信的一次过程客户端:我需要访问服务端,请给我公钥服务端:公钥是XXXXXX客户端:使用公钥进行加密 发送消息。。。服务端:私钥解密消息但是,如果服务端是第三方(恶意网站),伪装成其他服务端客户端:我需要访问服务端(恶意网站),请给我公钥恶意网站:将自己的公钥发送客户端:使用恶意网站公钥进行加密 发送消息。。。...

2019-12-11 16:22:21 250

原创 加密算法分类

加密算法分类1.摘要算法摘要算法对任意长度的数据,一般通过hash算法,计算出固定长度的字符串。MD5:128bit,32位十六进制,相对于SHA1优点-生成速度快SHA1:160bit40位十六进制 ,相对于MD5优点-密码安全性高问题:MD5 加密后的类型16位与 32位的区别?16 位实际上是从 32 位字符串中,取中间的第 9 位到第 24 位的部分MD5算法是否可逆...

2019-12-11 16:18:51 111

原创 nginx参数-获取用户真实ip

nginx参数-获取用户真实ip转发参数变量设置:常用的作用有两个,一个是控制访问的传输时间,数据大小等参数。一个是为了在日志中记录需要的信息三台主机:10.6.204.223 应用主机 nginx主机10.6.229.225 nginx主机10.6.232.238 访问主机日志格式 log_format main '$remote_addr|$remote_user|[$t...

2019-12-10 21:03:07 348

原创 nginx参数-$proxy_host和$http_host

1.通过一个简单的java程序public class HeadController { @ResponseBody @RequestMapping("/head") public String testHead(HttpServletRequest request){ Enumeration<String> headerNames = req...

2019-12-10 20:55:00 2614

原创 将jar包部署成k8s中的一个应用

将jar包部署成k8s中的一个应用必须已经安装docker和k8sdocker pull java:8DockerfileFROM java:8#将jar包添加到容器中并更名为app.jarADD ./head.jar /data/head.jarWORKDIR /data/RUN chmod +x head.jarCMD java -jar head.jar注意:使用这个...

2019-12-04 19:33:33 1835

原创 spring-依赖注入的方式

spring-依赖注入一个应用中,完成任务大多都是多个类协作来完成的。按照传统的做法,每个对象负责管理与自己相互协作的对象(即它所依赖的对象)的引用,这将会导致高度耦合和难以测试的代码。依赖注入,就是不需要这个对象去考虑它所依赖的类如何生成,有其他的方式负责把这个类依赖的对象,注入进来1.每个类自己负责自己需要的对象class Soldier{ private Weapon we...

2019-12-01 14:08:10 104

原创 k8s-命名空间

Kubernetes 命名空间简单地为对象名称提供了一个作用域。 此时我们并不会将所有资源都放在 同一个命名空间中,而是将它们组织到多个命名空间中,这样可以允许我们多次使 用相同的资源名称(跨不同的命名空间〉。1 查看命名空间kubectl get nsNAME STATUS AGEdefault Active 5d19hkube-n...

2019-11-25 20:14:50 1698

原创 mysql数据类型

整型TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT 分别使用 8, 16, 24, 32, 64 位存储空间,一般情况下越小的列越好。INT(11) 中的数字只是规定了交互工具显示字符的个数,对于存储和计算来说是没有意义的。浮点数FLOAT 和 DOUBLE 为浮点类型,DECIMAL 为高精度小数类型。CPU 原生支持浮点运算,但是不支持 DECIMA...

2019-11-22 13:06:23 138

原创 docker-数据卷

1.简介数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有 用的特性:数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效对数据卷的更新,不会影响镜像 数据卷默认会一直存在,即使容器被删除2.创建一个数据卷docker run -v 数据卷在使用docker run 命令时带上 -v参数就可以指定挂载的数据卷# docker run -it --nam...

2019-11-22 11:01:31 97

原创 k8s网络-以Flannel为例

k8s网络模型假定了所有的pod都在一个可以直接连通的网络空间中,k8s假定这个网络已经存在。但是如果自己在私有云搭建k8s集群的话,就必须要自己实现了。1.同一个pod之间的多个容器:lo共用了同一个网卡,可以直接访问2.各pod之间的通讯:overlay network常用的网络方案:Flannel,它能让所有的容器在集群中拥有一个唯一的虚拟ip地址。他能够在这些ip之间建立一个覆...

2019-11-21 14:01:59 127

原创 frp内网穿透-windows客户端远程连接

下载安装包可以自己去git的官网,下载对应的安装包wget https://github.com/fatedier/frp/releases/download/v0.29.1/frp_0.29.1_linux_amd64.tar.gz服务器端配置[common]bind_port = 7000 #绑定服务器端口vhost_http_port = 10080 #http对应端口运行...

2019-11-19 13:49:44 2018

转载 entrypoint和cmd的区别 和用法

1.覆盖在写Dockerfile时, ENTRYPOINT或者CMD命令会自动覆盖之前的ENTRYPOINT或者CMD命令.1)覆盖默认的CMD如下,覆盖命令为/bin/bashdocker run demo /bin/bash和CMD类似, 默认的ENTRYPOINT在docker run时也可以被覆盖.2)覆盖默认的ENTRYPOINTdocker run --entrypoi...

2019-11-16 15:17:57 2280

转载 Mysql——查询语句执行顺序

1. FROM当涉及多个表的时候,左边表的输出会作为右边表的输入,之后会生成一个虚拟表VT1。笛卡尔积计算两个相关联表的笛卡尔积(CROSS JOIN) ,生成虚拟表VT1。mysql> select * from table1,table2;+-----+------+-----+------+| uid | name | oid | uid |+-----+------+...

2019-11-16 10:23:57 133

原创 Mysql——on和where的区别

1.ONon不仅仅可以作为表的连接,也可以过滤条件。select user_name ,dept_name from `user` as u join department as d on u.id>12.区别1)解释ON和WHERE的主要区别在于,on是执行在join语句之前,WHERE是执行在join语句之后。join语句做的操作是加入外部行,比如说left,right,...

2019-11-16 10:14:43 411

原创 docker 数据卷

1.简介数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有 用的特性:数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 数据卷默认会一直存在,即使容器被删除*注意:数据卷的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定 为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的数据卷。2.创建一个数据卷do...

2019-11-12 19:12:58 103

原创 Lucene 中的部分概念

简介ucene是一套用于全文检索和搜寻的开源程序库,由Apache软件基金会支持和提供Lucene提供了一个简单却强大的应用程序接口(API),能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟的免费开放源代码工具Lucene并不是现成的搜索引擎产品,但可以用来制作搜索引擎产品什么是全文检索?什么是倒排索引索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址索...

2019-11-09 16:31:49 106

原创 nginx下载安装

nginx下载安装1.监控nginx-module-vts模块下载curl -o module.tar.gz https://codeload.github.com/vozlt/nginx-module-vts/tar.gz/v0.1.18解压tar -xvzf module.tar.gznginx-module-vts-0.1.18 //监控nginx-module-vts模块下...

2019-11-08 19:27:54 295

转载 数据库事务

数据库事务什么是事务事务的ACID什么是事务事务是访问数据库的一个操作序列,是满足 ACID 特性的一组操作,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换为另一种状态。事务的ACIDA:原子性原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生B:一致性一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破...

2019-08-23 22:29:27 89

空空如也

空空如也

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

TA关注的人

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