我们是如何让微服务在实践中“活色生香”的?

文章目录

  • 博主介绍
  • 本文内容
    • 1. 前言
    • 2. 请求的路径分析
    • 3. 服务周期分析
    • 4. 请求格式转换
    • 5. 服务层设计
    • 6. 业务服务层设计
    • 7. 安全防护及策略
    • 8. 结论
  • 文章总结
  • 博主目标

博主介绍

我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文专业写手、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。跑过十五公里、徒步爬过衡山、有过三个月减肥20斤的经历、是个喜欢躺平的狠人。

拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、Spring MVC、SpringCould、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RockerMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。

有过从0到1的项目高并发项目开发与管理经验,对JVM调优、MySQL调优、Redis调优 、ElasticSearch调优、消息中间件调优、系统架构调优都有着比较全面的实战经验。

有过云端搭建服务器环境,自动化部署CI/CD,弹性伸缩扩容服务器(最高200台),了解过秒级部署(阿里云的ACK和华为云的云容器引擎CCE)流程,能独立开发和部署整个后端服务,有过分库分表的实战经验。

经过多年在CSDN创作上千篇文章的经验积累,我已经拥有了不错的写作技巧,与清华大学出版社签下了四本书籍的合约,并将陆续在明年出版。这些书籍包括了基础篇、进阶篇、架构篇的《Java项目实战—深入理解大型互联网企业通用技术》,以及《解密程序员的思维密码–沟通、演讲、思考的实践》。具体出版计划会根据实际情况进行调整,希望各位读者朋能够多多支持!


文章目录

  • 博主介绍
  • 本文内容
    • 1. 前言
    • 2. 请求的路径分析
    • 3. 服务周期分析
    • 4. 请求格式转换
    • 5. 服务层设计
    • 6. 业务服务层设计
    • 7. 安全防护及策略
    • 8. 结论
  • 文章总结
  • 博主目标

阅读前,快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问,以加深理解和吸收知识。

在这个美好的时刻,本人不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。

本文内容

CSDN

1. 前言

伴随着科技发展的浪潮,互联网行业也在经历着翻天覆地的变化。我们特此设计了一套名为“开放平台”的方案,通过它可以打破后台和前台之间的隔离结构,实现“客户端-外部系统-唯品会/京东/支付宝/后台”的紧密串联。而且,我们还设计了一个管理平台,就像厨师掌勺一样,让它能够根据需求自由控制路由转发请求、过滤不必要的数据以及统一管理应用权限等功能。尽管这听起来高大上,但实质就是做菜的时候掌握火候,控油温,让整盘菜的味道更加鲜美。所谓“食客与烹饪过程共舞,美味与和谐共荣。”下面就让我们详细聊聊这个过程中的一些细节问题吧!

2. 请求的路径分析

当一个项目启动时,首先需要确保所有可能出现的场景都被考虑到。举个例子,小白在去餐厅用餐时,首先需要知道自己想要什么口味的菜肴,然后再向餐厅点单。如果是一个开发团队,那么他们的工作就像是给客户提供美食菜单。显然,菜肴的选择和餐厅的口味由团队的开发技术和能力所决定,例如,总厨的烹饪技巧决定了菜肴的色香味,环境布置和服务态度则关系到客人的舒适度。

3. 服务周期分析

同理,我们需要了解的不仅是各种服务在实际运行中可能遇到的挑战,更重要的是如何应对这些挑战。为了更好地完成服务周期,团队成员可以使用各种工具进行环境检测和性能优化,如:监控告警、负载均衡、文件上传、活动储存服务等等。这些监控组件就像是餐厅里的服务员们,随时关注顾客的需求和反馈,及时调整服务内容,以满足不同顾客的口味。

4. 请求格式转换

(1) 对于来自于自定义资源类别的请求,我们会采取参数转换策略;
(2) 对于来自于第三方存储库的服务请求,我们会采取格式转换策略;
(3) 对来自于不同端口类别的外部请求,如HTTP或TCP请求,我们采用协议转换策略。
这些转换过程就如同大厨们在配料、调配和烹制食物时必不可少的步骤,恰到好处的调料会使食品产生更好的色泽和口感。

5. 服务层设计

既然已经确定了服务周期并实现了格式转换,那么接下来我们就要进入服务层的搭建环节了。在这里,我们通过微服务网关设计来实现请求路由管理和参数转换配置等一系列关键操作。在这个层面,我们借鉴了传统餐饮业的经验,把各种服务按照功能进行模块化划分,定制出符合消费者口味的美食套餐。这样既方便了服务的组织和推广,也提升了消费者的个性化体验感。

