
微服务
文章平均质量分 82
isea533
《MyBatis从入门到精通》作者,MyBatis分页插件PageHelper作者,通用Mapper作者,个人网站:https://mybatis.io
展开
-
事务性发件箱模式:解决数据库事务和消息的一致性
事务性发件箱模式是一种解决数据库事务和消息的一致性问题的方法。它的基本思想是,将消息的发送操作与数据库的更新操作绑定在一起,保证这两个操作是原子性的,要么都成功,要么都失败。在传统的数据库应用中,数据库事务与消息的发送是独立的两个操作,如果数据库事务因为某种原因失败了,消息可能已经被发送出去了,这就导致了数据的不一致性。事务性发件箱模式的目的就是解决这个问题。事务性发件箱模式的实现方式有多种,其中一种是将消息的发送操作与数原创 2022-12-07 21:00:00 · 1443 阅读 · 0 评论 -
Java 输出 JSON 日志
Java logback JSON 日志集成 fluentd 和 logstash原创 2022-11-08 22:45:00 · 804 阅读 · 0 评论 -
Spring Cloud 多租户灰度设计
SaaS微服务环境中,每个租户都有自己独立的数据库,当应用服务升级时(通常数据库表结构或数据需要同步改动时),需要保证升级后的租户能够使用升级后的应用服务,没有升级的租户仍然使用旧版本的服务。框架使用 Spring Cloud(不带 Alibaba,抛弃 Dubbo 了)。运行环境为 K8s 集群。K8s 中的部署名(deploy)和 Spring Cloud 服务名()相同,有小bug补丁更新时直接替换部署的镜像,版本不变,此时可以通过让实例数的滚动更新可控即可实现另一个概念上的灰度更新(不涉及后端库的变原创 2022-07-08 08:00:00 · 1091 阅读 · 0 评论 -
OpenResty实现按租户灰度发布
K8s上的一套SaaS服务,每个租户都有自己的独立数据库,前后端分离,后端微服务,前端Nginx。当SaaS服务升级的时候,需要按照租户逐个进行升级,因此升级过程中需要逐步将租户迁移到新的服务上,后端基于 Spring Cloud Gateway 实现,前端通过 OpenResty 结合 K8s Service 实现。OpenResty 配置代码基础代码如下:worker_processes 1;error_log logs/error.log debug;events { work原创 2022-03-28 21:30:00 · 3300 阅读 · 0 评论 -
Spring Cloud Alibaba 在 Kubernetes 配置 Service 访问
环境框架:Spring Cloud Alibaba运行环境:Kubernetes注册中心:Nacos问题当在 Spring Cloud Alibaba 中使用 Dubbo 服务时,或者就是单纯的 Dubbo 服务时,会经常遇到 No Provider 的问题。产生这个问题的一个原因是,Kubernetes 中的服务更新时,会启动新 Pod,然后关闭旧 Pod,没对 Dubbo 做任何配置的时候,注册服务时,使用的都是 Pod 容器的 IP,这个 IP 在服务更新或者重启的时候会变,Dubbo原创 2021-12-06 21:32:55 · 907 阅读 · 0 评论 -
Spring Cloud Alibaba 本地调试方案
本地调试: 这里是指在开发环境中,部署了一整套的某个项目或者产品的服务,开发人员开发时,本地会起一个或多个服务,这些服务和开发环境中部署的服务是相同的,这种情况下,一个服务就会有多个实例,大多数微服务中的默认负载均衡策略都是轮询,这些实例会轮流被调用。原创 2021-07-11 21:27:23 · 2698 阅读 · 1 评论