后端开发
文章平均质量分 94
mxb1234567
这个作者很懒,什么都没留下…
展开
-
分布式事务:两阶段提交与三阶段提交
满足ACID(原子性、一致性、隔离性、持久性)的一组操作,可以被称为一个事务。随着计算机系统的发展,越来越多的采用分布式的架构来对外提供服务,但是,不同的机器的处理性能、存储性能、网络状态等各有不同,让分布式集群始终对外提供可用的一致性服务一直是需要处理的问题。为了保证数据变更请求在整个分布式环境下正确地执行,不会导致部分服务器暂时崩溃导致整个集群提供的服务和数据不再相同,在整个分布式系统处理数据变更请求的过程中,需要引入分布式事务的概念。...原创 2022-07-05 17:12:46 · 5713 阅读 · 1 评论 -
ZooKeeper 8:请求处理逻辑与源码分析
当客户端需要和 ZooKeeper 服务端进行相互协调通信时,首先要建立该客户端与服务端的连接会话,在会话成功创建后,ZooKeeper 服务端就可以接收来自客户端的请求操作了。ZooKeeper集群在收到事务性会话请求后,主要依次进行四个部分的处理逻辑:预处理阶段、事务处理阶段、事务执行阶段、响应客户端。这种处理就像流水线一样,也是责任链模式的一种实现。...原创 2022-06-30 15:28:57 · 585 阅读 · 0 评论 -
ZooKeeper 7:数据读写——原子广播协议ZAB
ZAB(ZooKeeper Atomic Brocadcast)协议,ZooKeeper原子广播协议,是一个分布式一致性算法,让ZooKeeper拥有了崩溃恢复和原子广播的能力,保证集群中的数据一致性。原创 2022-06-29 17:54:38 · 734 阅读 · 0 评论 -
ZooKeeper 6:分布式系统及相关理论
分布式计算机系统(Distributed Computer System),是指由多台分散的计算机,经互连网络的联接而形成的系统,系统的处理和控制功能分布在各个计算机上。分布式计算机系统又简称为分布式系统。换个方式说,在一组物理上不相连的机器上提供服务,但是对于用户来说就像一台机器在工作一样,就是一个分布式系统...原创 2022-06-29 15:32:55 · 331 阅读 · 0 评论 -
ZooKeeper 5:集群模式
ZooKeeper作为目前开源技术体系的无可替代的基础组件,首先要保证自身的高可用,也就是对于部分服务下线要有一定的容忍能力,不能说ZooKeeper突然挂了所有的服务都跟着寄了。为保证高可用,ZooKeeper提供了集群模式,或者说是Master/Slave架构,防止单点故障影响整个服务。......原创 2022-06-28 18:39:30 · 588 阅读 · 0 评论 -
远程过程调用RPC 5:Dubbo路由
Dubbo在服务治理方面提供了路由功能,主要是决定一次Dubbo服务调用时调用的目标服务器。dubbo主要支持三种路由方式:条件路由、脚本路由、标签路由、扩展SPI实现自定义路由。原创 2022-06-24 15:37:52 · 945 阅读 · 0 评论 -
ZooKeeper 4:会话处理与其源码分析
ZooKeeper是一个**服务器-客户端**结构的应用,客户端与服务器之间需要建立一个连接,而这个连接就是一个会话。客户端与服务端的交互操作中都离不开会话的相关的操作。原创 2022-06-16 17:24:23 · 273 阅读 · 0 评论 -
ZooKeeper 3:Watch机制与其源码分析
watch机制,顾名思义是一个监听机制原创 2022-06-15 16:01:38 · 561 阅读 · 0 评论 -
ZooKeeper 2:数据模型与访问控制
ZooKeeper的数据模型类似于文件系统的结构,是一个树状的。也就是说,里面也会有节点的概念。原创 2022-06-10 16:48:20 · 358 阅读 · 0 评论 -
ZooKeeper 1:简介与安装
ZooKeeper 是分布式应用程序的分布式的开源的协调服务。它公开了一组简单的原语,分布式应用程序可以在这些原语的基础上实现更高级别的同步、配置维护、组和命名服务。它被设计为易于编程,并使用一种数据模型,该模型以熟悉的文件系统目录树结构为样式。......原创 2022-06-10 11:07:28 · 336 阅读 · 0 评论 -
概念区分:灰度发布、蓝绿发布、滚动发布
线上的项目最容易出现问题的时候就是发布的过程中。如果将某变化较大的版本一次全部线上发布给用户,遇到生产事故对用户的影响会非常大,甚至有时需要紧急回滚到前一版本。因此在发布的时候可以采取一些措施来防止问题的扩散。常见的发布方案有:蓝绿发布、滚动发布、灰度发布...原创 2022-06-09 17:16:03 · 12732 阅读 · 3 评论 -
Spock测试框架
Spock是一个测试框架,基于BDD(行为驱动开发)思想实现。它结合Groovy动态语言的特点,提供了各种标签,并采用简单、通用、结构化的描述语言,让编写测试代码更加简洁、高效。常用的测试框架Junit、JMock、mockito各有所长,但是各种框架在开发过程中写出的测试风格各异,难以阅读,使得测试变成了一个门槛越来越高,越来越难以实现的模块。直观的来说,Spock是一种有标签化属性的一种语言,通过给出的多种标签(given、when、then、where)去描述代码应该实现什么功能。Spock自带M原创 2022-06-08 18:02:28 · 1252 阅读 · 0 评论 -
概念区分:API SPI SDK
Application Programming Interface,Service Provider Interface,Software Development Kit原创 2022-06-07 17:27:22 · 891 阅读 · 0 评论 -
远程过程调用RPC 4:RPC服务框架Dubbo
作为一个RPC框架,Dubbo提供了**RPC通信**与**微服务治理**两大关键能力。这意味着,使用Dubbo开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用Dubbo提供的丰富服务治理能力,可以实现诸如**服务发现**、**负载均衡**、**流量调度**等服务治理诉求。同时Dubbo是**高度可扩展**的,用户几乎可以在任意功能点去定制自己的实现,以改变框架的默认行为来满足自己的业务需求。......原创 2022-06-06 15:27:35 · 294 阅读 · 0 评论 -
远程过程调用RPC 3:高性能的RPC框架
一个高性能的RPC框架应该拥有在一些模块实现一些基本功能并提升自己的性能,可以是:- 服务发现与注册- 线程调度模型- I/O调度模型- 序列化框架- 负载均衡策略- 网络传输原创 2022-06-02 17:56:46 · 703 阅读 · 0 评论 -
远程过程调用RPC 2:RPC思想与RPC框架
RPC的一些理论内容:RPC思想与RPC框架原创 2022-06-01 18:37:21 · 702 阅读 · 0 评论 -
远程过程调用RPC 1:举例理解
RPC(Remote Procedure Call) ,远程过程调用,是一种跨进程的、分布式的交互/通信形式。原创 2022-06-01 16:19:06 · 643 阅读 · 0 评论 -
k8s平台微服务部署
涉及的微服务涉及三个微服务的demo:服务注册与发现:eureka-server管理服务:admin-service用户服务:user-service管理服务和用户服务会注册到eureka上,当访问 Admin 服务的 add user api,Admin 服务会调用 User 服务的 add user api,写入到 mysql数据库上。生成docker镜像通过dockerfile构建maven项目。在Docker 17.05多阶段构建推出之后,我们只需要维护一个Dockerfile文件原创 2021-12-28 12:52:22 · 6070 阅读 · 2 评论 -
Spring Boot学习笔记(未完成)
目录Spring Boot一点背景Spring项目结构pom.xmlmain方法配置文件采用application.properities采用application.yml多配置文件自定义配置文件Spring Boot下的Spring MVC@Controller@RestController@GetMapping@PostMapping@PutMapping@DeleteMappingSpringBoot使用JSPSpring Boo原创 2020-11-25 10:53:03 · 274 阅读 · 0 评论