自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 golang中<-理解

一般只在多线程中出现goroutine是golang中在语言级别实现的轻量级线程,仅仅利用 go 就能立刻起一个新线程。多线程会引入线程之间的同步问题,在golang中可以使用channel作为同步的工具。通过channel可以实现两个goroutine之间的通信。创建一个channel, make(chan TYPE {, NUM}) , TYPE指的是channel中传输的数据类型,第二个参数是可选的,指的是channel的容量大小。向channel传入数据, CHAN <- DATA ,

2020-12-14 14:53:07 4107

原创 linux重启自动挂载磁盘/etc/fstab

背景正常linux重启后,不论是断电重启还是直接重启,都会导致磁盘无法自动挂载,此时需要配置磁盘到/etc/fstab文件中来实现自动挂载磁盘操作建议使用uuid进行操作$ blkid/dev/vda1: UUID="95508740-f44d-4dd4-85a7-d78573982b2e" TYPE="ext4"/dev/vdb: UUID="97daa5c1-c159-45e5-9...

2019-09-22 16:41:36 2551

原创 kafka消费者报错INVALID_FETCH_SESSION_EPOCH

完整报错[2019-09-11T12:09:49,735][INFO ][org.apache.kafka.clients.FetchSessionHandler] [Consumer clientId=logstash2es-consumer-1, groupId=logstash2es-consumer] Node 4 was unable to process the fetch requ...

2019-09-11 20:15:08 23991 4

原创 kafka日志保留时间设置无效问题

背景看了网上很多文档,说是要设置log.retention.hour等等参数。默认是保留7天,但我实测下来发现日志根本没有任何变化。目前我们的kafka,一天就有400多个G,保留七天大大增加了我们的服务器成本。不生效的设置#设置日志只保留一个小时的 "log.retention.hours": 1#设置大于500M就自动删除 "log.retention.bytes": "5...

2019-09-04 21:06:28 7804

原创 k8s企业elk性能调优问题

问题logstash消费速率远低于日志数量,消息堆积部署背景架构优点:1、采用kafka作为日志缓冲,在高并发情况下可以通过队列就能起到削峰填谷的作用,防止 es 集群丢失数据。2、实现动态schema,业务可以自定义schema,方便日志检索和查询3、每一个业务有独立的索引2.1 elk+kafka发现问题部署后发现日志量很大,一天有几个亿,kafka中堆积了很多消息,log...

2019-08-28 17:24:14 1241

原创 helm upgrade报错Error: UPGRADE FAILED: no Deployment with the name found

说明首先只是一个helm官方的bug,不要怀疑自己,确实是官方的bug。报错版本2.9.1必然有这个错误,2.13.0之后不知道有没有修复,不确定错误复现我们先helm install随后我们helm upgrade,因为种种原因upgrade失败了那么再次helm upgrade就会报以上错误错误原因helm的源码,没有加入事务机制,当我们第一次upgrade失败后,就helm...

2019-07-25 15:40:21 6166

原创 使用原生k8s及helm完成灰度(金丝雀)发布

背景最终结构原先的charts templates的目录结构templates-deployment-ingress-svc使用灰度后的charts templates的目录结构templates-deployment-group1-deployment-group2-ingress-svc结构说明使用原生的k8s来做灰度其实非常简单,利用的就是不同的deploy可...

2019-07-24 19:27:27 5529 1

原创 golang中的结构体

结构体结构体的概念很多时候,我们想要自定义一个能放很多各种不同数据结构的结构体,这个就像C一样,叫做struct就像是比如一张数据库表,比如学生表而里面的元素,比如name,就是结构体中的成员//定义一个结构体type Student struct { //这个属性是一个成员 id int name string sex byte age int addr string ...

2019-07-20 19:34:57 318

原创 golang的map

golang的map跟其他语言一样就是一个键值对的数据结构key和value存储时给key,取出时也可以根据key取出相应的value

2019-07-20 15:58:29 179

原创 istio完成金丝雀、灰度发布

istio控制流量的核心是poilt组件

2019-07-19 11:35:42 1806 1

原创 如何用k8s部署海外企业项目服务

云平台目前大部分企业都使用云平台,一来不需要维护,二来节省成本,三来很多事情其实云平台已经做好了,没必要重复造轮子。企业常用云平台阿里云(支持海外)亚马逊(支持海外)微软云(支持海外)方法一般有两种:1.直接购买海外的主机,比如直接买一个美国的k8s,把服务部署上去,就解决了2.购买国内的主机,通过香港主机的路由转发实现海外访问,这样可以节省成本,因为中间件等就可以复用国内的,但...

2019-07-10 18:22:30 412

原创 http2.0的bug

