编辑
2024-04-12
DeployDiary
00

项目结构

image.png

微服务架构下部署的问题

  1. 由于服务 + 中间件的复杂度,导致部署复杂度也呈指数级上升
  2. 服务与服务之间的依赖关系
  3. 服务之间的网络共享问题
  4. 考虑有状态服务的数据持久化问题

问题一: 利用 docker-compose 的服务编排能力,来实现对多服务的批量化处理

问题二: 利用 docker-compose 的 depends_on 属性,来设置依赖服务,必须按依赖服务先启动,当前服务才能启动

问题三: 利用自定义网络,或者 links 属性来连接需要通信的服务

问题四: 使用数据持卷来进行持久化的数据管理

编辑
2024-04-03
DBNotes
00

Redis 介绍

image.png

Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。

编辑
2024-03-30
Python
00

socket介绍

什么是 Socket?

  • Socket 是一种网络通信的端点,可以看作是一个通讯通道的一个端口。通过 Socket,不同的应用程序可以在网络上相互通信。Socket 是操作系统提供的一种接口,应用程序通过它可以发送和接收数据。

image.png

Socket 的分类

  • Socket 可以根据传输协议分类为:
  1. 流式套接字(Stream Socket):
  • 基于 TCP(Transmission Control Protocol)协议,提供面向连接的、可靠的字节流服务。
  • 使用场景:需要保证数据顺序和完整性的应用,比如 HTTP、FTP。
  1. 数据报套接字(Datagram Socket):
  • 基于 UDP(User Datagram Protocol)协议,提供无连接、不可靠的数据传输服务。
  • 使用场景:需要快速传输数据且不要求数据可靠性的应用,比如视频流、在线游戏。
编辑
2024-03-29
Python
00

列表推导式

列表推导式是 Python 中的一种构造列表的语法糖。它可以让你用一行代码生成一个列表,而不需要使用循环、条件语句等复杂的语句。列表推导式的基本形式如下:

python
[expression for item in iterable]

这将生成一个新的列表,列表中的每个元素都是通过对 iterable 中的每个 item 应用 expression 得到的。

编辑
2024-03-28
Python
00

''.join(sorted(combined)) 说明

在Python中,''.join(sorted(combined))这个表达式的用法是将一个字符集合或字符列表按照字母顺序排序,然后连接成一个新的字符串。让我们通过一个具体的例子来讲解。

假设我们有两个字符串str1str2

python
str1 = 'hello' str2 = 'world'

我们的任务是找出这两个字符串中的所有不重复的字母,并按字母顺序排序。

首先,我们将这两个字符串转换为集合,然后将这两个集合合并成一个新的集合combined,这个集合包含了这两个字符串中的所有不重复的字母:

python
combined = set(str1) | set(str2)

然后,我们使用''.join(sorted(combined))这个表达式来将combined中的所有字母按字母顺序排序,并连接成一个新的字符串:

python
result = ''.join(sorted(combined)) print(result) # 输出:'dehlorw'

这个表达式的结果是一个新的字符串,其中包含了combined集合中的所有字母,按字母顺序排序,字母之间没有任何分隔符。

所以,''.join(sorted(combined))这个表达式的用法是将一个字符集合或字符列表按照字母顺序排序,然后连接成一个新的字符串。