• 技术大会
  • 极客时间
  • 极客大学
  • 团队学习
  • 高端会员
  • App 下载
  • 研究报告
  • 案例研习社
logo
  • 首页
  • 直播
  • 专题
  • 电子书
  • 话题
  • 免费视频
  • 技术博客

 写点什么

创作场景


  • 记录自己日常工作的实践、心得
  • 发表对生活和职场的感悟
  • 针对感兴趣的事件发表随笔或者杂谈
  • 从0到1详细介绍你掌握的一门语言、一个技术,或者一个兴趣、爱好
  • 或者,就直接把你的个人博客、公众号直接搬到这里
登录/注册
  • 架构
  • 前端
  • 编程语言
  • 云计算
  • AI
  • 开源
  • 技术管理
  • 运维
  • 区块链
  • 新基建
  • 云原生
  • 产品
  • 热点推荐
  • 2021中国技术展望
用户头像

码猿外

2018 年 10 月 07 日加入
功不求戾,但求有恒
ThoughtWorks Lead Consultant,拥有10多年的架构设计和敏捷软件开发管理经验,专注于分布式软件架构设计、微服务架构设计和敏捷软件开发。
个人主页:https://maguangguang.xyz
 关注
  • 8

    发布数

  • 5

    关注者

  • 2

    关注了

  • 发布
  • 评论
  • 划线
  • 收藏
  • 关注
  • 全部分类 
消灭微服务的坏味道 之 共享库
消灭微服务的坏味道 之 共享库

用户头像
码猿外

2 月 28 日

微服务一直强调独立自治,滥用共享库让微服务之间的耦合变的紧密,微服务的优势也就不复存在。对于稳定通用且和业务无关的功能模块,可以分别放到独立的共享库中;对于业务相关的代码,不要共享,这部分的冗余是可接受的。

BFF (Backend for frontend)避坑指南
BFF (Backend for frontend)避坑指南

用户头像
码猿外

2 月 24 日

BFF 在前后端分离的架构模式下隔离了前端和后端的关注点,特别是在多个前端或第三方的情况下,BFF 都是非常好的选择。然而在实际实现过程中,仍然要时刻警惕,明确 BFF 设计的初衷,避免因引入 BFF 而带来了更多的问题。

消灭微服务的坏味道 之 循环依赖
消灭微服务的坏味道 之 循环依赖

用户头像
码猿外

2020 年 11 月 20 日

微服务间的循环依赖是一个非常容易发生的坏味道,对系统的健康具有巨大危害。可视化的方式可以帮忙找到系统中的循环依赖问题,比如通过链路追踪系统(如 Zipkin)可视化服务间依赖关系,也可以将有问题的流程时序图画出来,然后对症下药,消灭坏味道。

迭代开发中的微服务拆分
迭代开发中的微服务拆分

用户头像
码猿外

2020 年 10 月 18 日

微服务拆分是微服务架构绕不过的话题,随着架构演进,在迭代开发中拆分微服务有时非常必要,微服务拆分不仅是一项技术层面的重构,首先要选择的合适的时机,另外在拆分前一定要理清业务现状,制定好拆分的基本原则,以指导后续拆分的过程。

为什么每个微服务要有自己独立的数据库?
为什么每个微服务要有自己独立的数据库?

用户头像
码猿外

2020 年 9 月 12 日

每个微服务拥有独立的数据库作为微服务架构提倡的实践之一,和其他实践一起,像鲁班锁中的积木一样巧妙组合在一起,共同支撑了微服务架构所具备的优点,在软件开发实践过程中,只有尽量遵守微服务架构所推荐的这些实践,才能最大化的发挥微服务架构的优势。

微服务架构下的系统集成
微服务架构下的系统集成

用户头像
码猿外

2020 年 9 月 2 日

集成是微服务架构中一定会谈及的问题,在缺少架构约束的情况下,只图一时之快的实现往往会葬送微服务的优势;在微服务架构设计之初,就要在团队内建立一些系统间集成的原则,并且定期 review,必要时可以采用一些架构守护的辅助工具,来保持架构的健康度。

如何提升系统可用性
如何提升系统可用性

用户头像
码猿外

2020 年 8 月 23 日

