惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
Vulnerabilities – Threatpost
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy International News Feed
H
Heimdal Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Secure Thoughts
MyScale Blog
MyScale Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LINUX DO - 最新话题
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Cloudflare Blog
美团技术团队
Recorded Future
Recorded Future
T
Tailwind CSS Blog
Latest news
Latest news
Security Archives - TechRepublic
Security Archives - TechRepublic
Security Latest
Security Latest
Know Your Adversary
Know Your Adversary
Cloudbric
Cloudbric
Schneier on Security
Schneier on Security
I
Intezer
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
云风的 BLOG
云风的 BLOG
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Attack and Defense Labs
Attack and Defense Labs
人人都是产品经理
人人都是产品经理
L
LangChain Blog
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
L
Lohrmann on Cybersecurity
S
SegmentFault 最新的问题
W
WeLiveSecurity
C
Cybersecurity and Infrastructure Security Agency CISA
S
Securelist
SecWiki News
SecWiki News
V2EX - 技术
V2EX - 技术
IT之家
IT之家
Cyberwarzone
Cyberwarzone
F
Full Disclosure
Spread Privacy
Spread Privacy
阮一峰的网络日志
阮一峰的网络日志

博客园 - luckygxf

架构积累-系统划分 架构积累-软件架构终极目标 javascript构造方法 数据库连接池初始连接 分布式系统CAP理论(一) 数据库连接太多排查(一) 审批流程-节点自动审批通过 防表单重复提交 深分页问题 devops 对象存储迁移-组件上线 工作效率提升 新需求开发-重构老的逻辑 js析构赋值 框架的好处和不足 React框架Hello world 数据库表设计在哪个接口 需求实现-ddd四层架构实现 前端代码(一) 高内聚,低耦合 mermaid初体验 业务逻辑优化-解决提示词问题打分不准 idea 插件envfile初体验 防盗链-防盗用链接 springboot项目启动小技巧 github托管网站 AI MCP开发 AI中 MCP 作用 mapconstruct 初体验 架构积累-解耦与防腐 表创建索引的重要性 重构注意事项(一) drawio初体验 六边形架构 架构积累-依赖注入和SOLID原则 工作总结-定时任务 工作总结-知识通关需求上线 工作总结-演练场景映射方案 工作总结-MVP 工作总结-需要学习的方向 工作总结-接口优化 python asyncio demo 工作总结-sse接口心跳 工作总结-问题筛选方案 工作总结-工具分享 工作总结-提示词优化 工作总结-工作优先级 工作总结-灰度发布
对象存储改造
luckygxf · 2026-05-05 · via 博客园 - luckygxf

业务的图片、文档等信息存储在对象存储服务器,调用S3的sdk,通过rest接口把文件存储到服务器。公司之前用的ECS的存储服务器,为了国产化,需要改成腾讯的COS对象服务器。

改造的方案

1.双写到两个服务

2.降级读,如果在cos里面读不到,就到ecs里面读

3.对象迁移,把ecs里面存储的对象,迁移到cos服务器里面

改造过程中也遇到一些问题

1.微服务组件太多,容易改漏。感觉这种应该有个服务收口,对外提供对象存储服务,不管内部实现,后面只要改造这个服务就可以了。也不会改漏,不用改其他微服务。问了下deepseek这种比较像适配器模式,也是依赖倒置思想的一种体现,也是一种防腐手段。

2.迁移过程中,存储的桶和对象名,保存在关系型数据库tdsql里面,tdsql是腾讯的一个分布式关系型数据库。开始以为只有一张表,一个桶,后面发现有多个桶,多个表。项目是java开发的,后面使用了模板设计模式+工厂模式,定义接口或者抽象类。用spring的bean容器,获取所有的实现类对象,调用对应的方法。后面新增表,新增实现类就可以了,不用修改其他代码

3. 因为有多个桶,每个桶有权限控制。只能对应桶的用户才能读取,项目有个工具比较好用,可以搜全量代码。把搜索结果通过IM工具消息发送结果给你,把每个桶的用户信息都可以搜到,不用每个组件代码,下载到本地再看

4. 没有使用统一组件提供的微服务,导致重复代码很多。修改维护成本很大