自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 列表页涉及白名单用户相关文章左下角标签更改

SearchBoxurl/searchbox?action=feed&cmd=100&maid=_a2S8_aq28_qa28q8avwajitSul_hH8r0iXt8_8xvNlruvaQoiHzi_it2u_huSi0_l2Mugavv80uis8hlavfIgaUH8oIOvuxgCS_agaAv8gI8HuUAzqOC&refresh=1&imgtype=webp&cfrom=1099a&from=1099a&network=1_0&am

2020-08-18 16:29:35 652

原创 Kubernetes集群准备

安装KubeadmKubeadm用于创建Kubernetes集群1)配置阿里云Kubernetes镜像源/etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.a

2020-05-12 17:59:58 239

原创 用ServiceEntry扩展网格服务

服务入口网关是将内部服务暴露给外部访问,服务入口正好相反,是把外部服务纳入到网格内部进行管理,主要是希望能够管理到外部服务的请求,比如需要对访问外部服务的请求做一些流量控制,还有就是能够帮我们扩展我们的网格,例如我们要给多个集群共享同一个网格(mesh)从图上可以看出,服务入口相当于抽象了一个外部服务,然后内部服务就像访问网格内部的服务一样去访问外部服务任务说明:将httpbin注册为网格内部的服务,并配置流控策略目标:学会通过服务入口扩展网格,掌握服务入口的配置方法配置因为bookinfo

2020-05-12 14:43:45 830

原创 用Gateway管理进入网格的流量

网关可以把他认为是一个运行在网格边缘的负载均衡器,接收外部请求,转发给网格内的服务,另外,我们还会通过网关来配置对外的端口,协议与内部服务的映射关系istio中的两种网关Ingress网关,控制进入流量Egress网关,控制出口流量配置项apiVersion: networking.istio.io/v1alpha3kind: Gatewaymetadata: name: bookinfo-gatewayspec: selector: istio: ingressgate

2020-05-11 21:38:57 586

原创 wrk压测工具

介绍wrk支持UNIX系统,不支持windows使用了epoll,这意味着我们可以用少量的线程来跟被测服务创建大量连接,进行压测安装只要从github上下载wrk源码,在项目路径下执行make命令即可。git clone https://github.com/wg/wrkmakemake之后,会在项目路径下生成可执行文件wrk,随后就可以用其进行HTTP压测了基本使用命令行敲下wrk,可以看到使用帮助 Options:

2020-05-10 11:47:04 224

原创 2-配置动态路由之虚拟服务与目标规则

任务说明将请求路由到服务的不同版本VirtualService虚拟服务定义了一系列的流量路由规则,将流量路由到指定的目标服务apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata: name: reviews-routespec: hosts: 设置具体的目标地址 - reviews.prod.svc.cluster.local http: 会对应到具体的路由匹配规则 - match: 满足什

2020-05-09 22:18:31 386

原创 Istio安装

准备环境Istio1.5支持的kubernetes版本1.14-1.16kubernetes环境本地(Minikube,VM)云平台(AWS)在线playground(katacoda)https://www.katacoda.com/courses/kubernetes/playground下载Istiocurl -L https://istio.io/downloadI...

2020-05-09 21:06:39 590

原创 在gin框架中使用JWT

