微服务之链路追踪
在微服务架构中,交互方式变成服务和服务之间的交互,当接口链路过多,此时出现问题会非常不好排查,因此需要引入链路追踪技术,可以查看请求链路中所有经过的服务。
在微服务架构中,交互方式变成服务和服务之间的交互,当接口链路过多,此时出现问题会非常不好排查,因此需要引入链路追踪技术,可以查看请求链路中所有经过的服务。
在微服务架构中,由于服务之间隔离,服务和服务之间的交互变得不确定性,通过熔断、降级、重试可以很好的提高可用性,重试情况下,幂等性是必须解决的一个问题。
在微服务场景中,解耦能力是非常重要的,常用的解决方案是通过消息队列。具有回查机制和高并发能力的RocketMQ在实现分布式事务功能上有很大的优势。
在一些使用数据库的系统中,当数据操作掺杂业务逻辑,需要通过业务逻辑结果判断是否需要修改数据时,可以用到数据库的事务。在分布式的场景下,如果是跨节点交互业务逻辑,需要实现回滚,则需要使用到分布式事务。
ElasticSearch是最为常用的检索数据库,是一种NoSQL,一般用于做不常更新、常检索的场景,例如用于存储日志或者用于商品检索。本文介绍一些常用的es操作步骤和使用golang操作es的方式。
在gRPC长连接的场景下,如果客户端和服务端都是多个节点,那么则需要处理连接的负载,同时,当服务端扩容,则需要动态调整。
并发编程的过程中为了保证数据安全,解决数据竞争带来的问题,通常的解决方案就是使用锁。在单进程内使用局部锁,与在多进程之间使用分布式锁。
当服务上线下线,IP、端口发生变更,如果在微服务场景下维护每个微服务的信息,工作量会非常大,因此需要有专门的服务对这些服务进行管理,就需要引入服务发现
在微服务场景下,如何管理这么多服务的配置是必须思考的问题,当某个服务配置发生变化,如果影响其他服务,那么调整会非常麻烦,因此需要引入配置中心对配置进行管理。
在日常开发中,使用web框架用的非常多,其中比较频繁的是gin框架,这里做一个笔记记录学习过程有时候会忽视的知识点。