微服务架构实践之邮件通知系统改造
拆分背景
随着平台业务增长,功能耦合度越来越高,部署周期变长,代码样式混乱、新人入手复杂、独立功能影响系统的稳定性等等,等等,等等问题。
以邮件通知为案例对服务进行拆分,独立服务,独立部署,独立进程,做到及时上线而不影响平台正常运营。
以此为例,望大家对于经手的功能模块,有一个良好的规划,不要碍于项目进度而给自己或者别人制造麻烦。
拆分原因
- 邮件通知分散于各个系统,配置变更容易遗漏
- 代码分散,功能修复麻烦,相应的增加部署难度
- 多人经手,代码风格不同,不易于维护
- 发送模版不规范,导致发送风格迥异
- 线上生产环境出现问题,在不影响正常运行的情况下,不易于修复
- 功能集成在项目,增加了调试的难度
- 影响平台稳定性
拆分优势
系统拆分虽然会增加了复杂性,但是可以得到更多的好处
- 数据闭环实现自我管,不依赖于任何系统,即去依赖化这样的好处是别人抖动不会影响到自己
- 数据异构,即将各个系统的数据传输过来,按照自己的要求去处理
- 基于Maven管理项目,相比于项目中的Ant构建更高级,当然功能不仅仅是构建,还有一些列的优势
- SpringMvc+Dubbo实现服务治理,对外开放接口,也可以自定义实现HTTP请求
- 基于Thymeleaf模版,实现邮件动态内容模板话,良好的封装,便于开发和查阅
- 初次采用Log4j2 ,睁大眼睛是二,没错,对比log4j和logbak性能大幅度提升
- 独立服务,独立部署,独立进程,更加灵活易部署,易扩展
- 使用LinkedBlockingQueue安全队列做任务队列(咱不考虑)
- 额外增加Redis是为了在大量邮件发送请求下缓解邮件发送服务器压力(咱不考虑)
技术实现
Maven、SpringMvc、Dubbo、Redis、Thymeleaf、Log4j2、MQ
技术问题
如何快速入门Maven
如何轻松搭建一个Maven项目框架
对于在Maven库中不存在的Jar该如何处理
如何搭建SpringMvc基础配置
关于Log4j2的正确使用
模版Thymeleaf如何生成静态文件
任务队列LinkedBlockingQueue实现
redis使用场景
MQ使用场景
架构图例
关于Maven
关于流程
小站:https://blog.52itstyle.com/archives/1012/
微服务架构实践之邮件通知系统改造相关推荐
- 去哪儿旅行微服务架构实践
今天我带来的主题是去哪儿旅行微服务架构实践.我将从以下几个方面进行介绍: 背景介绍 微服务架构模式的最佳实践 微服务开发效率的提升实践 微服务治理的实践 ServiceMesh 尝试 一.背景介绍 首 ...
- 爱奇艺在 Dubbo 生态下的微服务架构实践
作者 | 周晓军 爱奇艺中间件团队负责人 导读:本文整理自作者于 2020 年云原生微服务大会上的分享<爱奇艺在 Dubbo 生态下的微服务架构实践>,重点介绍了爱奇艺在 Dubbo.S ...
- dubbo 自定义路由_爱奇艺在 Dubbo 生态下的微服务架构实践
作者 | 周晓军 爱奇艺中间件团队负责人 导读:本文整理自作者于 2020 年云原生微服务大会上的分享<爱奇艺在 Dubbo 生态下的微服务架构实践>,重点介绍了爱奇艺在 Dubbo.Se ...
- 基于CSE的微服务架构实践-轻量级架构技术选型
[摘要] 本文在前一篇"基于CSE的微服务架构实践-基础架构"基础上,介绍了使用CSE进行轻量级架构的技术选型参考.文末提供了基于JWT的微服务认证鉴权方案. 轻量级架构模式下,可 ...
- 基于CSE的微服务架构实践-Spring Boot技术栈选型
[摘要] 本文在前一篇"基于CSE的微服务架构实践-基础架构"基础上,介绍了在Spring Boot中集成CSE的技术选型参考.本文介绍了Spring Boot集成CSE的基本原理 ...
- 出自阿里P8之手的这份微服务架构实践手册,为何能霸榜GitHub一周
什么是微服务架构? 微服务架构是一项在云中部署应用和服务的新技术.大部分围绕微服务的争论都集中在容器或其他技术是否能很好地实施微服务,而红帽说API应该是重点. 微服务的核心是服务治理,而服务治理的关 ...
- 微服务架构技术调研<3>--微服务架构实践
引言: 由于公司商业上有实打实的需求和场景,倒逼产品开始思考架构升级,以适应这种商业环境的快速变化.架构师在进行技术选型或者架构升级前,需要做大量技术调研.竞品分析,<微服务架构综述>则是 ...
- 微服务架构实践心得小结
微服务架构实践心得小结 来源:彗星计划 简介 微服务架构 微服务架构则是由一组微服务组成的架构模式.每个微服务都是一个可独立部署的完整系统.一组微服务组成微服务层(注意这里的服务层不同于monolit ...
- 沙龙报名 | 数据存储与微服务架构实践,6月15日上海
架构是科学也是艺术,优秀的架构案例往往可以拓宽我们的思路,让问题迎刃而解.本期携程技术沙龙邀请了携程.百度和阿里的优秀工程师带来各自领域最新的架构实践成果,特别集中在数据存储.微服务体系演进和应用监控 ...
- 七牛技术总监肖勤:微服务架构实践经验分享
服务的疯狂增长与云计算技术的进步,让微服务架构受到我们的重点关注.在近日的七牛开发者最佳实践日上,七牛技术总监肖勤介绍了本人在微服务架构方面的实践经验,并接受了恩威科技(微信公众号:天府云创)记者的采 ...
最新文章
- 计算机考研专业课资料百度云,2020年考研专业课【初试】资料清单
- java1.8 indexes_java1.8源码之ArrayList源码解读
- 【机器学习入门到精通系列】多变量线性回归(附详细代码)
- PXA270-基于ARM9内核Processor外部NAND FLASH的控制实现
- 【CyberSecurityLearning 63】CSRF攻击
- 【转发】实现yolo3模型训练自己的数据集总结
- 临时笔记, 有意思的东西
- Java程序员如何高效学习,才能加快成为架构师的步伐
- Atitit java的异常exception 结构Throwable类
- Java八大算法:归并排序
- 数据挖掘导论课后习题答案 第二章(一)
- cocos2dx 手游luac 解密 文件的key
- el-select 默认选中值
- 工作三年,回顾一下工作历程
- webstorm 使用技巧
- php 上传微信客服头像,微信多客服上传头像
- WIN10安装Debugging Tools for Windows
- 联想Thinkpad T480 电脑 Hackintosh 黑苹果efi引导文件
- 【智能制造】一份不错的工厂自动化解决方案PPT!
- Thymeleaf【快速入门】
热门文章
- 用python编写一个点餐程序_用python写一个 点餐代码--急急急 !!! 希望高人帮忙!...
- PHP 可变变量的使用
- 新句子:没有谁比我更懂XX,抓普也不行
- LINUX编译Android ffmpeg
- 不会编程,就不会写测试案例,就不会测试
- 分析一个JDK卡死问题,还真有点麻烦
- 粒子的自旋数,是否就是弦在膜上的关系
- 事在四方,要在中央。圣人执要,四方来效
- 管理感悟:回字有几种写法的面试
- MySQL到mongodb中间件_Bifrost: Bifrost ---- 面向生产环境的 MySQL 同步到Redis,MongoDB等服务的异构中间件...