
微服务
文章平均质量分 96
微服务
Generalzy
这个人很懒,什么都没写!
展开
-
Oauth2和单点登录(SSO)的区别及联系
第三方登录是应用开发中的常用功能,通过第三方登录,可以更加容易的吸引用户来到我们的应用中。现在,很多网站都提供了第三方登录的功能,在他们的官网中,都提供了如何接入第三方登录的文档。大多数网站提供的第三方登录都遵循OAuth协议,虽然大多数网站的细节处理都是不一致的,甚至会基于OAuth协议进行扩展,但大体上其流程是一定的。原创 2023-06-03 17:15:15 · 1283 阅读 · 0 评论 -
go-zero
Msg: msg,// Error 实现error接口// ParamsError 110代表用户系统 1101代表错误码 微服务的错误可以体现系统var ParamsError = NewApiError(1101, "参数错误")// Data ApiErrorResponse打印详细的信息 否则.Error()会被调用只打印一个msg// 获取用户信息})if e!原创 2023-05-04 17:37:57 · 2226 阅读 · 0 评论 -
Redis与Mysql双写一致性
缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,存在很大的争议。原创 2023-04-03 23:19:21 · 541 阅读 · 0 评论 -
CAP定理和BASE理论
在一个广泛分布的、跨多个节点和区域的系统中,网络连接的中断和不稳定是现实问题。即使我们可以通过各种手段降低网络分区的概率,但我们无法完全消除网络分区,因为网络本身具有不确定性和复杂性。这使得在设计分布式系统时,网络分区必须被视为系统不可避免的一部分,并相应地在系统中做出容错设计(即分区容忍性)。原创 2023-03-31 20:34:16 · 243 阅读 · 0 评论 -
分布式系统唯一ID生成器
在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。原创 2023-03-31 16:12:24 · 749 阅读 · 0 评论 -
互联网软件架构演变——集群与分布式的区别
使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且它们可以通过自动化的方式部署。原创 2021-12-03 15:48:00 · 1950 阅读 · 0 评论 -
api网关(kong&apisix)对比
APISIX 和 Kong 都是流行的开源API网关项目,它们在功能、架构和生态系统等方面有一些区别。下面是一个对比它们的优劣势的概览,但需要注意的是,这些优劣势在不同的使用情境下可能会有所不同。APISIX使用Nginx作为底层引擎,因此具有卓越的性能和吞吐量,适用于高流量环境。APISIX支持动态配置,可以实时更改路由、插件和策略,无需重启网关。APISIX提供了丰富的插件系统,允许用户根据需要轻松地添加和定制功能,如认证、限流、监控等。原创 2023-03-09 23:03:02 · 4330 阅读 · 0 评论 -
Protocol Buffers V3语法全解
Protobuf是Protocol Buffer的简称,它是Google公司于2008年开源的一种高效的平台无关、语言无关、可扩展的数据格式,目前Protobuf作为接口规范的描述语言,可以作为Go语言RPC接口的基础工具。字段名用小写,转为go文件后自动变为大写,message就相当于结构体// 查询字符串 int32 page_number = 2;// 页码 int32 result_per_page = 3;// 每页条数 }message定义结构体,service定义接口} }原创 2023-02-10 19:27:06 · 2737 阅读 · 0 评论 -
go语言rpc,grpc介绍
微服务架构中,由于每个服务对应的代码库是独立运行的,无法直接调用,彼此间的通信就是个大问题。gRPC可以实现微服务,将大的项目拆分为多个小且独立的业务模块,也就是服务,各服务间使用高效的protobuf协议进行RPC调用,gRPC默认使用protocol buffers,这是google开源的一套成熟的结构数据序列化机制(当然也可以使用其他数据格式如JSON)可以用proto files创建gRPC服务,用message类型来定义方法参数和返回类型。原创 2023-02-10 15:00:33 · 1811 阅读 · 0 评论 -
etcd一知半解
etcd 是一个分布式键值对存储,设计用来可靠而快速的保存关键数据并提供访问。etcd 基于 Raft 协议,通过复制日志文件的方式来保证数据的强一致性。客户端应用写一个 key 时,首先会存储到 etcd Leader 上,然后再通过 Raft 协议复制到 etcd 集群的所有成员中,以此维护各成员(节点)状态的一致性与实现可靠性。虽然 etcd 是一个强一致性的系统,但也支持从非 Leader 节点读取数据以提高性能,而且写操作仍然需要 Leader 支持,所以当发生网络分时,写操作仍可能失败。原创 2022-04-13 22:18:08 · 1105 阅读 · 0 评论