背景近日在企业的k8s集群中使用了2.0,同时https的证书配置了兼容各种版本由于开发人员在ios使用了新的框架,所以需要nginx配置来保持稳定nginx.ingress.kubernetes.io/configuration-snippet: |more_set_headers “Connection: Keep-Alive”;more_set_headers “Keep-Aliv...

2019-07-10 17:17:00 4205

原创 nginx日志对接elk

背景elk版本:7.1.1nginx 版本随意简介在kibana中自带nginx日志插件,非常的好用,点开根据官方文档中的步骤一步一步来。我们需要在nginx服务器上,装一个filebeat,会自动把本地的日志推送到远程的elk服务器上日志的地址是可以配置的。换句话说,我们也可以换一个服务器。这个服务器专门拉nginx的日志,只要有日志文件就行,不需要nginx部署在上面fil...

2019-07-09 15:35:51 1074

原创 本地连接k8s中的kafka报错

报错内容error connecting to node 0 at kafka-0.kafka-headless.local:9092其实就是没有连接上kafka我是把svc作为nodeport暴露端口出来,去连接这个端口然后报错了。遇到这种情况,不要怀疑自己,一定是kafka的配置问题。kafka默认配置是不允许外部连接访问的,只允许localhost,部署的时候一定要修改配置两种解...

2019-07-05 20:28:43 3363 5

原创 golang的数组和切片

数组初始化一个数组数组长度是50var id [50]int初始化后给数组一些值没有赋值到的位置自动赋值为0c:=[5]int{1,2,3}通过下标指定元素赋值c:=[5]int{2:10,4:20}二维数组初始化var a [3][4]int初始化赋值var a [3][4]int{{1,2,3,4},{2,3,4,5},{3,4,5,6}}也可以部分初始化...

2019-07-03 10:11:53 250

原创 响应码code:-999

requestBody:{“position”:100} error:网络异常,请稍后再试 code:-999 msg:网络异常,请稍后再试其实就是证书问题!服务端的ssh证书没有配置好。

2019-07-02 21:14:42 9173

原创 kong或nginx配置前端请求跨域

我们目前使用的是kong作为一个总的api网关而今天出了一个问题kong的设置默认是不支持前端跨域的而前后端分离的项目大量的使用了跨域前端报错:response to preflight request doesn’t pass access control check:Redirct is not allowed如果是使用传统的nginx可以配置:参考文档:http://www.ng...

2019-07-02 20:48:01 2117 3

原创 git之commit命令使用

commit命令commit指令其实也就是把本地变化提交到本地仓库push指令就是把本地仓库推送到远程仓库,这就ok了commit步骤我们要先修改本地文件,这一块步骤就省略了修改了本地文件后,输入以下指令查看git的状态这个指令要经常输入,这是一个好习惯会显示所有的文件变化等git status找到有变化的文件这个指令可以将此文件放入暂存区,相当于指定了要commit这个文...

2019-07-02 10:53:48 820

原创 go语言内存,地址,指针

