自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 记录 Spring Boot2 启动报错The bean ‘beanNameViewResolver‘, defined in class path resource 解决过程

在必问里面帮忙回答一个网友的问题:https://biwen.csdn.net/question/4664一、问题现象Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2020-07-19 10:47:22.557 ERROR 7412 --- [main] o.s.b.d.LoggingFailure...

2020-07-22 17:07:36 831 2

原创 架构设计(14)-- 分布式链路跟踪:我们自研log2组件

自研的原因:1、定制化:和我们api网关 globalId关联。2、日志内容:日志内容一天大概是1T, 如果使用开源,日志量暴增10倍。3、选择哪些参数过滤,比如二进制图片参数过滤。

2020-07-02 18:37:37 694

原创 架构设计(13)--分布式链路跟踪:skywalking原理和实践

本文总结网上的学习笔记目前分布式链路追踪系统基本都是根据谷歌的《Dapper大规模分布式系统的跟踪系统》这篇论文发展而来,主流的有zipkin,pinpoint,skywalking,cat,jaeger等。当企业应用进入分布式微服务时代,应用服务依赖会越来越多,skywalking可以很好的解决服务调用链路追踪的问题,而且基于java探针技术,基本对应用零侵入零耦合。skywalking中文文档skywalking完全由国人主导开发,在国内社区相当活跃。skywalking已成为 Ap.

2020-07-02 16:37:51 730

原创 架构设计(12) --分布式链路跟踪:Zipkin实践

本文总结网上文章做修改:一、Zipkin是什么Zipkin分布式跟踪系统;它可以帮助收集时间数据,解决在microservice架构下的延迟问题;它管理这些数据的收集和查找;Zipkin的设计是基于谷歌的Google Dapper论文。每个应用程序向Zipkin报告定时数据,Zipkin UI呈现了一个依赖图表来展示多少跟踪请求经过了每个应用程序;如果想解决延迟问题,可以过滤或者排序所有的跟踪请求,并且可以查看每个跟踪请求占总跟踪时间的百分比。二、为什么使用Zipkin随着业务越来越.

2020-07-02 16:18:01 864

原创 架构设计(11)-- 分布式链路跟踪

自研的原因:1、定制化:和我们api网关 globalId关联。2、日志内容:日志内容一天大概是1T, 如果使用开源,日志量暴增10倍。3、选择哪些参数过滤,比如二进制图片参数过滤。

2020-07-02 16:16:54 570

原创 k8s实践(12)--kubernetes 有状态服务部署与管理

一、集群的服务分类在K8S运行的服务,从简单到复杂可以分成三类:无状态服务、普通有状态服务和有状态集群服务。下面分别来看K8S是如何运行这三类服务的。1、无状态服务(Stateless Service):1)定义:是指该服务运行的实例不会在本地存储需要持久化的数据,并且多个实例对于同一个请求响应的结果是完全一致的。2)随意扩容和缩容:这些节点可以随意扩容或者缩容,只要简单的增...

2020-06-30 19:21:02 370

原创 k8s实践(11) --服务发现CoreDNS详解

参考:官方网站,https://coredns.io/ CoreDNS安装,https://my.oschina.net/u/2306127/blog/1618543 CoreDNS使用手册,https://coredns.io/manual/toc/ CoreDNS源码,https://github.com/coredns CoreDNS配置,https://my.oschina.n...

2020-06-30 19:20:44 245

原创 k8s实践(10) -- 集群运行原理分析

1、Kubernetes API Server原理分析Kubernetes API Server的核心功能是提供了Kubernetes各类资源对象(如Pod、RC、Service等)的增、删、改、查及Watch等HTTP Rest接口,成为集群内各个功能模块之间数据交互和通信的中心枢纽,是整个系统的数据总线和数据中心。除此之外,它还有以下一些功能特性:是集群管理的API入口。 是资源配额...

2020-06-30 19:19:51 175

原创 k8s实践(9)--深入了解Pod

一、Pod简介 Pod是k8s系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在k8s上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展Pod对象功能的,比如控制器对象是用来管控Pod对象的,Service或者Ingress资源对象是用来暴露Pod引用对象的,PersistentVolume资源对象是用来为Pod提供存储等等,k8...

2020-06-30 19:17:27 388

原创 k8s实践(8)--ssl安全认证配置

一.基于CA签名的双向数字证书认证方式在一个安全的内网环境中, Kubernetes的各个组件与Master之间可以通过apiserver的非安全端口http://apiserver:8080进行访问。但如果apiserver需要对外提供服务,或者集群中的某些容器也需要访问apiserver以获取集群中的某些信息,则更安全的做法是启用HTTPS安全机制。Kubernetes提供了基于CA签名的...

