微服务
文章平均质量分 94
微服务
kiranet
这个作者很懒,什么都没留下…
展开
-
分布式限流之基于Sentinel实现的限流漫谈(一)-概述
1.为什么需要限流1. 常用限流算法2. Sentinel的滑动窗口实现3. Sentinel的令牌桶实现4. Sentinel5.参考:https://github.com/alibaba/Sentinel/wiki书籍:《亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统》...原创 2022-05-31 20:30:00 · 640 阅读 · 0 评论 -
分布式锁与实现(一)-为什么需要分布式锁
分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。原创 2023-01-21 21:43:57 · 1045 阅读 · 0 评论 -
分布式一致性算法-Raft
Paxos协议的出现为分布式强一致性提供了很好的理论基础,但是Paxos协议理解起来较为困难,实现比较复杂。然后斯坦福大学RamCloud项目中提出了易实现,易理解的分布式一致性复制协议 Raft。我们熟知的Redis哨兵模式和阿里开源的服务发现注册中心Nacos、K8s的使用的存储系统etcd都实现了Raft。1.相关理论1.1 状态机复制模型Raft的算法实现基于状态机复制思想,一个服务由一致性模块(Consensus Module)、日志模块(Log)、状态机(State Mac原创 2021-11-30 22:44:47 · 673 阅读 · 0 评论 -
记开源系统落地-我是如何在工作中应用ShardingSphere-JDBC
本篇博文想结合一些开源系统落地的思想,复盘之前在工作中如何落地ShardingSphere。问题新产品在总体需求阶段就已知将会以TOB的SaaS服务进行开发,为了确保商户的数据物理隔离,我们要根据不同的商户划分到不同的库中,因此需要一款分库产品来实现这个需求。对数据库的增强的形式那么目前进行分库的形式有哪些呢?典型的开源数据库组件TDDL: 淘宝数据中间层。 ShardingSphere-JDBC: Apache基金会开源产品( 源于当当, 发展与京东) 。典型的开源数据库中原创 2021-09-17 22:00:19 · 432 阅读 · 0 评论 -
开源分布式数据库中间件方案-Apache ShardingSphere
1.概述业务飞速发展导致了数据规模的急速膨胀,单机数据库已经无法适应互联网业务的发展 传统的将数据集中存储至单一数据节点的解决方案,在容量、性能、可用性和运维成本这三方面已经难于满足互联网的海量数据场景。我们在单库单表数据量超过一定容量水位的情况下,索引树层级增加,磁盘 IO 也很可能出现压力,会导致很多问题。 从性能方面来说,由于关系型数据库大多采用 B+树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中式原创 2021-06-28 23:14:30 · 596 阅读 · 3 评论 -
常见配置中心比较,Spring Cloud Config VS Nacos VS Apollo
1.介绍1.1 配置中心当超过了一定量级的服务之后,系统配置的修改和发布就会成为项目发展一个不得不关注的难点,因此就诞生了配置中心。配置中心通过集中管理服务配置,提供统一的配置拉取接口来解决因规模不断扩展导致的配置管理问题。一般提供版本管理,权限控制,灰度发布,动态刷新等功能特性来完善配置管理体系。1.1.1 Spring Cloud ConfigSpring Cloud Config是官方提供的分布式系统的外部配置中心提供服务器和客户端支持。1.1.2NacosNacos 阿里..原创 2021-05-30 22:12:51 · 3390 阅读 · 2 评论 -
常见的配置中心:Apollo(三)-安全相关
配置中心作为基础服务,存储着公司非常重要的配置信息,所以安全因素需要大家重点关注,Apollo提供多方面的实践1 认证2 授权3 系统访问原创 2021-05-13 23:06:56 · 2788 阅读 · 4 评论 -
常见的配置中心:Apollo(二)-接入Apollo
1 配置Apollo作为大型互联网系统生产级别的配置中心,在开发的积累当中构建了自己的配置维度体系。1.1 配置四层维度(1)Application(项目应用)维度中的最顶层,在实际开发中我们一般以项目来作为最外层配置的区分维度。(2)Environment(开发环境)在实际开发当中从开发到上线一般都需要经过各种环境的验证的,Apollo在这个维度下根据携程实际的应用提供了若干环境:dev:开发环境fat:功能验收测试环境uat:用户验收测试环境lpt:性能测试环原创 2021-04-29 23:06:00 · 1675 阅读 · 0 评论 -
常见的配置中心:Apollo(一)-认识Apollo
1.Apollo1.1 概要Apollo是什么?Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于 Spring Boot 和 Spring Cloud 开发,打包后可以直接运行,不需要额外安装 Tomcat 等应用容器。Java 客户端不依赖任何框架,能够运行于所有 Java 运行时环境,同时对 Spring/Spring Boo原创 2021-04-29 22:59:14 · 1047 阅读 · 2 评论 -
常见的配置中心:Nacos
概述Nacos是阿里在2018年发布的集服务发现、动态配置等功能为一体的开源产品。下文将会围绕Nacos对配置中心需要的各功能进行讲解。1.Nacos配置概念命名空间用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。配置集 IDNacos 中的某个配置集的 ID。配置集 ID 是组织划分配置的维度之一。Data I原创 2021-03-29 23:16:20 · 1668 阅读 · 0 评论 -
常见的配置中心:Spring Cloud Config
概述从下面的架构图可以看到传统的单体应用和一些小的SOA服务因为其服务数量较少,所以其配置能以服务为分割单位保存在每个服务当中,但是这样会面临多个问题:1、如果某个配置修改了,需要对所有服务重新打包。2、因为配置保存不同服务中,即代表着每增加一个服务就要增加对应配置的维护成本。 1.Spring Cloud Config基于概述中提到的问题,还有在微服务架构中不断增加的服务数量,配置中心这种就应运而生。Sp...原创 2021-03-18 21:44:25 · 659 阅读 · 1 评论