什么是JWT?JWT是一种跨域认证解决方案,规定了一种Token实现方式,目前多用于前后端分离项目为什么需要JWT?在之前的一些web项目中,我们通常使用的是Cookie-Session模式实现用户认证。相关流程大致如下:用户在浏览器端填写用户名和密码,并发送给服务端 服务端对用户名和密码校验通过后会生成一份保存当前用户相关信息的session数据和一个与之对应的标识(通常称为s...

2020-05-08 10:29:16 743

原创 Go实现页面静态化

静态化步骤<1>按照Go模板语法定义一个模板文件<h1 class="product-single__title uppercase">{{.ProductName}}</h1><div class="quantity"> {{.ProductNum}}</div><2>解析模板文件生成模板对象...

2020-05-06 18:41:40 705

原创 go文件操作

读取文件操作打开和关闭文件os.Open()函数能够打开一个文件,返回一个打开的文件对象和一个err。对得到的文件对象调用close()方法能够关闭文件为了防止文件忘记关闭,我们通常使用defer关闭文件是向操作系统要了一个文件io,如果程序没有显示的关闭文件,就不会释放这个文件io,造成文件不安全func main() { // 只读方式打开当前目录下的main.g...

2020-05-04 15:26:04 267

原创 go操作Mysql

连接Go语言中有标准库database/sql,提供了SQL数据库的接口,并不提供具体的数据库比如mysql,sqlserver的驱动,也就是说没有具体的实现,只是列出来一些需要第三方库实现的内容,好处就是不管数据库驱动是谁写的,用法都一样。所以使用这个标准库时必须注入(至少)一个数据库驱动下载依赖go get -u github.com/go-sql-driver/mysql...

2020-05-02 17:30:54 217

原创 Iris框架的处理post/get请求

处理post请求添加商品前端v<form action="/product/add" method="post" ><label class="col-sm-3 control-label">商品名称</label><div class="col-sm-6"> <input type="text" class=...

2020-04-29 15:53:29 2439

原创 Iris工程化开发流程

工程化开发优点 风格一致 代码整洁开发流程开发 model 开发repositories 开发services 开发controllers 开发viewsmodeltype Product struct { //sql标签用来给数据库用,shop标签用来映射表单 ID int64 `json:"id" sql:"ID" shop:"ID"`...

2020-04-29 14:54:54 418 2

原创

定义树是n个节点的有限集合,当n=0时,为空树;n>0时,为非空树。任何一个非空树,满足一下两点:1)有且仅有一个根节点2)除根节点以外,其余节点可分为m(m>0)个互不相交的有限集,其中每一个集合本身又是一棵树,并且称为根的子树(subtree)该定义是从集合论的角度给出的树的递归定义,即把树的节点看作一个集合。除了树根以外,其余节点分为m个互不相交的集合,每一个集合又是一...

2020-02-03 10:11:08 301

原创 字符串

相关概念串:又称字符串,是由零个或多个字符组成的有限序列。字符串通常用双引号括起来,例如S=“abcdef”,S为字符串的名字,双引号里面的内容为字符串的值。 串长:串中字符的个数,例如S串长为6 空串:0个字符的串,串长为0 子串:串中任意个连续的字符组成的子序列,称为该串的子串,原串称为子串的主串。例如T=“cde”,T是S的子串。子串在主串中的位置,用子串的第一个字符在主串中出现的...

2020-02-01 21:04:08 11162

原创 栈和队列应用

栈解题秘籍在顺序栈中,栈顶指针指向的是栈顶元素的上一个位置,即空位置,取栈顶元素时要取*(S.top−1)才可以。入栈时,先把元素放入栈顶位置,然后栈顶指针后移,即*S.top=e;S.top++。出栈时,栈顶指针前移,用变量暂存栈顶元素,即e=−−S.top。 出栈只是栈顶指针移动,空间元素仍然存在,但下次入栈时会覆盖本书以动态分配为例,静态分配的情况处理方式不同。静态分配是使...

2020-02-01 09:53:34 861 2

原创 栈和队列

栈后进先出的线性序列(胡同进车,起早贪黑)。它也是一种线性表,只不过是操作受限的线性表,只能在一端进出操作。进出的一端称为栈顶,另一端称为栈底。可以用顺序存储,也可以用链式存储,分别称为顺序栈和链栈顺序栈存储方式需要两个指针,base指向栈底,top指向栈顶结构体从图可以看出,顺序栈需要两个指针,base指向栈底,top指向栈顶。栈定义好了之后,还要先定义一个...

2020-01-31 12:26:11 397

原创 线性表应用

合并有序顺序表将两个有序(非递减)顺序表La和Lb合并为一个新的有序(非递减)顺序表。void MergeSqlist(SqList La, SqList Lb, SqList &Lc){ int i,j,k; i=j=k=0; Lc.length=La.length+Lb.length; Lc.elem=new int[Lc.length]; while(i<L...

2020-01-29 12:54:30 292

原创 线性表

线性表线性表是由n(n>=0)个相同类型的数据元素组成的有限序列,它是最基本、最常用的一种线性结构。顾名思义,线性表就像是一条线,不会分叉。线性表有唯一的开始和结束,除了第一个元素外,每个元素都有唯一的直接前驱:除了最后一个元素外,每个元素都有唯一的直接后继,如图所示。​线性表有两种存储方式:顺序存储和链式存储。采用顺序存储的线性表称为顺序表,采用链式存储的线性表称...

2020-01-27 10:33:24 544

原创 序列类动态规划

相比矩阵类动态规划,序列类动态规划最大的不同在于,对于第 i 个位置的状态分析,它不仅仅需要考虑当前位置的状态,还需要考虑前面 i – 1 个位置的状态最长上升子序列解题思路:问题拆解:求前n个数的最长子序列,可以先求前n-1个数的最长子序列的长度,但是这样不具有后效性(n用不上n-1的答案),可以求以n为终点的最长上升子序列的长度,这样n-1的问题解决了,n的问题也就解决了...

2020-01-26 12:24:10 167

原创 矩阵类动态规划

理论解析动态规划其实就是记住之前问题的答案,然后利用之前问题的答案来分析并解决当前问题,这里面有两个非常重要的步骤,就是拆解问题和定义状态。这次来针对具体的一类动态规划问题,矩阵类动态规划问题,来看看针对这一类问题的思路和注意点。矩阵类动态规划,也可以叫做坐标类动态规划,一般这类问题都会给你一个矩阵,矩阵里面有着一些信息,然后你需要根据这些信息求解问题。对于矩阵类的动态规划,...

2020-01-23 15:38:20 723

原创 动态规划

什么是动态规划?用一句话解释动态规划就是 “记住你之前做过的事”,如果更准确些,其实是 “记住你之前得到的答案”。是通过空间换取时间的算法举个大家工作中经常遇到的例子。在软件开发中,大家经常会遇到一些系统配置的问题,配置不对,系统就会报错,这个时候一般都会去 Google 或者是查阅相关的文档,花了一定的时间将配置修改好。过了一段时间,去到另一个系统,遇到类似的问题,这...

2020-01-20 19:40:46 171

原创 分治

分治的基本概念把一个任务,分成形式和原任务相同,但规模更小的 几个部分任务(通常是两个部分),分别完成,或只 需要选一部完成。然后再处理完成后的这一个或几个 部分的结果,实现整个任务的完成 生活实例 – 称假币。8 – 8 一称,发现无假币,或假币所在的那8枚 4 – 4 一称 2 – 2 一称 1 – 1 一称 归并排序数组排序任务可以如下完成:把前一半排序...

2020-01-20 09:17:47 142

原创 排序初步

简单排序如果有N个元素需要排序,那么首先从N个元素中找到最小的那个(称为第0 小的)放在第0个位子上(和原来的第0个位子上的元素交换位置),然后再从剩 下的N-1个元素中找到最小的放在第1个位子上,然后再从剩下的N-2个元素 中找到最小的放在第2个位子上……直到所有的元素都就位。swap函数在标准库中,在c++11中,直接在std中,老标准要include algorithm总共执行了n...

2020-01-19 08:59:19 194

原创 二分算法

程序或算法的时间复杂度一个程序或算法的时间效率,也称“时间复杂度”,有时简称“复杂度” 复杂度常用大的字母O和小写字母n来表示,比如O(n),O(n2)等。n代表问题 的规模 时间复杂度是用算法运行过程中,某种时间固定的操作需要被执行的次数和n 的关系来度量的。在无序数列中查找某个数,复杂度是O(n) 计算复杂度的时候,只统计执行次数最多的(n足够大时)那种固定操作的次数 。比如某...

2020-01-18 11:00:51 117

原创 递归

递归的基本概念 一个函数调用其自身,就是递归 递归需要终止条件,否则就会无穷递归导致程序无法终止甚至崩溃 递归和普通函数 调用一样是通过 栈实现的。每调用一次,栈就像上长一层 求阶乘#include <iostream>#include <cstdio>using namespace std;int Fact(int n)...

2020-01-16 11:55:08 227

原创 枚举

定义逐个尝试答案例题1:完美立方解题思路:四重循环枚举a,b,c,d,a在最外边,d在最里边,每一层都是从小到大枚举,a范围是[2,N],b范围是[2,a-1],c范围是[b,a-1],d范围是[c,a-1]#include <iostream>#include <cstdio>using namespace std;int main(){...

2020-01-14 19:37:57 158

原创 缓存简介

目录布置缓存的目的适合存放缓存的地方哪些位置适合放缓存布置缓存的目的1,压力均分,其本质就是用空间换时间,牺牲了部分空间,换取了整个系统效率的提升,像数据库这样很容易出现读写瓶颈的地方,把查询的一些数据,查过来运算好了然后放在缓存里,再用的时候丢出去就好了2,简化处理流程,比如我要获取用户的资料,这个资料可能分布在各个地方,我们就可以把这个资料整合在一起,然后把结果放...

2019-09-24 08:46:24 160

原创 水平扩展es集群

目录常见集群部署方式节点类型​节点参数配置​单一职责的节点​单一角色:职责分离的好处​Dedicate Coordinating Only Node (Client Node)​Dedicate Master Node​基本部署:增加节点,水平扩展​水平扩展:Coordinating Only Node​读写分离​在集群中部署 Kibana​H...

2019-09-14 12:02:11 1391

原创 数据保护

目录集群身份认证与用户鉴权不安全原因数据安全性的基本需求一些免费的方案​Authentication - 身份认证​RBAC - 用户鉴权Privilege创建内置的用户和角色​开启并配置 X-Pack 的认证与鉴权创建 Role创建用户登录用户并验证权限集群内部间的安全通信为什么要加密通讯​配置节点间通讯集群与外部间的安全通信...

2019-09-14 09:22:47 419

原创 跨集群搜索

目录水平扩展的痛点:跨集群搜索 - Cross Cluster Search配置及查询跳过不可用集群水平扩展的痛点:<1>单集群 – 当水平扩展时,节点数不能无限增加当集群的 meta 信息(节点,索引,集群状态)过多,会导致更新压力变大,单 个 Active Master 会成为性能瓶颈,导致整个集群无法正常工作<2>早期版本,通过 ...

2019-09-11 18:04:43 182

原创 Index/Dynamic Template

目录什么是Index Template?两个Index TemplateIndex Template的工作方式什么是Dynamic Template匹配规则参数什么是Index Template?帮助你设定Mappings和Settings,并按照一定的规则,自动匹配到新创建的索引上模板仅在一个索引新创建时才会产生作用。修改模板不会产生影响 可以设定多个索引...

2019-09-05 21:21:18 144

原创 Mapping

目录什么是Mapping?字段的数据类型Dynamic Mapping类型的自动识别更改Mapping的字段类型新增加字段已有字段原因实例Dynamic为trueDynamic为falseDynamic设为strict显式定义Mapping自定义Mapping的一些建议控制当前字段是否被索引Index Optionsnull_va...

2019-09-05 20:11:05 3902

原创 Search API 概述

目录URI Search指定字段 vs 泛查询TermQuery vs PhraseQuery布尔操作范围查询通配符查询Request Body Search分页排序_source filtering使用查询表达式match短语搜索match phraseQuery StringSimple Query String搜索...

2019-09-04 18:32:34 805

原创 通过Analyzer进行分词

目录什么是Analysis?Analyzer的组成使用_analyzer API直接指定Analyzer进行测试指定索引的字段进行测试自定义分词器进行测试Es内置分词器中文分词的难点:中文分词器:什么是Analysis?文本分析,把全文转换成一系列单词(term/token)的过程,也叫分词。他是通过Analyzer实现的,可以使用es内置的分析器...

2019-09-03 20:03:32 300

原创 倒排索引

目录举例倒排索引的核心组成单词词典:(Term Dictionary)倒排列表:(Posting List)Elasticsearch的倒排索引举例图书:正排:根据目录页的章节名称找到页码倒排:根据索引页的索引找到页码搜索引擎:正排索引:根据文档id找到文档内容倒排索引:根据文档内容找到文档id倒排索引的核心组成单词词...

2019-09-03 11:12:31 114

原创 文档的基本CURD与批量操作

目录CURD创建文档获取文档(GET)更新文档删除文档Bulk API批量读取 mget批量查询 _msearchCURD创建文档<1>两种方式Index文档PUT my_index/_doc/1如果id不存在,创建新的文档,否则,删除现有文档,在创建新的文档,版本数增加Create文档PUT my_inde...

2019-09-03 10:39:54 197

原创 Elasticsearch相关概念

目录文档Elasticsearch是面向文档的,文档是所有可搜索数据的最小单位文档会被序列化成json格式,保存在Elasticsearch中每个文档有一个Unique IDJSON文档文档中的元数据索引索引是文档的容器,是一类文档的结合索引的Mapping与Settings索引的不同语义TypeREST API实例:索引相关的api分...

2019-09-02 21:46:49 117

原创 Elasticsearch安装与简单配置

目录1,为什么要用es?2,安装及配置安装java运行Elasticsearch,需安装并配置JDK各个版本对Java的依赖查看版本Java –version安装elastisearch(7.20)JVM配置修改jvm.options配置建议3,Elasticsearch的文件目录结构4,插件安装安装国际化分词插件ik分词器插件查看...

2019-09-01 12:08:20 156

原创 CentOS 7部署laravel

目录LNMP环境安装安装和配置 git安装 Composer安装 redisLaravel 项目安装拉取 github 上的 Laravel 项目代码安装依赖配置环境变量数据配置权限配置Nginx 配置elasticsearch0.安装JDK111.下载Elasticsearch72.下载完了解压压缩包3.移动目录4.新建一...

2019-08-29 20:47:00 1690

空空如也

空空如也

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

TA关注的人

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