《微服务架构设计模式》阅读笔记(一)

第1章 逃离单体地狱

1.1 迈向单体地狱的漫长旅程

1.1.1 FTGO应用程序的架构

FTGO,即Food to GO公司,作者虚构出来的一家公司。图1-1是它的架构图。
在这里插入图片描述

1.1.2 单体架构的好处

  1. 应用开发很简单:IDE和其他开发工具只需要构建这一个单独的应用程序
  2. 易于对应用程序进行大柜摸的更改:可以更改代码和数据库,然后构建和部署
  3. 测试相对简单直观:开发者只需写几个端到端测试,启用应用程序,调用REST API
  4. 部署简单明了:开发者唯一需要做的,就是把可执行文件复制到服务器上
  5. 横向扩展毫不费力:可以运行多个实例,由一个负载均衡器进行调度。

1.1.3 什么是单体地狱

在这里插入图片描述
过渡的复杂性会吓退开发者

系统本身过于庞大和复杂,以至于任何一个开发者都很难理解它的全部。因此修复,软件中的问题和正确的实现新功能就变得困难且耗时。
更糟糕的是,这种极度的复杂性正在形成一个恶性循环:由于代码库太难于理解,因此开发人员在更改时更容易出错,每一次更改都会让代码库变得更加复杂、更难懂。

开发速度缓慢

因为要跟这些极度复杂的系统打交道,开发人员发现他们日常的开发工作变慢了。这个巨大的项目把开发人员的IDE工具搞得很慢,构建一次应用需要很长的时间,更要命的是,每启动一次都需要很长的时间。这严重的影响的团队的工作效率。

从代码提交到实际部署的时间很长,而且容易出问题

一个月完成几次更新,对于开发人员来说简直就是神话,持续部署更是遥不可及的梦想。
众多开发人员都向一个代码库提交代码更改,这常常使得这个代码库的构建结果出于一个不可交付的状态。当采用分支来解决这个问题时,带来的是漫长且痛苦的合并过程。紧接着,一旦团队完成了一个冲刺任务,随后迎接他们的将是一个漫长的测试和代码稳定周期。
把更改推向生产环境的另一个挑战是运行测试需要很长时间。

难以部署

对应用进行横向扩展时也有挑战。因为在有些情况下,应用的不同模块对资源的需求是相互冲突的,有的模块需要内存,有的模块需要CPU。

交付可靠的单体应用是一项挑战

单体应用的另一个问题是缺乏可靠性,这个问题导致了频繁的系统故障和宕机。系统不可靠的一个原因是应用程序体积庞大而无法进行全面和彻底的测试。缺乏可靠的测试你意味着代码中的错误会进入生产环境。更糟糕的是,该应用程序缺乏故障隔离,因为所有模块都在一个进程中运行。

需要长期以来某个可能已经过时的技术栈

单体地狱的最终表现,也体现在团队必须长期使用一套相同的技术栈方面。单体架构使得采用新的框架和变成语言变得极其苦难。

1.2 为什么本书与你有关

略~

1.3 你会在本书中学到什么

略~

1.4 拯救之道:微服务架构

一方面,训练有素的团队可以减缓项目陷入单体地狱的速度。但是另一方面,他们无法避免大型团队在单体应用程序上协同工作的问题,也不能解决日益过时的技术栈问题。团队所能做的是延缓项目陷入单体地狱的速度,但这是不可避免的。为了逃避单体地狱,他们必须迁移到新架构:微服务架构。

1.4.1 扩展立方体和服务

在这里插入图片描述
X轴扩展:在多个实例之间实现请求的负载均衡

X轴扩展是扩展单体应用的常用方法。图1-4展示了X轴扩展的工作原理。在负载均衡器之后运行应用程序的多个实例。负载均衡器在N个相同的实例之间分配请求。这是提高应用程序吞吐量和可用性的好方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 你可以使用 Python 来创建一个阅读笔记程序。你可以使用 Python 的 GUI 库如 Tkinter 或 PyQt 来创建程序的图形界面,使用文件读写模块来保存和读取笔记。 如果你需要将这个程序打包成 exe,可以使用 pyinstaller 或 cx_Freeze 等工具来进行打包。 以下是一个简单的示例代码,使用 Tkinter 创建阅读笔记程序的界面。 ```python import tkinter as tk root = tk.Tk() root.title("阅读笔记") # 创建文本框 text = tk.Text(root) text.pack() # 创建保存按钮 save_button = tk.Button(root, text="保存", command=save_note) save_button.pack() root.mainloop() ``` 其中 save_note 函数可以负责将笔记保存到文件中。 以上代码只是个简单的示例,你可能需要根据你的需求来进行修改和扩展。 ### 回答2: Python可以用来开发一个阅读笔记的exe应用程序。该应用程序可以帮助用户记录读书笔记、整理阅读材料,并提供一些便捷的功能。 首先,该应用程序应该具备一个简单的用户界面,可以让用户添加阅读材料的信息。用户可以输入书名、作者、出版日期等基本信息,并可以添加自己的笔记内容。这些信息可以保存到本地数据库或者文本文件中,方便用户随时查看和编辑。 其次,该应用程序可以提供一些搜索和分类的功能,帮助用户快速找到自己感兴趣的材料。用户可以根据书名、作者或者出版日期等信息进行搜索,也可以将材料分为不同的分类,比如小说、科技、历史等,方便用户进行整理和管理。 此外,该应用程序还可以提供一些额外的功能来增强用户的阅读体验。比如,用户可以设置阅读进度,记录自己已经读到哪一页;可以设置阅读目标,帮助自己合理安排阅读时间;还可以添加标签和评论,方便用户做更详细的整理和回顾。 最后,该应用程序还应该具备数据备份和恢复的功能,以防止用户的阅读笔记丢失。可以定期自动备份用户的阅读笔记数据,并提供恢复功能,保证用户的阅读数据安全可靠。 总之,通过利用Python开发一个阅读笔记的exe应用程序,可以帮助用户更好地整理和管理阅读材料,提高阅读效率和体验。 ### 回答3: Python可以编写一个阅读笔记的exe应用程序。为了实现这个功能,可以使用Python的GUI库,如Tkinter或PyQt来创建用户界面,并使用文件处理模块来读取和写入笔记。 首先,可以使用Tkinter或PyQt创建一个简单的界面,包括一个文本框用于显示笔记和一个保存按钮。用户可以在文本框中输入和编辑笔记内容,并通过保存按钮将笔记保存到文件中。 要将笔记保存到文件中,可以使用Python的文件处理模块来实现。可以使用open()函数打开一个文件,指定文件名和打开模式(如写入模式),然后使用write()函数将文本框中的内容写入文件。最后,使用close()函数关闭文件。 为了读取笔记,可以在程序启动时检查是否存在之前保存的笔记文件。可以使用open()函数以读取模式打开文件,使用read()函数读取文件内容,并在文本框中显示。 除了基本功能外,你还可以添加其他功能,例如支持创建新的笔记文件、添加时间戳、对笔记进行搜索等。 总之,通过使用Python的GUI库和文件处理模块,你可以编写一个简单的阅读笔记exe应用程序,让用户可以方便地创建、编辑和保存笔记。该程序可以在Windows操作系统上作为exe文件运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值