2020-06-16 10:56:37 253

原创 k8s实践(7)- k8s Secrets

Secrets是Kubernetes中一种对象类型,用来保存密码、私钥、口令等敏感信息。与直接将敏感信息嵌入image、pod相比,Secrets更安全、更灵活,用户对敏感信息的控制力更强。同Docker对敏感信息的管理类似,首先用户创建Secrets将敏感信息加密后保存在集群中,创建pod时通过volume、环境变量引用Secrets。1. Secret类型Secret有三种类型:O...

2020-06-16 10:55:39 212

原创 k8s实践(6)--Kubernetes安全

Kubernetes安全安全永远是一个重大的话题,特别是云计算平台,更需要设计出一套完善的安全方案,以应对复杂的场景。 Kubernetes主要使用Docker作为应用承载环境,Kubernetes首先设计出一套API和敏感信息处理方案,当然也基于Docker提供容器安全控制。以下是Kubernetes的安全设计原则:1. 保证容器与其运行的宿主机之间有明确的隔离2. 限制容器对基础设施...

2020-06-16 10:55:07 239

原创 k8s实践(5)k8s的命名空间Namespace

1、什么是Namespace?你可以认为namespaces是你kubernetes集群中的虚拟化集群。在一个Kubernetes集群中可以拥有多个命名空间,它们在逻辑上彼此隔离。 他们可以为您和您的团队提供组织,安全甚至性能方面的帮助!“default” Namespace大多数的Kubernetes中的集群默认会有一个叫default的namespace。实际上,应该是3个:d...

2020-06-11 22:40:54 384

原创 k8s实践(4)--k8s集群网络详解和flannel

一、Docker网络模式在讨论Kubernetes网络之前,让我们先来看一下Docker网络。Docker采用插件化的网络模式,默认提供bridge、host、none、overlay、maclan和Network plugins这几种网络模式,运行容器时可以通过–network参数设置具体使用那一种模式。bridge:这是Docker默认的网络驱动,此模式会为每一...

2020-06-11 22:38:37 423 2

原创 k8s实践(3)--k8s集群安装详解

一、Kubernetes简介1.1 Kubernetes简介Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S。K8S是Google内部一个叫Borg的容器集群管理系统衍生出来的,Borg已经在Google大规模生产运行十年之久。K8S主要用于自动化部署、扩展和管理容器应用,提供了资源调度、部署管理、服务...

2020-06-11 22:33:10 331

原创 k8s实践(2) etcd集群安装

1、简介​ etcd是由CoreOS团队发的一个分布式一致性的KV存储系统,可用于服务注册发现和共享配置,随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一...

2020-06-11 19:58:37 459

原创 k8s实践(1)--k8s集群入门

一、Kubernetes简介1.1 Kubernetes简介Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S。K8S是Google内部一个叫Borg的容器集群管理系统衍生出来的,Borg已经在Google大规模生产运行十年之久。K8S主要用于自动化部署、扩展和管理容器应用,提供了资源调度、部署管理、服务发现、扩容缩容、监控等一整套功能。Kubernetes目标是让部署容器化应用简单高效。官方网站:www.ku...

2020-06-11 19:37:05 879

原创 docker实践(3) 仓库registry和Nexus3作为私有镜像仓库

1. docker安装并运行spring boot1.1 下载官方的 CentOS 镜像到本地必须先启动docker才能下载:docker pull centos1.2 运行一个 Docker 容器:[root@localhost~]#docker run-i-t centos/bin/bash[root@d

2020-06-11 19:26:15 280

原创 docker实践(2)常用命令和DockerFile详解

1. 镜像相关命令1、获取:docker pull centos获取镜像 #从官方仓库注册服务器下载镜像 docker pull dl.dockerpool.com:5000/ubuntu:12.04指定完整的仓库注册服务器地址下载镜像。 docker search centos#搜索官方仓库注册服务器下的centos镜像 2、列出本地镜像:...

2020-06-11 19:21:25 537

原创 docker实践(1) 入门和springBoot实践部署

一. 什么是docker Docker是一个开源项目,诞生于2013年初, 最初是 dotCloud 公司内部的一个业余项目。 它基于Google公司推出的Go语言实现。项目后来加入了Linux基金会, 遵从了 Apache 2.0 协议,项目代码在GitHub上进行维护。 Docker 自开源后受到广泛的关注和讨论, 以至于dotCloud公司后来都改名为D...

2020-06-11 19:17:07 2113

原创 Spring Boot(5) @Async异步线程池详解