6. 业务服务层设计

无论你是在大牌餐厅还是普通小店,想要确保往来热情洋溢的食客都能享受到美味佳肴,服务者的专业水平是至关重要的。每个服务者都需要拥有扎实的技艺和经验才能在不同的服务角色间游刃有余,无论是自助点单还是餐台奔走,都能顺畅地调整方向和节奏。同样的道理,在我们的项目里,业务服务层就扮演了这种承前启后的角色。

7. 安全防护及策略

就像餐厅会安装安防设备保障商家权益一样,我们的“开放平台”会采取一系列严密措施来维护平台的安全性。例如,我们通过header处理防止请求跨域;对比白名单和黑名单实施统一异常处理;同时还进行了IP名单管理、第三方鉴权管理等一系列安全防护机制。同时,灰度发布、网络安全Set和Redis组存也是重要的安全策略之一,确保了数据一致性并做到定时同步配置进程。为了确保客户信息安全,权限拦截器让我们能够在授权之后顺利地将消费者的个人信息(移动电话号、IP地址)写入输出端头。以此为基础,保证业务服务的正常运行。

8. 结论

美食类比于技术开发就像是个韵味深长的诗歌,无论是点单的互动方式,抑或是每个步骤的繁复要求,两者都是相似的。工作人员要注意食材与佐料搭配得宜,确保烹饪过程中的每一个阶段正常运作,最终才有可能做出美味诱人的食物。通过将美食和技术进行思考和综合比较,我们可以更好地理解和学习他们两者之间的关联性,从而推动我们所从事的工作的进一步发展。

总之,正如我之前提到的那样,“开放平台”是我们每周五晚都要给员工加菜的高档营养大餐。在实际操作中,我们采取了完全不同于传统后台管理的新思路,打造了服务周期、请求路径、服务周期等一系列关键流程,并通过基于header的全局安全性保护、精确的手动或自动获取错误信息等手段来保障整个流程的顺利运转。正因如此,我们成功地打磨除了一套小型却切合需求的微服务体系,希望这套做法能为您带来一些启示。

CSDN

文章总结

对本篇文章进行总结:

以上就是今天要讲的内容,阅读结束后,反思和总结所学内容,并尝试应用到现实中,有助于深化理解和应用知识。与朋友或同事分享所读内容,讨论细节并获得反馈,也有助于加深对知识的理解和吸收。

以梦为马,不负韶华

如果您需要转载或者搬运这篇文章的话,非常欢迎您私信我哦~

希望各位读者大大多多支持用心写文章的博主,现在时代变了, 信息爆炸,酒香也怕巷子深,博主真的需要大家的帮助才能在这片海洋中继续发光发热,所以,赶紧动动你的小手,点波关注❤️,点波赞,点波收藏⭐,甚至点波评论✍️,都是对博主最好的支持和鼓励!

  • 博客主页: 我是廖志伟
  • 开源项目:java_wxid
  • 哔哩哔哩:我是廖志伟
  • 个人社区:幕后大佬
  • 个人微信号SeniorRD
  • 微信号二维码SeniorRD

博主目标

  • 程序开发这条路不能停,停下来容易被淘汰掉,吃不了自律的苦,就要受平庸的罪,持续的能力才能带来持续的自信。我本是一个很普通的程序员,放在人堆里,除了与生俱来的盛世美颜,就剩180的大高个了,就是我这样的一个人,默默写博文也有好多年了。
  • 有句老话说的好,牛逼之前都是傻逼式的坚持,希望自己可以通过大量的作品、时间的积累、个人魅力、运气、时机,可以打造属于自己的技术影响力。
  • 内心起伏不定,我时而激动,时而沉思。我希望自己能成为一个综合性人才,具备技术、业务和管理方面的精湛技能。我想成为产品架构路线的总设计师,团队的指挥者,技术团队的中流砥柱,企业战略和资本规划的实战专家。
  • 这个目标的实现需要不懈的努力和持续的成长,但我必须努力追求。因为我知道,只有成为这样的人才,我才能在职业生涯中不断前进并为企业的发展带来真正的价值。在这个不断变化的时代,我们必须随时准备好迎接挑战,不断学习和探索新的领域,才能不断地向前推进。我坚信,只要我不断努力,我一定会达到自己的目标。

有需要对自己进行综合性评估,进行职业方向规划,我可以让技术大牛帮你模拟面试、针对性的指导、传授面试技巧、简历优化、进行技术问题答疑等服务。

可访问:https://java_wxid.gitee.io/tojson/

开发人员简历优化、面试突击指导、技术问题解答

你可能感兴趣的:(微服务,架构,云原生)