Micro Services
文章平均质量分 88
微服务
Wang's Blog
Keep learning for the innovation era.
展开
-
Go微服务: 服务限流原理, 负载均衡与API网关
go 微服务保稳三剑客: 熔断,限流,负载均衡限流的作用限制流量,在服务端生效注意:熔断是客户端生效保护后端服务餐厅吃饭排队的问题,提供凳子,让等候,这就是限流操作如果不限流,每个客户都吃不上饭与熔断互补go 微服务保稳三剑客: 熔断,限流,负载均衡负载均衡的作用提高系统可扩展性如果漏桶算法中的处理速度存在瓶颈不满足需求,我们就要通过负载均衡来弥补如果客户端请求,服务端压力比较大的时候,也可以用负载均衡支持 HTTP, HTTPS, TCP, UDP 请求。原创 2024-04-16 12:45:00 · 1341 阅读 · 0 评论 -
Go微服务: 服务熔断hystrix原理
go 微服务保稳三剑客:熔断,限流,负载均衡微服务熔断(hystrix-go) 与 服务雪崩效应在服务里面,有服务A调用服务B, 会有依赖调用关系,同时服务C被B依赖如果依赖关系在生产环境中多的话,C挂了之后服务B原本正常,也会因为C导致不正常同时,A因为依赖B导致A也出了问题这时候,会级联反应,就是服务雪崩效应,如下图微服务熔断 (hystrix-go) 目标组织故障的连锁反应快速失败并迅速恢复它会走一个熔断的逻辑回退并优雅降级。原创 2024-04-16 07:45:00 · 918 阅读 · 0 评论 -
Go微服务: go-micro集成链路追踪jaeger
链路追踪数据写入的过程可以加入 kafaka 缓冲压力我们可以通过链路追踪开发发现我们是否有循环调用在链路中非必要尽量避免带入异步场景的span异步场景,比如写入日志,操作数据库把这些操作加入span, 也没有一个明确返回的时间特别不利于排错原创 2024-04-15 08:45:00 · 300 阅读 · 0 评论 -
Go微服务: 链路追踪jaeger原理和环境搭建
著名的管理学大师彼得·德鲁克曾说过“If you can’t measure it, you can’t improve it”意思是:如果你不能度量它,你就无法改进它在微服务开发后期,服务会越来越多,调用链过多,进行链路追踪时,心态会崩溃这时候,我们就要引入一个链路跟踪的工具:jaegerjaeger 是用来监视和诊断基于微服务的分布式系统用于服务依赖性分析,辅助性能优化里面反应出来依赖关系之间的调用时间 (开始和结束时间)原创 2024-04-15 06:15:00 · 803 阅读 · 0 评论 -
Go微服务: go-micro集成consul的注册中心和配置中心
1 )consul 集群 2 )consul 中设置mysql的配置文件 2 )common 核心代码参考 3 )main.go 核心代码原创 2024-04-14 20:47:42 · 621 阅读 · 1 评论 -
Go微服务: 基于GRPC结合Consul实现微服务调用
刷新发现 127.0.0.1:8500 这个 consul 注册中心面板出来了一个新的服务。以上的调用,可以进行适当的封装来满足不同业务的调用,仅供演示。主要关注 main 函数中,注册consul服务相关代码。当然结合数据库操作封装功能完成闭环调用,不再赘述。新建 demo/server/main.go。新建 demo/client/main.go。发现服务端,客户端控制台都打印输出出来了。在 demo/client 下执行 $原创 2024-03-11 22:12:50 · 757 阅读 · 0 评论 -
Go微服务: 基于Go Micro框架实现微服务调用
在具体的项目开发过程中,开发者聚焦的是业务逻辑的开发和功能的实现大量的环境配置,调试搭建等基础性工作会耗费相当一部分的精力因此有必要将微服务架构中所涉及到的,相关的解决方案做集中管理和维护Go Micro 帮助我们解决了大部分上述问题,它是一个简化分布式开发的微服务生态系统该系统为开发分布式应用程序提供了高效,便捷的模块构建, 主要目的是简化分布式系统的开发它默认实现了consul 作为服务发现,通过http进行通信,通过protobuf和json进行编解码原创 2024-03-10 22:11:45 · 1279 阅读 · 2 评论 -
Go微服务: 基于ProtoBuf实现GRPC的微服务调用
运行起来这个客户端,即可看到客户端打印出来的服务端回复信息,同时服务端自身也打印出来了。新建 demo/server/main.go。新建 demo/client/main.go。原创 2024-03-10 13:41:19 · 901 阅读 · 0 评论 -
Go微服务: 基于ProtoBuf实现序列化和反序列化
关于 protoBuf 参考:选择合适的版本安装后注意检查环境变量安装后,查看版本本机安装 protobuf的件protoc-gen-go插件和protoc-gen-go-grpc插件这个插件把 protobuf 文件转化为 go 文件目前这个 protoc-gen-go 插件包安装可能会有问题,跟随我的步骤来解决这个包按照上述命令安装后,不会在, 则进行检查 go env 中的GOBIN查看 $go env,看下GOBIN是否为 “”, 如果如此,则进行设置,类似。原创 2024-03-09 15:42:04 · 613 阅读 · 0 评论 -
Go微服务: 基于net/rpc/jsonrpc模块实现微服务跨语言调用
Golang 提供库来实现rpc方法采用 json 方式进行数据编解码,支持跨语言调用这里演示了,基于go语言为服务端,nodejs 和 golang 为客户端的3种示范注意,上面 nodejs版本中的 params 的格式与 golang 中的区别标准库的RPC默认采用Go语言特有的gob编码,没法实现跨语言调用golang官方还提供了 net/rpc/jsonrpc 库实现RPC方法JSON RPC采用JSON进行数据编解码,因而支持跨语言调用。原创 2024-03-08 17:17:39 · 1136 阅读 · 0 评论 -
Go微服务:基于net/rpc模块实现微服务远程调用
这里在 client 项目目录中,新建一个 main.go 文件。编辑 client/main.go 文件。新建 client 目录,后执行 $2 )添加客户端退出时的关闭连接处理。1 )要连接的话,首先要建立连接。原创 2024-03-07 21:44:50 · 769 阅读 · 0 评论 -
nodejs微服务:微服务集群
当一台微服务挂掉,我们怎么让服务仍然正常运行,需要在客户端调用微服务前进行负载均衡的处理。我们同时借助了consul集群,保证了服务的稳定运行,但是我们还应当实现API网关的集群。在调用前基于健康的服务进行随机选择微服务机器进行调用,实现了微服务集群的负载均衡。这样,微服务集群已经配置好了,但是上述调用写法可以抽离出一个公共的方法包出来。consul 负载均衡微服务代码如下。原创 2023-04-08 02:16:17 · 352 阅读 · 0 评论 -
nodejs微服务:Consul集群
Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置Consul 是分布式的、高可用的、可横向扩展的, 完成consul的安装后,必须运行agent原创 2023-04-07 01:04:41 · 395 阅读 · 0 评论 -
nodejs微服务:Consul的角色、命令与使用
完成consul的安装后,必须运行agent,agent可以运行为 server模式、client模式或者dev模式,每个数据中心至少必须拥有一台server,建议在一个集群中有3或者5个server,部署单一server,在出现失败时,会不可避免的出现数据丢失原创 2023-04-06 16:25:17 · 304 阅读 · 0 评论 -
nodejs微服务:服务发现与Consul
我们在做微服务开发的时候,客户端的一个接口可能需要调用N个服务,客户端必须知道所有服务的网络位置(ip+port)原创 2023-04-06 14:37:23 · 658 阅读 · 0 评论 -
nodejs微服务:关于Protobuf的使用
如果需要将message与RPC一起使用,则可以在 .proto 文件中定义RPC服务接口。原创 2023-04-06 12:37:55 · 887 阅读 · 0 评论 -
nodejs微服务:RPC与GRPC框架
后面自己要写的时候,可以将上述客户端和服务端,以及proto文件拷贝出去,写自己的业务需求。上述服务端和客户端中均引入了 helloworld.proto 这个文件有特定的书写语法。在上述 dynamic_codegen 目录中的代码就是微服务的代码。还有两个工具: grpc、protoLoader。有上述服务端代码中,我们看到有几个必要的步骤。客户端代码中,注意事项同上并参考注释。2.1 先启动服务端。2.2 后启动客户端。原创 2023-04-06 10:01:00 · 1752 阅读 · 0 评论 -
nodejs微服务:单体架构与微服务架构
微服务是微服务架构具体的实现方案,是通过微服务架构设计方法拆分出来的一个独立的组件化的小应用。原创 2023-04-04 23:22:18 · 835 阅读 · 0 评论