自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

琦彦

Find out who you are,and be that person.

原创 Docker :常用命令查询

课程分享: 课程分享:Docker+Kubernetes(k8s)微服务容器化实践 课程分享:Kubernetes(k8s)生产级实践指南 从部署到核心应用 课程分享:(极客时间)深入剖析Kubernetes Docker 命令查询 基本语法 Docker 命令有两大...

2019-10-01 14:51:33 2653 5

原创 使用 Java 操作 Kubernetes API

目录 本文目标 k8s-client-java选型 kubernetes-client/java和fabric8io/kubernetes-client对比 kubernetes-client/java的使用 REST API kubectl api-versions REST AP...

2019-09-25 09:38:43 23412 13

转载 kubectl :命令技巧大全

kubectl 命令技巧大全 Kubctl 命令是操作 kubernetes 集群的最直接和最 skillful 的途径,这个60多MB大小的二进制文件,到底有啥能耐呢?请看下文: Kubectl命令概览 Kubernetes提供的kubectl命令是与集群交互最直接的方式,v1.6版本...

2019-07-25 08:39:24 15073 0

原创 使用GitLab CI和Docker自动部署SpringBoot应用

原文发表于kubernetes中文社区,为作者原创翻译,原文地址 更多kubernetes文章,请多关注kubernetes中文社区 Docker和Spring Boot是非常流行的组合,我们将利用GitLab CI的优势,并在应用程序服务器上自动构建,推送和运行Docker镜像。 Git...

2020-05-29 15:00:11 122 0

原创 Go基础:格式化输出--Printf、Sprintf、Fprintf

目录 Printf、Sprintf、Fprintf区别 格式化输出示例 Printf详解 格式字符串 旗标 宽度和精度 arg 索引 动词 通用动词 布尔型 整型 浮点型和复数型 字符串或字节切片 指针类型 复合类型 Printf、Sprintf、Fprin...

2020-05-23 16:21:28 130 0

原创 Kubernetes:创建和分配Kubernetes Pod安全策略
原力计划

Pod Security Policies(PSP) Pod Security Policies(PSP)是集群级的Pod安全策略,自动为集群内的Pod和Volume设置Security Context。 使用PSP需要API Server开启extensions/v1beta1/podse...

2020-05-19 18:47:53 192 0

原创 混沌网格(Chaos Mesh)的设计和工作原理
原力计划

原文发表于kubernetes中文社区,为作者原创翻译,原文地址 更多kubernetes文章,请多关注kubernetes中文社区 目录 为什么选择混沌网格(Chaos Mesh)? 混沌网格(Chaos Mesh)可以做什么? 混沌网格(Chaos Mesh)设计 专为Kuber...

2020-05-14 08:35:44 153 0

原创 Go基础:接口类型、接口嵌套、空接口、类型判断
原力计划

1. 接口 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 1.1. 接口 1.1.1. 接口类型 在Go语言中接口(interface)是一种类型,一种抽象的类型。 interface是一组method的集合,是duck-type ...

2020-05-10 08:46:51 262 0

原创 Go基础:指针地址、指针类型、多重指针、指针运算
原力计划

目录 到底什么是指针呢? 指针 指针地址和指针类型 指针取值 指针变量初始化 指针运算符 多重指针 指针运算 到底什么是指针呢? 内存就是一系列有序列号的存储单元,变量就是编译器为内存地址分配的昵称,那么指针是什么呢? 指针就是一个指向另一个内存地址变量的值 指针指向变...

2020-05-08 12:15:53 417 0

转载 Go基础:常见的json包--encoding/json、easyjson、ffjson、json-iterator/go

本文对常见的json包做一些介绍,方便快速入门。每一小节均有示例说明。大家在实际开发中可以选择适合自己的json包。 encoding/json encoding/json是官方提供的标准json, 实现RFC 7159中定义的JSON编码和解码。 使用的时候需要预定义struct,原理是...

2020-05-07 18:35:31 192 0

转载 Go基础:开发中常见错误总结

1.1. 前言 Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。 如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会...

2020-05-04 15:06:51 86 0

