自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 7.Linux磁盘与文件系统管理

CentOS 7 开始,默认的文件系统已经由原本的 EXT4 变成了 XFS文件系统了!为啥CentOS 要舍弃对 Linux 支持度最完整的 EXT 家族而改用 XFS 呢?这是有一些原因存在的。EXT 家族当前较伤脑筋的地方:支持度最广,但格式化超慢!Ext 文件系统家族对于文件格式化的处理方面,采用的是预先规划出所有的inode/block/meta data 等数据,未来系统可以直接取用,不需要再进行动态配置的作法。这个作法在早期磁盘容量还不大的时候还算 OK。

2023-08-30 10:47:57 75

原创 6.Linux文件与目录管理

当我们在执行一个指令的时候,举例来说"ls"好了,系统会依照PATH的设置去每个PATH定义的目录下搜寻文件名为ls的可可执行文件,出 (ls -l);我们知道dmtsai这个使用者的主文件夹是/home/dmtsai/,而root主文件夹则是/root/,假设我以root身份在。

2023-08-30 10:45:10 88

原创 5.Linux文件权限与目录配置

答:由于指令的执行需要变量(bash章节才会提到)的支持,若你的可执行文件放置在本目录,并且本目录并非正规的可执行文件目录(/bin,如果想要让系统默认的语系变成英文的话,那么你可以修改系统配置文件"/etc/locale.conf",利用第四章谈到的nano来修改该文件的内容,使LANG这个变量成为上述的内容即可。上述的例子解释是这样的,假设有个莫名其妙的人,拿着一个完全密封的数据夹放到你的办公室抽屉中,因为完全密封你也打不开、看不到这个数据夹的内部数据(对文件来说,你没有权限)。这里你就必须要小心啦!

2023-08-30 10:44:36 78

原创 4.首次登陆与线上求助

最近更新日期:20//终于可以开始使用Linux这个有趣的系统了!由于Linux系统使用了非同步的磁盘/内存数据传输模式,同时又是个多用户多任务的环境,所以你不能随便的不正常关机,关机有一定的程序喔!错误的关机方法可能会造成磁盘数据的损毁呢!此外,Linux有多种不同的操作方式,图形接口与命令行的操作有何不同?我们能否在命令行取得大量的指令说明,而不需要硬背某些指令的选项与参数等等。这都是这一章要来介绍的呢!第四章、首次登陆与线上求助首次登陆系统登陆系统有这么难吗?并不难啊!

2023-08-30 10:42:55 44

原创 3.安装CentOS7.x

好了,下面我们就真的要来安装啰!所以,如下图所示,点选之后,鸟哥是使用"启用"的默认值,并没有特别取消掉这项目就是了。按下一步就会进入选择光盘镜像文件的文件名~这时请按"浏览"并且选择"文件系统",再慢慢一个一个选择即可!这个帐号既然是你要使用的,那么这个帐号应该就是你认可的管理员使用的一般帐号啊!在出现的画面中,选择"进阶选项"之后,挑选主机设备设置,然后点选桥接功能,如此一来才有办法让你的虚拟机网卡具有直接对外的功能喔!另外,图中的文件系统就是实际"格式化"的时候,我们可以格式化成什么文件系统的意思。

2023-08-30 10:40:26 24

原创 2.主机规划与磁盘分区

最近更新日期:20//事实上,要安装好一部Linux主机并不是那么简单的事情,你必须要针对distributions的特性、服务器软件的能力、未来的升级需求、硬件扩充性需求等等来考虑,还得要知道磁盘分区、文件系统、Linux操作较频繁的目录等等,都得要有一定程度的了解才行,所以,安装Linux 并不是那么简单的工作喔!不过,要学习Linux总得要有Linux系统存在吧?所以鸟哥在这里还是得要提前说明如何安装一部Linux练习机。在这一章里面,鸟哥会介绍一下,在开始安装。

2023-08-30 10:31:06 52

原创 0.计算机概论

最近更新日期:20//由过去的经验当中,鸟哥发现到因为兴趣或生活所逼而必须要接触 Linux的朋友,很多可能并非信息相关专业出身,因此对于电脑软/硬件方面的概念不熟。然而操作系统这种咚咚跟硬件有相当程度的关连性,所以,如果不了解一下计算机概论,要很快的了解 Linux的概念是有点难度的。因此,鸟哥就自作聪明的新增一个小章节来谈谈计概啰!因为鸟哥也不是信息相关学科出身,所以,写的不好的地方请大家多多指教啊!^_^第零章、计算机概论电脑:辅助人脑的好工具。

2023-08-30 10:24:47 51

原创 1.Linux是什么与如何学习

第一章、Linux是什么与如何学习最近更新日期:20//众所皆知的,Linux的核心原型是1991年由托瓦兹(LinusTorvalds)写出来的,但是托瓦兹为何可以写出Linux这个操作系统?为什么他要选择386的计算机来开发?为什么Linux的发展可以这么迅速?又为什么Linux是免费且可以自由学习的?以及目前为何有这么多的Linux套件版本(distributions)呢?了解这些东西后,才能够知道为何Linux可以免除专利软件之争,并且了解到Linux为何可以同时在个人计算机与大型主机

2023-08-30 10:08:50 58

原创 简单工厂模式

Number属性,主要用于计算器的前后数,然后有一个虚方法GetResult(),用于得到结。注意前面的符号,‘+’表示public,‘-’表示。果,然后我把加减乘除都写成了运算类的子类,继承它后,重写了GetResult()方法,这。总之,企鹅需要‘知道’气候的变化,需要‘了解’气候规律。Web程序,PDA或手机程序,都可以用这段代码来实现计算器的功能,如果有一天我们需。大鸟:“首先你看那个‘动物’矩形框,它就代表一个类(Class)。接,应改问语才够意境,因此应改为‘对酒当歌,人生几何?

2023-08-11 15:50:45 24

原创 大话设计模式

是抽象类,其实也就是一抽象模板,定义并实现了一个模版方法。这个模版方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现。顶级逻辑也有可能调用一些具体方法。

2023-08-11 14:48:52 347

原创 34 Istio:Service Mesh的代表产品

今天我给你详细讲解了Istio的架构及其基本组件Proxy、Pilot、Mixer以及Citadel的工作原理,从Istio的设计和实现原理可以看出,它是采用模块化设计,并且各个模块之间高度解耦,Proxy专注于负责服务之间的通信,Pilot专注于流量控制,Mixer专注于策略控制以及监控日志功能,而Citadel专注于安全。正是这种高度模块化的设计,使得Istio的架构极具扩展性和适配性,如果你想加强流量控制方面的功能,可以在Pilot模块中定制开发自己的代码,而不需要修改其他模块;

2023-08-11 10:51:12 34

原创 33 下一代微服务架构Service Mesh

Service Mesh的概念最早是由Buoyant公司的CEO William Morgan在一篇文章里提出,他给出的服务网格的定义是:专栏里我就不解释教条的定义了,感兴趣的话你可以点击链接阅读原文,这里我来谈谈我对Service Mesh的理解。我认为是Service Mesh是一种新型的用于处理服务与服务之间通信的技术,尤其适用以云原生应用形式部署的服务,能够保证服务与服务之间调用的可靠性。

2023-08-11 10:51:03 47

原创 32 微服务混合云部署实践

今天我给你讲解了微服务混合云部署必须解决的三个问题:跨云服务的负载均衡、跨云服务的数据同步、跨云服务的容器运维,以及微博在微服务混合云部署时的实践方案,可以说正是由于采用了混合云部署,才解决了微博在面对频繁爆发的热点事件带来突发流量时,内部资源冗余度不足的问题。虽然云原生应用现在越来越流行,但对于大部分企业来说,完全脱离内部私有云并不现实,因为云也不是完全可靠的,一旦云厂商出现问题,如果没有内部私有云部署的话,那么服务将完全不可用。如果你的服务对高可用性要求很高,那么混合云的方案更加适合你。

2023-08-11 10:50:53 68

原创 31 微服务多机房部署实践

今天我给你讲解了微服务多机房部署时要面临的三个问题,一是多机房访问时如何保证负载均衡,二是多机房之间的数据如何保证同步,三是多机房之间的数据如何保证一致性,并给出了微博在多机房部署微服务时所采取的解决方案,对于大部分中小业务团队应该都有借鉴意义。可以说多机房部署是非常有必要的,尤其是对可用性要求很高的业务来说,通过多机房部署能够实现异地多活,尤其可以避免因为施工把光缆挖断导致整个服务不可用的情况发生,也是业务上云实现混合云部署的前提。

2023-08-11 10:50:31 58

原创 30 如何做好微服务容量规划?

今天我从两个方面具体给你讲解了微服务如何做好容量规划的问题,即做好容量评估和调度决策。容量评估方面,首先要通过压测获取集群的最大容量,并实时采集服务调用的数据以获取集群的实时运行负荷,这样就可以获取集群的实时水位线。而调度决策方面,主要是通过水位线与致命线和安全线对比来决定什么时候该扩缩容。而扩缩容的数量也是有讲究的,扩容的机器数一般按照集群机器数量的比例来,而缩容一般采取逐步缩容的方式以免缩容太快导致反复扩容。

2023-08-11 10:50:18 45

原创 29 微服务如何实现DevOps?

在介绍DevOps之前,我先来带你回顾一下传统的业务上线流程:开发人员开发完业务代码后,把自测通过的代码打包交给测试人员,然后测试人员把代码部署在测试环境中进行测试,如果测试不通过,就反馈bug给开发人员进行修复;如果通过,开发就把测试通过的代码交给运维人员打包,然后运维人员再发布到线上环境中去。可见在传统的开发模式下,开发人员、测试人员和运维人员的职责划分十分明确,他们往往分属于不同的职能部门,一次业务上线流程需要三者之间进行多次沟通,整个周期基本上是以天为单位。

2023-08-04 13:45:37 43

原创 28 微服务容器化运维:微博容器运维平台DCP

今天我给你讲解了微博容器运维平台DCP的架构,主要包括基础设施层、主机层、调度层以及编排层,并详细介绍了每一层的功能实现,以及各自承担的不同职能。下面这张图是一次完整扩容流程,包括了资源评估、配额评估、初始化、容器调度、部署服务、服务依赖、服务发现以及自动扩缩容等,DCP正是通过把这些过程串联起来,实现容器运维的。

2023-08-04 13:45:26 45

原创 27 微服务容器化运维:容器调度和服务编排

今天我给你讲解了容器运维平台的另外两个关键组成:容器调度和服务编排,并给出了常用的解决方案。你的业务团队在选择解决方案时,要根据自己的需要选择合适的方案,而不是理论上最好的。比如Kubernetes解决方案在容器调度、服务编排方面都有成熟的组件,并且经过大业务量的实际验证。但是要考虑到Kubernetes本身的复杂性以及概念理解的门槛,对于大部分中小业务团队来说,在生产环境上使用Kubernetes都会显得大材小用,并且还需要部署并运维Kubernetes周边的一些基础设施,比如etcd等。

2023-08-04 13:45:13 101

原创 26 微服务容器化运维:镜像仓库和资源调度

今天我给你讲解了容器运维平台的两个关键组成,镜像仓库和资源调度。镜像仓库帮我们解决的是Docker镜像如何存储和访问的问题,在业务规模较大时,各个业务团队都需要搭建自己的私有镜像仓库。类似Harbor这种开源解决方案能很好地解决权限控制、镜像同步等基本问题,关于高可用性的要求以及上云支持等业务场景,你可以参考我给出的解决方案,它是经过微博实际线上业务验证过的。

2023-08-04 13:45:04 45

原创 25 微服务为什么要容器化?

Docker是容器技术的一种,事实上已经成为业界公认的容器标准,要理解Docker的工作原理首先得知道什么是容器。容器翻译自英文的Container一词,而Container又可以翻译成集装箱。我们都知道,集装箱的作用就是,在港口把货物用集装箱封装起来,然后经过货轮从海上运输到另一个港口,再在港口卸载后通过大货车运送到目的地。这样的话,货物在世界的任何地方流转时,都是在集装箱里封装好的,不需要根据是在货轮上还是大货车上而对货物进行重新装配。

2023-08-04 13:44:54 55

原创 24 微服务架构该如何落地?

今天我给你讲解了微服务架构如何在业务中进行落地,总结来讲就是,首先你必须组建一支合适的技术团队,这其中不仅要包含资深的架构师,还需要包含业务的开发者。在选择业务进行微服务架构改造时,不能追大求全,正确的做法应当是先以一个适当规模的业务进行微服务改造,走完整个微服务架构落地的过程,从而找出问题,不断打磨到成熟可用的状态,再推广到更多更重要的业务当中。在改造的过程中,要做好技术取舍,以团队人员的实际情况以及业务的实际需求为准绳,切忌追新立异,避免给业务引入不可控因素,留下“架构债”。

2023-08-03 09:08:48 35

原创 23 如何搭建微服务治理平台?

可以说一个微服务框架是否成熟,除了要看它是否具备服务治理能力,还要看是否有强大的微服务治理平台。因为微服务治理平台能够将多个系统整合在一起,无论是对开发还是运维来说,都能起到事半功倍的作用,这也是当前大部分开源微服务框架所欠缺的部分,所以对于大部分团队来说,都需要自己搭建微服务治理平台。不过好在微服务治理平台本身的架构并不复杂,你可以根据自己的实际需要,来决定微服务治理平台具备哪些功能。

2023-08-03 09:08:40 108

原创 22 如何管理服务配置?

今天我给你讲解了微服务架构下如何使用配置中心对服务的配置进行管理,以及实际业务中可能用到的场景,最后给出了一些开源配置中心的解决方案。关于业务中是否需要用到配置中心,以及选择哪种配置中心,要根据实际情况而定,如果业务比较简单,配置比较少并且不经常变更的话,采用本地配置是最简单的方案,这样的话不需要额外引入配置中心组件;

2023-08-03 09:08:32 44

原创 21 服务调用失败时有哪些处理手段?

今天我给你讲解了微服务架构下服务调用失败的几种常见手段:超时、重试、双发以及熔断,实际使用时,具体选择哪种手段要根据具体业务情况来决定。根据我的经验,大部分的服务调用都需要设置超时时间以及重试次数,当然对于非幂等的也就是同一个服务调用重复多次返回结果不一样的来说,不可以重试,比如大部分上行请求都是非幂等的。至于双发,它是在重试基础上进行一定程度的优化,减少了超时等待的时间,对于长尾请求的场景十分有效。采用双发策略后,服务调用的P999能大幅减少,经过我的实践证明是提高服务调用成功率非常有效的手段。

2023-08-03 09:08:24 139

原创 20 服务端出现故障时该如何应对?

今天我们探讨了微服务系统可能出现的三种故障:集群故障、单IDC故障、单机故障,并且针对这三种故障我给出了分别的解决方案,包括降级、限流、流量切换以及自动重启。在遇到实际的故障时,往往多个手段是并用的,比如在出现单IDC故障,首先要快速切换流量到正常的IDC,但此时可能正常IDC并不足以支撑两个IDC的流量,所以这个时候首先要降级部分功能,保证正常的IDC顺利支撑切换过来的流量。而且要尽量让故障处理自动化,这样可以大大减少故障影响的时间。

2023-08-03 09:08:12 31

原创 19 如何使用服务路由?

今天我给你讲解了服务路由的作用,简单来讲就是为了实现某些调用的特殊需求,比如分组调用、灰度发布、流量切换、读写分离等。在业务规模比较小的时候,可能所有的服务节点都部署在一起,也就不需要服务路由。但随着业务规模的扩大、服务节点增多,尤其是涉及多数据中心部署的情况,把服务节点按照数据中心进行分组,或者按照业务的核心程度进行分组,对提高服务的可用性是十分有用的。

2023-08-03 09:08:03 30

原创 18 如何使用负载均衡算法?

今天我给你讲解了最常用的五种客户端负载均衡算法的原理以及适用场景,在业务实践的过程汇总,究竟采用哪种,需要根据实际情况来决定,并不是算法越复杂越好。比如在一种简单的业务场景下,有10个服务节点,并且配置基本相同,位于同一个数据中心,此时客户端选择随机算法或者轮询算法既简单又高效,并没有必要选择加权轮询算法或者最少活跃连接算法。

2023-08-03 09:07:52 20

原创 17 如何识别服务节点是否存活?

今天我给你讲解了动态注册中心在实际线上业务运行时,如果遇到网络不可靠等因素,可能会带来的两个问题,一个是服务消费者同时并发访问注册中心获取最新服务信息导致注册中心带宽被打满;另一个是服务提供者节点被大量摘除导致服务消费者没有足够的节点可以调用。这两个问题都是我在业务实践过程中遇到过的,我给出的两个解决方案:心跳开关保护机制和服务节点摘除保护机制都是在实践中应用过的,并且被证明是行之有效的。

2023-08-03 09:07:25 72

原创 16 如何搭建一套适合你的服务追踪系统?

今天我给你讲解了两个开源服务追踪系统OpenZipkin和Pinpoint的具体实现,并从埋点探针支持平台广泛性、系统集成难易程度、调用链路数据精确度三个方面对它们进行了对比。从选型的角度来讲,如果你的业务采用的是Java语言,那么采用Pinpoint是个不错的选择,因为它不需要业务改动一行代码就可以实现trace信息的收集。除此之外,Pinpoint不仅能看到服务与服务之间的链路调用,还能看到服务内部与资源层的链路调用,功能更为强大,如果你有这方面的需求,Pinpoint正好能满足。

2023-08-03 09:06:57 36

原创 15 如何搭建一个可靠的监控系统?

ELK的技术栈比较成熟,应用范围也比较广,除了可用作监控系统外,还可以用作日志查询和分析。Graphite是基于时间序列数据库存储的监控系统,并且提供了功能强大的各种聚合函数比如sum、average、top5等可用于监控分析,而且对外提供了API也可以接入其他图形化监控系统如Grafana。TICK的核心在于其时间序列数据库InfluxDB的存储功能强大,且支持类似SQL语言的复杂数据处理操作。

2023-08-03 09:06:09 93

原创 14 开源RPC框架如何选型?

以上就是我对几种使用最广泛的开源RPC框架的选型建议,也是基于它们目前现状所作出的判断,从长远来看,支持多语言是RPC框架未来的发展趋势。正是基于此判断,各个RPC框架都提供了Sidecar组件来支持多语言平台之间的RPC调用。Dubbo在去年年底又重启了维护,并且宣称要引入Sidecar组件来构建Dubbo Mesh提供多语言支持。Motan-go,目前支持PHP、Java语言之间的相互调用。Spring Cloud也提供了Sidecar组件。

2023-08-02 14:03:09 106

原创 13 开源服务注册中心如何选型?

总的来说,在选择开源注册中心解决方案的时候,要看业务的具体场景。如果你的业务体系都采用Java语言的话,Netflix开源的Eureka是一个不错的选择,并且它作为服务注册与发现解决方案,能够最大程度的保证可用性,即使出现了网络问题导致不同节点间数据不一致,你仍然能够访问Eureka获取数据。如果你的业务体系语言比较复杂,Eureka也提供了Sidecar的解决方案;

2023-08-02 13:59:45 54

原创 12 如何将注册中心落地?

今天我给你讲解了在注册中心实际使用过程中,服务注册、服务反注册、服务订阅和服务变更的实现方式,并列举了几个我在服务注册与发现的过程中遇到的典型问题。而针对这些异常情况,我都给出了对应的解决方案,这些方案都是经过实际业务验证的,对于大部分中小团队在应用场景面临的问题,应该足以应对。

2023-08-02 13:55:59 27

原创 11 服务发布和引用的实践

今天我给你介绍了XML配置方式的服务发布和引用的具体流程,简单来说就是服务提供者定义好接口,并且在服务发布配置文件中配置要发布的接口名,在进程启动时加载服务发布配置文件就可以对外提供服务了。而服务消费者通过在服务引用配置文件中定义相同的接口名,并且在服务引用配置文件中配置要引用的接口名,在进程启动时加载服务引用配置文件就可以引用服务了。在业务具体实践过程中可能会遇到引用服务的服务消费者众多,对业务的敏感度参差不齐的问题,所以在服务发布的时候,最好预定义好接口的各种配置。

2023-08-02 13:52:30 25

原创 10 Dubbo框架里的微服务组件

今天我给你讲述了Dubbo服务化框架每个基本组件的实现方式,以及一次Dubbo调用的流程。对于学习微服务架构来说,最好的方式是去实际搭建一个微服务的框架,甚至去从代码入手做一些二次开发。你可以按照Dubbo的官方文档去安装并搭建一个服务化框架。如果想深入了解它的实现的话,可以下载源码来阅读。

2023-08-02 13:51:42 43

原创 09 微服务治理的手段有哪些?

上面我讲的服务治理的手段是最常用的手段,它们从不同角度来确保服务调用的成功率。节点管理是从服务节点健康状态角度来考虑,负载均衡和服务路由是从服务节点访问优先级角度来考虑,而服务容错是从调用的健康状态角度来考虑,可谓是殊途同归。在实际的微服务架构实践中,上面这些服务治理手段一般都会在服务框架中默认集成了,比如阿里开源的服务框架Dubbo、微博开源的服务框架Motan等,不需要业务代码去实现。如果想自己实现服务治理的手段,可以参考这些开源服务框架的实现。

2023-08-02 13:47:56 26

原创 08 如何追踪微服务调用?

今天我给你讲解了服务追踪的基本原理以及实现方式,可以说服务追踪是分布式系统中必不可少的功能,它能够帮助我们查询一次用户请求在系统中的具体执行路径,以及每一条路径的上下游的详细情况,对于追查问题十分有用。实现一个服务追踪系统,涉及数据采集、数据处理和数据展示这三个流程,有多种实现方式,具体采用哪一种要根据自己的业务情况来选择。关于服务追踪系统的选型我在专栏后面会详细展开介绍,这里你只需要了解它的基本工作原理就可以了。

2023-08-02 13:46:36 79

原创 07 如何监控微服务调用?

服务监控在微服务改造过程中的重要性不言而喻,没有强大的监控能力,改造成微服务架构后,就无法掌控各个不同服务的情况,在遇到调用失败时,如果不能快速发现系统的问题,对于业务来说就是一场灾难。搭建一个服务监控系统,涉及数据采集、数据传输、数据处理、数据展示等多个环节,每个环节都需要根据自己的业务特点选择合适的解决方案,关于监控技术方案的选型我会在专栏后面进行详解。

2023-08-02 13:42:46 50

原创 06 如何实现RPC远程服务调用?

通信框架。它主要解决客户端和服务端如何建立连接、管理连接以及服务端如何处理请求的问题。通信协议。它主要解决客户端和服务端采用哪种数据传输协议的问题。序列化和反序列化。它主要解决客户端和服务端采用哪种数据编解码的问题。这三个部分就组成了一个完整的RPC调用框架,通信框架提供了基础的通信能力,通信协议描述了通信契约,而序列化和反序列化则用于数据的编/解码。

2023-08-02 13:40:22 77

原创 05 如何注册和发现服务?

注册中心可以说是实现服务化的关键,因为服务化之后,服务提供者和服务消费者不在同一个进程中运行,实现了解耦,这就需要一个纽带去连接服务提供者和服务消费者,而注册中心就正好承担了这一角色。此外,服务提供者可以任意伸缩即增加节点或者减少节点,通过服务健康状态检测,注册中心可以保持最新的服务节点信息,并将变化通知给订阅服务的服务消费者。注册中心一般采用分布式集群部署,来保证高可用性,并且为了实现异地多活,有的注册中心还采用多IDC部署,这就对数据一致性产生了很高的要求,这些都是注册中心在实现时必须要解决的问题。

2023-08-02 11:50:55 21

空空如也

空空如也

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

TA关注的人

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