追求系统的高可用就像一个人追求身体健康一样,整个软件开发团队自始至终都要秉持爱护软件系统的心态,在软件开发的全流程中,时刻保持警惕,通过提高团队在三个阶段中的工程化能力来及时发现和解决系统中存在的问题。

微服务架构下你的数据一致了吗?
微服务架构下你的数据一致了吗?

用户头像
码猿外

2020 年 8 月 7 日

微服务架构的流行源于它能够带来更快的变化响应能力,比如独立部署,比如每个服务可以由不同的开发团队负责,每个服务的技术栈也可以不同。 但本质上微服务架构是分布式架构,那么怎么能保证微服务架构下数据的一致性呢?

个人成就
  • 发布了 8 篇内容

    共 22000字, 被阅读 5250次

  • 获得了 34 次赞同

    获得了 10次喜欢, 获得了 24 次收藏

  • 参与了 5 次互动

    互动包含发布评论、点赞评论、参与投票等

TA 关注的
频道
  • 移动
  • 前端
  • 云原生
  • 硬件
  • 区块链
  • 容器
  • 技术管理
  • 物联网
  • 运维
  • 编程语言
  • ···
最新评论
  • 码猿外感谢分享

     为什么每个微服务要有自己独立的数据库?

  • 码猿外感谢回复,赞同技术为业务服务 确实“每个微服务都使用独立的数据库”是一种实践的原则和思想,我个人觉得如果大家都能够在实践中尽量遵守这些实践的原则,有更多的思考(比如微服务我们要尽量的做到按合理的业务划分),理解这些原则才有可能更大程度发挥架构的作用

     为什么每个微服务要有自己独立的数据库?

  • 万里无云无论是强调完全每个微服务都使用独立的数据库,还是面向数据的架构,感觉都只是一种思想,提供解决问题的一个方案和手段。实际项目中,个人觉得还是应该根据业务情况,数据规模,访问并发大小,数据耦合情况这些具体分析,比如如果某个业务对数据库访问的并发非常大,那就尽量的将数据独立出来,如果某些数据库业务耦合性比较高,那么合并发在一个库中,收益也许会更好。技术为业务服务

     为什么每个微服务要有自己独立的数据库?

  • 松松仔实际系统构建活动中,数据库(特别是关系数据库)往往设计为业务的最终结果的存储。那么有相连关系的分散的数据库的数据如何实现事务、聚合、以及数据最终一致性的维护成为新的问题。 组成整个系统的各个部分,模块化》组件化》抽象化》微服务化,本质上是一个解耦的进化过程。但是过犹不及,如果微服务本身追求绝对的独立,是否本身又容易演变成单体结构,从而违背了解耦的初衷? 一种设计手法是把数据库访问逻辑作为一个独立组件微服务化,对外的数据写接口表现为消息队列。对外的数据读接口表现为类似 redis 的数据库前端缓存系统。

     为什么每个微服务要有自己独立的数据库?

  • 笨笨推土机不能太理想化,面向数据的架构了解一下 https://www.infoq.cn/article/XvrP6BYtq75R3CvxaYF0?utm_source=related_read&utm_medium=article

     为什么每个微服务要有自己独立的数据库?

  • logo

    促进软件开发及相关领域知识与创新的传播

    活动大本营
    • 更多精彩活动持续更新
  • InfoQ
    关于我们
    我要投稿
    合作伙伴
    加入我们
    关注我们
  • 联系我们
    内容投稿:editors@geekbang.com
    业务合作:hezuo@geekbang.com
    反馈投诉:feedback@geekbang.com
    加入我们:zhaopin@geekbang.com
    联系电话:010-64738142
    地址:北京市朝阳区叶青大厦北园
  • InfoQ 近期会议
    会议图片全球架构师峰会 09月11-12日
    会议图片全球人工智能与机器学习技术大会 09月24-25日
    会议图片全球软件开发大会 10月15-17日
    会议图片全球大前端技术大会 11月24-25日
  • 全球 InfoQ
    会议图片InfoQ En
    会议图片InfoQ Jp
    会议图片InfoQ Fr
    会议图片InfoQ Br
Copyright © 2021, Geekbang Technology Ltd. All rights reserved. 极客邦控股(北京)有限公司 | 京 ICP 备 16027448 号 - 5京公网安备京公网安备 11010502039052号
码猿外