原创 Go基础:如何做单元测试和基准测试
原力计划

目录 1. 单元测试 1.1. go test工具 1.2. 测试函数 1.2.1. 测试函数的格式 1.2.2. 测试函数示例 1.3. 测试组 1.4. 子测试 1.5. 测试覆盖率 1.6. 基准测试 1.6.1. 基准测试函数格式 1.6.2. 基准测试示例 1.6...

2020-05-03 19:56:22 157 0

原创 如何在kubernetes中将secret标记为可选或必选?

使用环境变量方式创建带有secret的pod 创建username为bob的secret kubectl create secret generic super-secret --from-literal=username=bob 创建带有secret的pod apiVersion...

2020-04-28 17:27:44 125 0

原创 Kubernetes运行有状态应用程序的注意事项
原力计划

目录 Kubernetes存储演进 Kubernetes运行有状态应用程序的注意事项 1. 易于使用的持久存储 2. 高可用性选项 3. 混合云数据的可移植性 4. 性能 5. 服务质量(QoS)的保证 6. 用于存储和数据的共享网络 7. 安全性/加密 独特的存储方式:Dia...

2020-04-28 16:40:19 132 0

原创 RabbitMQ精讲10:基础组件架构封装思路
原力计划

1前言 分享互联网大厂的基础组件架构封装思路, 其中涉及到 消息发送的多模式化、 消息的高性能序列化、 消息的异步化、 连接的缓存容器、 消息的可靠性投递、补偿策略、 消息的幂等解决方案 2 一线大厂的MQ组件实现思路和架构设计思路 一线大厂的MQ组件实现思路和架构设计思...

2020-04-18 09:51:45 178 0

原创 RabbitMQ精讲9:镜像模式集群搭建,整合KeepAlived+HaProxy组件
原力计划

镜像模式集群搭建 1.1 集群节点安装 1、安装依赖包 PS:安装rabbitmq所需要的依赖包 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kern...

2020-04-18 08:28:03 731 0

原创 RabbitMQ精讲8:集群架构模式-主备模式、远程模式、多活模式、镜像模式