变量的内存,地址,指针指针就是地址打印出变量的内存和地址&a可以取到a的地址简单说可以说地址就是索引,就是门牌号,内存就是仓库,里面存了东西,存了值package mainimport "fmt"func main(){ fmt.printf(a)//变量的内存 fmt.printf(&a)//变量的地址 }保存某个变量的地址int保存int的地址,**...

2019-07-02 09:16:03 1197

原创 kong-dashboard的使用

kong的个人理解kong就是对nginx进行再一次封装而做成的企业级api网关。kong的使用场景api网关有名的有zuul等,而且集成了springcloud。那么kong的使用场景在哪呢,个人认为要结合k8s,或者k8singress使用。而且kong目前可能没有想象的功能那么强大,不过还是比ingress好用多了对比ingress的好处:1.有可视化界面2.是api网关,可...

2019-07-01 21:37:52 4326

原创 记一个ingress和kong公用导致的k8s的显示bug

企业级情境我们使用的是k8s的ingress来做反向代理而实际使用发现,线上使用这种ingress很不方便。原因如下:1.域名太多不好管理2.我们使用的是charts自动发布到k8s,每次修改特殊的域名,都会新增一个charts3.ingress没有可视化界面3.ingress没办法批量修改,脚本又包括所有的特殊情况所以我们引进了Kong一个比ingress更好用的api网关k...

2019-07-01 20:49:18 864

原创 golang模块化

工作区工作区介绍Go代码必须放在工作区中。工作区其实就是一个对应于特定工程的目录,它应包含3个子目录:src目录、pkg目录和bin目录。src目录:用于以代码包的形式组织并保存Go源码文件。(比如:.go .c .h .s等)pkg目录:用于存放经由go install命令构建安装后的代码包(包含Go库源码文件)的“.a”归档文件。bin目录:与pkg目录类似,在通过go instal...

2019-06-30 21:42:43 2449 1

原创 golang特点及基础指令

由于本人是从java开发,后研究了python,又转到go,所以将会特别列举一些极其特殊的特点及语法go语言的简介常用语言并发排名:c++>java>php>pythonc++效率最高,但是语法太恶心,开发周期长java语法也很冗余,尤其是现在搞一堆实体类,但是各大app,主流语言还是java,能抗击并发,应用开发php并发能力一般,但还能用,语法简单入门快,后台管理...

2019-06-30 21:11:13 128

原创 golang函数语法

go函数的特点go的函数可以有多个返回值对于常用java开发的来说,有没有觉得实体类很恶心。对于有经验的java开发,一定会觉得很恶心,当我们需要优化代码时,会发现入参有一大堆,返回值也有一大堆,就不得不新建一个class作为实体类,就存返回值。实体类越来越多,代码特别难看,强迫症要犯了。而golang可以返回多个值,解决了这个问题,缩短了开发周期。go的返回值也要取个变量名(规范)...

2019-06-30 21:07:10 604

原创 golang常量与逻辑运算基本语法

由于本人是从java开发,后研究了python,又转到go,所以将会特别列举一些极其特殊的特点及语法go语言的简介常用语言并发排名:c++>java>php>pythonc++效率最高,但是语法太恶心,开发周期长java语法也很冗余,尤其是现在搞一堆实体类,但是各大app,主流语言还是java,能抗击并发,应用开发php并发能力一般,但还能用,语法简单入门快,后台管理...

2019-06-29 18:25:21 672

原创 使用helm charts部署企业级elk

github地址:https://github.com/elastic/helm-charts/所有的charts千万不要自己写,一定要上官网,上官网,上官网!拉下charts后会有几个问题:1.charts需要修改一些2.拉取海外的镜像可能不行,有墙3.pv未绑定的问题发布指令需要分别发布e\l\k,最后还需要发布kafka,而kafka会自带zk helm upgrade --...

2019-06-28 19:52:37 1447

原创 ingress nginx优劣势分析

经过一系列的线上踩坑,背锅等各种由于域名导致的线上事故之后,ingress nginx实在是不好用。企业还是必须要经过一个更好用的api网关来统一管理域名建议使用kong来替代ingress:https://github.com/Kong/kubernetes-ingress-controlleringress nginx优劣势:优势:简单,通过helm charts可以统一发布缺点:...

2019-06-28 12:08:10 6242

原创 jenkins pipeline之转义字符

jenkins pipeline之转义字符‘\’ 转义字符在jenkins可以使用吗?‘\’ 转义字符在jenkins可以使用吗?在shell中这段代码的意思是把String变量的字符串中的’‘全部替换为’-'sh ''' ${STRING\\/\-}'''但在jenkins中缺报错,是groovy编译错误最终使用如下解决,连转义字符都不需要了,jenkinspipeline的语...

2019-06-28 11:48:07 6266 2

原创 记一次线上k8s宕机

之前可使用kubectl top nodes观察发布时的cpu使用情况可以登陆node节点主机使用 top H -n 1 查看线程情况同时并发发布多个项目,导致cpu满了之后,挂掉导致该node节点的pod全部迁移至其他node节点,而其他node节点的cpu及线程最大限制都无法负载pod,导致node一个个宕机,最终整个集群宕机。经过查看发现是由于pid耗尽,致使docke...

2019-06-28 11:29:51 3014 1

原创 Spring源码1-走近spring

Spring源码1-走近spring本文为博主原创,转载请注明出处前言今天想要开一个坑,就是spring源码的坑。开了坑我一定会慢慢完成这个坑,但过程可能会较长。希望大家能慢慢关注啦。我自己也是从一个小白开始慢慢开始阅读源码,慢慢进步,而过程中最痛苦的过程就是spring源码。许多公司面试Java,尤其是高级开发,都会提问有没有看过spring源码,这仿佛成为了一种标准,你看过源码就说...

2019-01-06 20:14:35 106

原创 Mysql——ON DUPLICATE KEY UPDATE语句

Mysql语法本文为博主原创,转载请注明出处ON DUPLICATE KEY UPDATE使用情况: 当我们要向数据库中插入一条数据时,我们需要保证主键的唯一性。 如果插入的数据主键不重复,那么就插入;如果主键已存在(重复),那么就执行update之后的语句。使用方法:单句使用多句使用方法insert into 表名 values() on duplic...

2019-01-06 18:56:11 5183 1

空空如也

空空如也

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

TA关注的人

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