一. Spring异步线程池的接口类 :TaskExecutorSpring异步线程池的接口类,其实质是java.util.concurrent.ExecutorSpring 已经实现的异常线程池:1. SimpleAsyncTaskExecutor:不是真的线程池,这个类不重用线程,每次调用都会创建一个新的线程。2. SyncTaskExecutor:这个类没有实现异步调用,只是一个同步操作。只适用于不需要多线程的地方3. ConcurrentTaskExecutor:Executor...

2020-06-11 14:14:05 513

原创 架构设计(10) --分布式服务治理

服务治理离基于架构运维的devops平台,目前还没有完全迁移到k8s平台。一、项目和服务管理:1、项目命名规范2、项目记录:列出服务负责人及使用文档3、项目对应服务等级协定4、项目对应服务配置5、项目对应服务的层次6、服务管理:服务名称、端口号、启动命令、服务类型、日志说明服务划分层次:产品接入层: 直接对外提供服务,例如网站、API接口等。接入层不包含复杂的业务逻辑,只做呈现和转换。对应的项目类 型:openapi接口,platformweb,wechat,..

2020-06-05 12:39:56 1323

原创 架构设计(9)—高性能设计

一、性能指标1、响应时间指应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。响应时间是系统最重要的性能指标,直观地反映了系统的“快慢"。长远系统操作需要的响应时间。网络连接响应时间:1、本机的话,通信内容直接走内存。2、局域网走网卡,然后通过交换机,指定到相应主机。tcp建立3次握手,一般耗0.6毫秒左右。3、外网通过网卡->路由器->互联网。在外网,不同地域,网络耗时也不一样(经过的节点)。比如在深圳和北京访问北京阿里云:

2020-06-04 18:38:39 698

原创 构建知识体系(3):建立体系6个步骤

网络文章总结:1、为什么要构建知识体系如果想真正地开始读一本书,一定要明白自己的阅读动机并发现兴趣点。建立个人知识体系的第一步是,学会提问。你要建立什么样的知识体系?你想达到什么样的目的和效果?你关注了哪些领域?你对哪些方面比较感兴趣呢?比如时间管理,阅读,写作,手绘,美食,健身,心理咨询……你要明白自己的兴趣爱好点在哪,正如我们阅读时强调的,必须带有目的性,选择自己感兴趣的进行阅...

2020-05-07 16:47:20 466

原创 构建知识体系(2):如何构建

构建原则:要做到系统化、流程化、可视化三点。构建方法:这也是从道、法、术、器、势的角度去全面解决问题。“道”:确定目标方向“法”: 制定规则“术”:方法路径“势”:执行力“器”:工具一、系统化(道·法·势)通过系统地规定,明确方向、准则来建立知识消化系统,保证构建过程处于正常的轨道,并不断前进。 (确定理念、方向即是道;掌握规律、准则既是法;顺应趋势、自然既是...

2020-05-07 16:33:19 609 2

原创 构建知识体系(1):知识体系是什么?
原力计划

理论也有理论存在的意义:反复咀嚼让它们烂熟于心,有认知才能有觉察,有理念才能有提醒。

2020-05-07 12:29:50 915

原创 架构师成长之路(5)--架构师具备的思维

一个思维习惯,让你成为架构师程序员的迷茫不仅仅是面对技术繁杂的无力感,更重要的是因为长期埋没于软件 世界的浩大的分工体系中,无法看清从业务到软件架构的价值链条,无法清楚定位自 己在分工体系的位置,处理不好自身与技术、业务的关系所致。很多程序员打心底不喜欢业务,这一点我曾经也经历过,我更宁愿从事框架工 具、技术组件研究的相关事情。我有个朋友经常吐槽我说:”你们天天加班加点写了 那么多代码,然...

2020-02-25 14:32:37 860

原创 架构师成长之路(3)--如何成为架构师(方法)

前言:哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知。如果我们要成为架构师,我们自己要面临的三大问题:找准自己定位:我是谁?在哪里?怎样做好架构师:我要做什么?如何搭建架构师知识体系:我该怎么做?这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做), 执行/行动0.能力等级定义心理...

2019-11-04 10:25:27 43620 29

原创 Linux服务器性能评估与优化(四)--网络

之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文:《Linux服务器性能评估与优化(一)--CPU》《Linux服务器性能评估与优化(二)--内存》《Linux服务器性能评估与优化(三)--磁盘i/o》《Linux服务器性能评估与优化(四)--网络》《Linux服务器性能评估与优化(五)--内核参数》1、网络性能评估网络是所有...

2019-10-18 10:51:05 1764 2

原创 Linux服务器性能评估与优化(三)--磁盘i/o