目录 RabbitMQ集群架构模式-主备模式(Warren)--并发和数据量不高 RabbitMQ集群架构模式-远程模式(Shovel)--很少使用 RabbitMQ集群架构模式-多活模式(Federation)--异地数据复制的主流模式 RabbitMQ集群架构模式-镜像模式(Mirro...

2020-04-17 18:41:07 263 0

原创 RabbitMQ精讲7:与SpringBoot、Spring Cloud Stream整合实战
原力计划

目录 与SpringBoot整合实战 1.生产端 2. 消费端 消费端核心配置: @RabbitListener注解使用 3.代码示例 3.1pom文件和消息实体 3.2生产者 3.3消费者 与Spring Cloud Stream整合实战 1. 架构介绍 2. 核心概念:...

2020-04-16 18:09:01 199 0

原创 RabbitMQ精讲6:与Spring AMQP整合实战

与Spring AMQP整合实战 1. AMQP 核心组件 RabbitAdmin SpringAMQP声明 RabbitTemplate SimpleMessageListenerContainer MessageListenerAdapter MessageConvert...

2020-04-16 10:52:17 138 0

原创 Swagger2离线文档:swagger2markup代码和插件方式

SpringBoot集成Swagger2,以及Swagger2常用API Swagger2离线文档:PDF和Html5格式 SpringBoot整合Shiro,Swagger2页面样式加载不出来问题 Swagger2Markup简介 Swagger2Markup是Github上的一个开...

2020-04-14 09:31:45 3370 0

原创 RabbitMQ精讲5:深入RabbitMQ高级特性-限流、ACK、TTL和死信队列

前言 自定义消费者 消息的限流(防止占用内存过多,节点宕机) 消息的ACK与重回队列 TTL消息 死信队列 1. 自定义消费者 1.1 消费端自定义监听 我们一般就在代码中编写while循环,进行consumer.nextDelivery方法进行获取下一条消息,然后进行消费处理! 但是这...

2020-04-12 17:41:47 3207 0

原创 RabbitMQ精讲4:深入RabbitMQ高级特性-可靠性投递、幂等性消费、Confirm确认消息、Return返回消息
原力计划

前言 本章主要为大家讲解RabbitMQ的高级特性和实际场景应用,包括 消息如何保障 100% 的投递成功 ? 幂等性概念详解, 在海量订单产生的业务高峰期,如何避免消息的重复消费问题? Confirm确认消息、Return返回消息等。 1 消息如何保障100%的投递成功? 1...

2020-04-12 12:26:55 3353 0

原创 何时不需要微服务架构,Istio1.5告诉你

目录 已经走上了微服务的道路 有时还是会“回到整体” Istio:微服务架构方式(V1.5之前) 微服务的好处 Istio1.5:从微服务到单一 结论 原文发表于kubernetes中文社区,为作者原创翻译,原文地址 更多kubernetes文章,请多关注kubernetes中文...

2020-04-12 11:42:50 3556 0

原创 RestTemplate:Spring 封装的 HTTP 同步请求类
原力计划

1. 简述RestTemplate 是Spring用于同步client端的核心类,简化了与http服务的通信,并满足RestFul原则,程序代码可以给它提供URL,并提取结果。默认情况下,RestTemplate默认依赖jdk的HTTP连接工具。当然你也可以 通过setRequestFacto...

2020-04-10 18:28:29 3322 0

转载 Kubernetes:HPA 详解-基于 CPU、内存和自定义指标自动扩缩容

在前面的学习中我们使用用一个 kubectl scale 命令可以来实现 Pod 的扩缩容功能,但是这个毕竟是完全手动操作的,要应对线上的各种复杂情况,我们需要能够做到自动化去感知业务,来自动进行扩缩容。为此,Kubernetes 也为我们提供了这样的一个资源对象:HorizontalPodAut...

2020-04-09 16:37:59 3704 0

原创 如何以非root用户运行Docker容器

原文发表于kubernetes中文社区,为作者原创 原文地址 需要用root用户运行Docker? 组织中,经常以Root用户运行Docker中的容器。但是你的工作负载真的需要root权限吗?显然很少。尽管如此,默认情况下,你的容器仍将以root用户身份运行。但这可能会带来严重的安全问题。实际...

2020-04-07 07:16:16 636 0

转载 Kubernetes:在边缘计算领域的发展和KubeEdge介绍

1 边缘计算 2 基于kubernetes构建边缘计算平台 3 基于kubernetes 的开源边缘计算项目 4 kubeedge 详解 现在开源边缘计算正在经历其业界最具活力的发展阶段。如此多的开源平台,如此多的整合以及如此多的标准化举措!这显示了构建更好平台的强大动力,以便将云计算带到边缘...

2020-04-05 23:00:21 411 0

原创 RabbitMQ精讲3:Exchange交换机类型-direct、topic、fanout

前言 来了解RabbitMQ一个重要的概念:Exchange交换机 1. Exchange概念 Exchange:接收消息,并根据路由键转发消息所绑定的队列。 Exchange 蓝色框:客户端发送消息至交换机,通过路由键路由至指定的队列。 黄色框:交换机和队列通过路由键有...

2020-04-03 16:24:11 157 0

原创 Docker层和虚悬镜像(dangling image)介绍

原文发表于kubernetes中文社区,为作者原创 原文地址 当你拉取Docker镜像时,你会注意到它被拉取成不同的层。另外,当你创建自己的Docker镜像时,也会创建多个层。在本文中,我们将更好地理解Docker层。 1.什么是Docker层? Docker镜像由几层组成。每层都对应 Doc...

2020-04-02 22:14:20 303 0

转载 常见面试问题1:ZooKeeper、Redis、Mysql、JVM、Spring、Dubbo

面试问题整理 ZooKeeper CAP定理: 一个分布式系统不可能同时满足以下三种,一致性(C:Consistency),可用性(A:Available),分区容错性(P:Partition Tolerance).在此ZooKeeper保证的是CP,ZooKeeper不能保证每次服务请求的可用性...

2020-04-02 14:56:18 245 0

转载 MySQL:从.ibd文件恢复误删的数据

从.ibd文件恢复误删的数据 1.新建一个数据库,创建一张表,表结构与原表结构一致: CREATE TABLE <table_name> ...; 2.删除新建的表空间: ALTER TABLE <table_name> DISCARD TABLESPACE;...

2020-04-01 14:55:33 180 0

原创 RabbitMQ精讲2:常用命令和配置文件

1.1 基础服务的命令操作 rabbitmqctl stop_app:关闭应用 rabbitmqctl start_app:启动应用 rabbtmqctl status:节点状态 rabbitmqctl add_user username password:添加用户 rabbitmqc...

2020-03-29 23:17:44 272 0

原创 RabbitMQ精讲1:主流MQ对比,为什么选择RabbitMQ

前言 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。今天主...

2020-03-28 18:12:12 501 0

转载 Kubernetes 控制器:从 Kubernetes 资源控制到开放应用模型、工作原理解读

我是一堆 Kubernetes 控制器。 你可能会疑惑为什么是一堆,因为我不是一个人,我只是众多控制器中的一员,你也可以把我看成是众多控制器的集合。我的职责就是监控集群内资源的实际状态,一旦发现其与期望的状态不相符,就采取行动使其符合期望状态。 想当初,Kubernetes 老大哥创造我时,只...

2020-03-25 16:59:42 149 0

原创 kubernetes:Cronjobs属性failedJobsHistoryLimit不生效,不能自动清理状态为Error的Pod

Cronjobs属性failedJobsHistoryLimit不生效 问题现象 在 《Kubernetes: Job 和 CronJob 的实现原理》一文中,我们提到cron中有如下属性可以设置任务保留个数 (1.8版本后).spec.successfulJobsHistoryLimit...

2020-03-19 12:03:47 8035 0

原创 Kubernets:容器日志收集方案

Kubernetes 日志系统建设难点 典型的 Kubernetes 架构 Kubernetes 上的日志方案相比我们之前基于物理机、虚拟机场景的日志方案有很大不同,例如: 日志的形式变得更加复杂,不仅有物理机/虚拟机上的日志,还有容器的标准输出、容器内的文件、容器事件、Kubernet...

2020-03-14 13:46:35 1379 0

转载 为什么Kubernetes天然适合微服务?

最近在反思,为什么在支撑容器平台和微服务的竞争中,Kubernetes会取得最终的胜出。因为在很多角度来讲三大容器平台从功能角度来说,最后简直是一摸一样,具体的比较可以参考本人前面的两篇文章。 《Docker, Kubernetes, DCOS 不谈信仰谈技术》 《容器平台选型的十大模式:Do...

2020-03-13 22:54:18 139 0

转载 Kubernetes:Event-事件处理机制

Event前言 当集群中的 node 或 pod 异常时,大部分用户会使用 kubectl 查看对应的 events,那么 events 是从何而来? 其实 K8s 中的各个组件会将运行时产生的各种事件汇报到 apiserver,对于 K8s 中的可描述资源,使用 kubectl descri...

2020-03-13 22:30:55 451 0

原创 基于Alpine构建轻量级带有cURL功能的Docker镜像

cURL是我喜欢的开源软件之一。虽然cURL的强大常常被认为是理所当然的,但我真心地认为它值得感谢和尊重。如果我们的工具箱失去了curl,那些需要和网络重度交互的人(我们大多数人都是这样的)将会陷入到困境中。curl速度快、体积小,并且和大多数好工具一样,简洁干净,尽量不影响用户,只做它们需要做的...

2020-03-11 23:13:52 573 0

原创 Go基础:channel、定时器、select、锁、sync、atomic

Channel goroutine Channel 单纯地将函数并发执行是没有意义的。函数与函数间需要交换数据才能体现并发执行函数的意义。 虽然可以使用共享内存进行数据交换,但是共享内存在不同的goroutine中容易发生竞态问题。为了保证数据交换的正确性,必须使用互斥量对内存进行...

2020-03-08 18:43:28 202 0

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