高可用
文章平均质量分 71
高可用
蓝创精英团队
你所追求的事物,所做的每一件事情,都有它存在的意义。
展开
-
分布式(一致性协议)之领导人选举( DotNext.Net.Cluster 实现Raft 选举 )
实现一致性协议(选举)的主要算法有两种相当于 Paxos 来讲, Raft协议相对来讲简单一点。但是,Raft 实现起来也不是很容易,如果有朋友试图想去实现可以参考,这个地方地址 : https://zinglix.xyz/2020/06/25/raft/我个人也是 简单的理解了一下。Raft 是一个非拜占庭的一致性算法,即所有通信是正确的而非伪造的。N 个结点的情况下(N为奇数)可以最多容忍 (N−1)/2个结点故障我曾经试图实现一个WEB服务功能,我不能保证这个服务的高可用,我又不想用其他的现有服务,原创 2022-06-27 09:00:00 · 513 阅读 · 1 评论 -
C# Redis 分布式锁 续集 (新增Mysql分布式锁[还有更多种姿势])
上篇主要是采用了 StackExchange.Redis 的两种方式来获取锁其实,获取锁这部分,是没有啥子大问题的(其实这两个操作的内部代码是一样的),有问题的应该是,解锁的部分。关于解锁部分我写的大概逻辑如下,如果取得了锁,就直接删除锁的key,如果我没有获取到锁(异常或者过期了),那么,我查一下此锁存在不,如果存在,跟我当前一样,我就删除(扫尾工作)。问题如果正常业务的过期还在执行,第二个获取锁的任务就会获取锁,这个时候,只需要超时时间是合理的,或者执行期间,正常续时,也能解决问题,类似看门狗。原创 2022-06-25 07:30:00 · 813 阅读 · 4 评论 -
.Net Core 微服务架构 细节总览
第一次准备搞微服务架构的时候还是在 2021-03-14 16:13:56 ,当时,我准备系统的让自己深入到微服务架构里,彻底的了解这一切。之前只是了解或者知道这个概念,虽然,公司也会有此类的架构,但是,当时的认知对它了解还是太少,就像ABP这样的成熟的框架一样,看着文章,或者公司有架构师之类的职务的人封装好了,来用吧,小伙子。然后,吭哧吭哧的敲业务代码,遇到了问题,让你去解决的几率也很低,解决成功的几率也很低。这个时候,深入了解它是由什么组成的,如何组成的,就显得很重要,当然,对我自己来讲是这样的。虽然,原创 2022-06-21 22:45:11 · 2170 阅读 · 0 评论 -
微服务 配置中心 Nacos .Net 5
微服务配置中心 Nacos .Net 5微服务配置中心 Nacos .Net 5环境如何搭建获取官网的表结构启动Docker服务增加相应的配置信息新建一个WebAPi项目设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入微服务配置中心 Nacos .Net 5基于Nacos来一篇关于微服务的配置中心方案Demo。环境如何搭建它的环境相对还是比较复杂的,需原创 2022-05-17 21:59:56 · 2041 阅读 · 4 评论 -
Consul.Net 的领导人选举
当我们有一个集群的应用或者要实现一个高可用的服务的时候就需要这个选举(曾经要写一个高可用服务,结果,选举算法这一块没攻克,导致项目被干掉了)。这样的应用服务也是需要分布在多台服务器上的业务。如下图画的不是很好看,大致意思就是一个服务集群,然后呢,为了保证高可用,得有其中一个服务去DoWork();但是,不能有多的服务过去,这个时候就需要选举算法了。轻量型的选举算法是Raft,有兴趣的可以去研究一下。我这里是直接通过Consul 自身的性质来实现选举算法的实现的结果如下,原创 2021-03-15 19:38:00 · 426 阅读 · 0 评论 -
.Net5.0 微服务之服务注册与发现(Consul)
分布式结构,应用服务就不能是单个应用,必须得提供多个,相当于是这个服务的集群(单独一个服务坏了,不影响其他服务继续提供服务)。那么基于这个应用服务的集群管理,就是服务注册与发现服务。它主要是用来管理你的应用服务集群的。实际情况中,你的服务会部署在Docker容器中,然后,它在容器里向外暴漏自己的位置,告诉 服务注册与发现,我在这里,我要报名,我要为客户提供服务。然后,服务中心会管理这些注册上来的服务,并会定时检查它们是否存在,如果不存在,就给它们下线,不让他们继续服务了。如上图,实现原创 2021-03-15 14:10:34 · 3145 阅读 · 7 评论 -
Consul组件 安装与部署 (window),集群部署,并验证其高可用
官网下载地址 :https://www.consul.io/downloads或者 CSDN地址:https://download.csdn.net/download/kesshei/15788312下载后,内部只有一个 exe,直接命令运行即可概念解释:agent 组成 consul 集群的每个成员上都要运行一个 agent,可以通过 consul agent 命令来启动。agent 可以运行在 server 状态或者 client 状态。自然的,运行在 server...原创 2021-03-15 12:02:51 · 793 阅读 · 0 评论 -
.Net Core 微服务架构 总览
单体在早期能解决我们的业务问题,但是随着用户量,设备量的增长,并发量的上升,已经不足以支撑整个业务系统。这个时候,就得采用硬件+软件的方式来解决这样的问题。如果公司有钱,可以直接通过提升硬件(服务配置+带宽)来解决问题。但是,大部分公司还是要节省这部分的开销的(阿里云等云平台收费还真是不便宜),所以,要从多个角度来解决这个问题,那就是性价比。像HBase这样的列式数据库也是利用大量闲置的硬盘资源来做大数据量的存储的应用,我们就可以用技术和性价比比较好的资源去做事情。分布式,是解决这个问题原创 2021-03-14 16:13:56 · 4408 阅读 · 22 评论 -
MongoDB 部署,安装,并设置其外网访问
下载地址:https://www.mongodb.com/try/download/enterprise或者百度云链接:https://pan.baidu.com/s/1Gzgs_aOOhdJxXfc1l3W3iQ提取码:kmaq双击安装选择自定义,自定义安装的位置,我这边就不需要了,直接下一步下一步开始安装安装完成。默认服务已经启动通过命令 启动MongoDB Enterprise > 2+24Mo...原创 2021-03-11 13:44:51 · 613 阅读 · 0 评论 -
SqlServer2012 读写分离配置
工作中,常用的写20%,读80%,所以,创建一个读写分离的架构,是能增加数据库效率和减少数据库IO压力的。实现读写分离一共有四种模式1.复制模式可以参考 此文章:https://www.cnblogs.com/Zhengxue/p/13853818.html2. 镜像传输3. 日志传输4. Always On技术 可以参考这一篇https://www.cnblogs.com/chenmh/p/7000236.html我这边主要实现的是 复制模式中的事务发布...原创 2021-03-11 13:14:06 · 781 阅读 · 2 评论