之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文:《Linux服务器性能评估与优化(一)--CPU》《Linux服务器性能评估与优化(二)--内存》《Linux服务器性能评估与优化(三)--磁盘i/o》《Linux服务器性能评估与优化(四)--网络》《Linux服务器性能评估与优化(五)--内核参数》前言、磁盘基础知识彻底...

2019-10-18 10:41:08 920

原创 Linux服务器性能评估与优化(二)--内存

之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文:《Linux服务器性能评估与优化(一)--CPU》《Linux服务器性能评估与优化(二)--内存》《Linux服务器性能评估与优化(三)--磁盘i/o》《Linux服务器性能评估与优化(四)--网络》《Linux服务器性能评估与优化(五)--内核参数》1、虚拟内存简介 ...

2019-10-18 10:38:15 1463 2

原创 架构师成长之路(6)--技术深度和广度

一、技术的深度说到技术深度,深到底多深才叫有深度,是不是技术钻研的越就显得越牛逼,那学一门技术要怎么学才叫有深度的学?学任何的知识都要形成一个体系,才能学得深,记得牢。功利性地,走马观花似的学习,很快就会忘记。1、学习层次认知我们先看看加涅定义学习的层次:陌生——辨别——概念——规则(方法,套路等)——高级规则(解决问题)。对应到我们技术,在我们技术简历上面,经常出现...

2019-06-08 01:56:41 2697

原创 Redis详解(7)性能监控:问题分析和优化

对于任何应用服务和组件,都需要一套完善可靠谱监控方案。尤其redis这类敏感的纯内存、高并发和低延时的服务,一套完善的监控告警方案,是精细化运营的前提。一、Redis监控告警的价值redis故障快速通知,定位故障点;对于DBA,redis的可用性和性能故障需快速发现和定位解决。分析redis故障的Root causeredis容量规划和性能管理redis硬件资源利用率和成本...

2019-06-04 12:35:05 1915

原创 Redis详解(5)常见问题和解决方法

1、Redis Master 数据库 性能调优  1.Master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master最好不要写内存快照。  2.Master AOF持久化,如果不重写AOF文件,这个持久化方式对性能的影响是最小的,但是AOF文件会不断增大,AOF文件过大会影响Master重启的恢...

2019-06-03 11:24:19 1859

原创 redis cluster(6)- redis集群应用和问题总结

问1、问题:1、新加节点,如果没有分配slot,没有执行redis-trib.rb reshard,java的java.lang.IllegalArgumentException: Node 10.31.145.246:7032 is unknown to cluster解决:新加节点需要执行reshard2、10.46.65.34[ERR] Not all 16384 slo...

2019-06-03 11:20:09 1428

原创 redis cluster(5)- redis集群原理

https://www.jianshu.com/p/0232236688c11、集群架构Redis集群设计总体架构在这个图中,每一个蓝色的圈都代表着一个redis的服务器节点。它们任何两个节点之间都是相互连通的。客户端可以与任何一个节点相连接,然后就可以访问集群中的任何一个节点。对其进行存取和其他操作。集群节点属性集群中每个Master node负责存储数据、集群状态...

2019-06-03 11:19:41 7928 2

原创 redis-cluster(4)redis集群管理工具:redis-trib.rb详解

redis cluster管理工具redis-trib.rb详解redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集群命令封装成简单、便捷、实用的操作工具。redis-trib.rb是redis作者用ruby完成的。为了看懂redis-trib.rb,我特意花了一个星期学习了ruby,也被ruby的简洁、明了所...

2019-06-03 11:18:04 744

原创 redis cluster(3)- redis集群管理:伸缩,故障

redis安装详见安装文档,目前部署3.2.3,不同版本并不一定能够兼容#安装文档:http://gitlab.tuling123.com/docs/openDocs/wikis/op-redis-in[root@tuling10-80-82-74 redis-3.2.3]# redis-cli --versionredis-cli 3.2.31、新增节点:增加节点的顺序是...

2019-06-03 11:16:37 559

原创 redis cluster(2)- redis集群常用命令

集群(cluster) :这些命令是集群所独有的。执行上述命令要先登录#查看redis集群信息:redis-cli -c -p 6379 cluster nodes或者redis-trib.rb check 10.26.25.115:6379redis-trib.rb info 10.26.25.115:63791、查看集群:CLUSTERINFO打印集群的信...

2019-06-03 11:16:06 4716 3

原创 redis cluster(1)-redis集群安装配置详解

总结:1、简介Redis Cluster是一个高性能高可用的分布式系统。由多个Redis实例组成的整体,数据按照Slot存储分布在多个Redis实例上,通过Gossip协议来进行节点之间通信。1.1Redis集群核心的目标:在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子。最核心的目标有三个:1、性能:这是Redis赖以生存的看家...

2019-06-03 11:12:40 3329

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