随笔分类 -  【后端分布式探索】

摘要:首先,先说下服务治理的边界,本质上任何能提升服务可用性,性能,让服务更稳定等等,只要是能让服务运行的更好,都属于服务治理的范畴。服务治理比较常见的话题:服务发现,服务变更管理,服务监控,服务扩容缩容,服务自我保护,服务降级,服务授权防攻击,服务上线验证和灰度发布,服务问题定位和跟踪,服务负载,服务实 阅读全文
posted @ 2021-02-01 23:20 luoxn28 阅读(783) 评论(0) 推荐(0) 编辑
摘要:InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便。 influxdb的单机版是开源的,而集群版是商业版,influxdb被设计 阅读全文
posted @ 2020-01-30 09:22 luoxn28 阅读(2492) 评论(0) 推荐(0) 编辑
摘要:kubernetes(简称k8s)是一种用于在一组主机上运行和协同容器化应用程序的管理平台,皆在提供高可用、高扩展性和可预测性的方式来管理容器应用的生命周期。通过k8s,用户可以定义程序运行方式、部署升级策略、动态伸缩容,使得用户以一种更灵活可靠的方式来管理应用程序。 关于k8s,是一种对应用服务的 阅读全文
posted @ 2020-01-20 23:40 luoxn28 阅读(581) 评论(0) 推荐(0) 编辑
摘要:学习Docker,首先需要了解Docker基本概念,然后就开始“动手”了(也就是敲Docker命令)。Docker命令较多,这里笔者总结下常用的Docker命令,方便小伙伴们查阅。 Docker是基于go语言开发,底层技术(Linux下)主要基于cgroups、namespace以及联合文件技术实现 阅读全文
posted @ 2020-01-02 12:41 luoxn28 阅读(687) 评论(0) 推荐(0) 编辑
摘要:分区,又称为分片,是解决大数据存储的常见解决方案,大数据存储量超过了单节点的存储上限,因此需要进行分区操作将数据分散存储在不同节点上,通常每个单个分区可以理解成一个小型的数据库,尽管数据库能同时支持多个分区操作;分区引入多分区概念,可以同时对外服务提高性能。 常常和分区一并提及的概念是复制,分区通常 阅读全文
posted @ 2020-01-01 17:40 luoxn28 阅读(1849) 评论(0) 推荐(0) 编辑
摘要:服务和数据的高可用性本质上是靠“复制”来解决的,比如服务通过集群部署多台机器来完成,数据通过冗余的多副本机制来完成。对于服务来说,只需要部署多个实例即可,特别是无状态服务,常见的微服务(dubbo/spring cloud)几乎都是通过集群部署对外提供服务能力,更进一步的还可使用k8s+docker 阅读全文
posted @ 2019-12-30 13:00 luoxn28 阅读(924) 评论(1) 推荐(3) 编辑
摘要:编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo、Rocketmq、Hadoop等。本文就netty线程模型展开分析讨论下 : ) IO模型 BIO:同步阻塞IO模型; NIO:基于IO多路复用技术的“非阻塞同步 阅读全文
posted @ 2019-11-17 08:51 luoxn28 阅读(28516) 评论(1) 推荐(2) 编辑
摘要:编者注:Java nio 空轮询bug也就是Java nio在Linux系统下的epoll空轮询问题。 epoll机制是Linux下一种高效的IO复用方式,相较于select和poll机制来说。其高效的原因是将基于事件的fd放到内核中来完成,在内核中基于红黑树+链表数据结构来实现,链表存放有事件发生 阅读全文
posted @ 2019-11-16 18:37 luoxn28 阅读(3539) 评论(0) 推荐(0) 编辑
摘要:编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo、Rocketmq、Hadoop等,针对高性能RPC,一般都是基于Netty来构建,比如soft bolt。总之一句话,Java小伙伴们需要且有必要学会使用Nett 阅读全文
posted @ 2019-11-12 08:05 luoxn28 阅读(3051) 评论(1) 推荐(1) 编辑
摘要:编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo、Rocketmq、Hadoop等,针对高性能RPC,一般都是基于Netty来构建,比如soft bolt。总之一句话,Java小伙伴们需要且有必要学会使用Nett 阅读全文
posted @ 2019-11-11 23:58 luoxn28 阅读(1406) 评论(0) 推荐(0) 编辑
摘要:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo、Rocketmq、Hadoop等,针对高性能RPC,一般都是基于Netty来构建,比如sock bolt。总之一句话,Java小伙伴们需要且有必要学会使用Netty并理解 阅读全文
posted @ 2019-11-07 10:57 luoxn28 阅读(16497) 评论(0) 推荐(0) 编辑
摘要:编者注:pipeline是Redis的一个提高吞吐量的机制,适用于多key读写场景,比如同时读取多个key的value,或者更新多个key的value。工作过程中发现挺多小伙伴都对pipeline多少有些了解,但是更深入的理解或者说有哪些坑就不知道了,下面咱们就一起分析下redis pipeline 阅读全文
posted @ 2019-11-05 10:57 luoxn28 阅读(2190) 评论(0) 推荐(0) 编辑
摘要:高并发系统设计的3个利器:缓存、限流、降级,本文就限流相关算法,分析其设计与实现。 从分布式角度来看,限流可分为 分布式限流 (比如基于Sentinel或者Redis的集群限流)和 单机限流 。从算法实现角度来看,限流算法可分为 漏桶算法 、 令牌桶算法 和 滑动时间窗口算法 。下面主要分析这3种限 阅读全文
posted @ 2019-11-04 17:35 luoxn28 阅读(4419) 评论(1) 推荐(0) 编辑
摘要:编者注:前段时间笔者在团队内部分享了sentinel原理设计与实现,主要讲解了sentinel基础概念和工作原理,工作原理部分大家听了基本都了解了,但是对于sentinel的几个概念及其之间的关系还有挺多同学有点模糊的,趁着这几天比较空,针对sentinel的几个核心概念,做了一些总结,希望能帮助一 阅读全文
posted @ 2019-06-28 08:47 luoxn28 阅读(11347) 评论(0) 推荐(0) 编辑
摘要:Redis用到的底层数据结构有:简单动态字符串、双端链表、字典、压缩列表、整数集合、跳跃表等,Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包括字符串对象、列表对象、哈希对象、集合对象和有序结合对象共5种类型的对象。 1 简单动态字符串 re 阅读全文
posted @ 2017-07-01 21:54 luoxn28 阅读(3797) 评论(0) 推荐(1) 编辑
摘要:1 Redis内存管理 Redis内存管理相关文件为zmalloc.c/zmalloc.h,其只是对C中内存管理函数做了简单的封装,屏蔽了底层平台的差异,并增加了内存使用情况统计的功能。 void *zmalloc(size_t size) { // 多申请的一部分内存用于存储当前分配了多少自己的内 阅读全文
posted @ 2017-07-01 11:20 luoxn28 阅读(1847) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示