【前言】

针对现在开发用的框架(SSM+Dubbo),自己进行了一些思考;这些问题应该是当系统在大流量,高并发,分布式情况下需要考虑一些问题,自己在对服务拆分的时候一些思考的记录下来,与大家共享;

【一些思考】

        一、服务调用

1、服务之间调用的关系是否清晰合理?

这是考量一个系统拆分的服务是否合理的一个重要指标;好的架构设计,各个服务职责明确,服务间调用关系清晰明确;反之则是一个梦魔;

2、如何拆分服务是和业务密切相关?

我们根据云平台的业务将我们的系统拆分成四大服务,服务之间通过接口调用,自己服务禁止通过查数据库的方式直接查其他服务的库,必须通过接口;

        二、Facade层的作用以及这样设计的好处

1、Facede层作用

我们的项目架构是在service中增加了Facade层,那么这层是用来干什么的那?它就是用来为其他服务提供接口实现,如果是自己项目的service之间调用,则不必走Facade;

2、这样做的好处

代码上将对外和对内的进行隔离,易于排错,遇到问题,根据Facade中是否有该接口可以定位是外部系统调用出错,还是内部系统出错。

        三、抽出BaseService遇到一些问题

1、状态码设置:如何根据不同的系统设置不同的状态码?需要在抽象的基础上在实现个性化;

2、事务的控制:事务一直是分布式系统中最具挑战性的事情,通常做法如下:

(1)根据业务场景判断是需要强一致性还是最终一致性(一般情况下是最终一致性);

(2)最终一致性,我们可以利用消息队列异步补偿等机制来实现数据的最终一致性;

(3)强一致性,这种场景的业务比较少,如果真的遇见可以通过第三方的框架来实现比如:阿里的GTS等;

【总结】

1、多思考,多实践;

2、凡事有利必有弊,需要我们权衡,比如系统服务化后在带来服务扩展性好等优点的同时也带来了事务等问题;需要我们在设计的时候根据现在项目所处的阶段以及开发人员的水平,去平衡;

智能一代云平台(三十五):后端架构再思考相关推荐

  1. 创办智能车竞赛平台,十五年无间断,育人数十万

    ➤01 初稿 一.竞赛简介   全国大学生智能汽车竞赛是以智能汽车为研究对象,面向全国大学生开展的复杂工程探索类别的科技竞赛,目标是提高学生的动手实践能力.探索创新兴趣.团队协作精神.它起源于2005 ...

  2. 智能一代云平台(十九):选修课---类似秒杀的高并发业务

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 选课,考试,评教这三个功能是我们的云平台中的重头戏:并发高是这三个功能的一个共同特点, ...

  3. 智能一代云平台(十二):轮次设置

    ​强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan [前言] 基础系统是云平台中十分重要的一个子系统,它为其他系统提供了基础数据的支撑:基础系统中有 ...

  4. 智能一代云平台(十):Jboss远程访问流程总结

    [前言] 最近在做一个EJB相关的项目,在做的过程用到了远程调用的相关东西,自己进行一下梳理和总结,在此与大家分享. [相关流程]      一.对EJB和Jboss两者梳理: 1.小感:大多数情况下 ...

  5. C#三十五 三层架构企业应用

    视频课堂https://edu.csdn.net/course/play/7621 C#程序设计及宿舍管理系统实战   C#程序设计与宿舍管理系统实战-c#宿舍管理系统,c#学生宿舍管理系统-C#视频 ...

  6. 智能一代云平台(三十):逆向工程生成mybatis

    [前言] 最近在研究mybatis逆向工程的一些东西:通过研究Mybatis+通用mapper.逆向工程生成mybatis.Hibernate+mybatis:最终综合这些优点实现了一个我们自己的逆向 ...

  7. 智能一代云平台(三十一):mybatis加入分页

    [前言] 在<智能一代云平台(三十):逆向工程生成mybatis>已经将mybatis的逆向工程搞定了:但是美中不足的是mybatis的分页查询:接下来一起来探索一下分页查询. [分页查询 ...

  8. 智能一代云平台(二十九):通用mapper的改造

    [前言] 最近研究一下Mybatis的通用mapper,然后对其进行了一些改造以适合我们的系统,接下来为大家分享一下我的研究思路以及研究成果. [研究之路]      一.ORM框架选型: 1.我们最 ...

  9. 智能一代云平台(五):移动开发之环境搭建

    [前言] 谣传最近IT领域异常火热,而IT中的移动端领域更是如日中天. 做为一名程序猿的我,也不甘Out:于是雄心勃勃参加一个智能一代云平台移动端项目开发:之前有人做了第一版,现在我们需要重构. [基 ...

最新文章

  1. static构造函数的运行
  2. String创建对象的个数 StringBuffer
  3. 解读 Q_D, Q_Q 指针
  4. 天大和武大计算机考研,985大学排名出炉,天大和武大并列第10,榜首是哪所?...
  5. [Idea Fragments]2013.08.08
  6. Java中的42行代码中的URL缩短服务— Java(?!)Spring Boot + Redis
  7. 46个PPT下载丨QCon 2019年全球软件开发大会PPT
  8. C++安全方向openssl:绪论
  9. 初探HTML5.x新特性《dialog》标签
  10. Fish 环境下如何安装 nvm
  11. “开房信息泄露案”开审,“B/S架构”酒店管理系统终成酒店大患
  12. Profinet与GSD文件
  13. 人物传记思维导图模板
  14. 小米路由器显示无法连接服务器错误代码,小米路由器:路由器无法上网怎么办...
  15. 当浏览器默认禁用第三方cookie
  16. hive: Error in acquiring locks
  17. kinect使用手册
  18. 完美解决composer提示输入用户名和密码
  19. 【C#】C# List Sort 按照字母排序 多字段排序
  20. 贝塞尔曲线 三维 拼接 matlab,贝塞尔曲线公式

热门文章

  1. 从沉睡到满血复活,阿里开源框架 Dubbo 有没有让你踩过坑?
  2. 恭喜你,2018 中国开发者有奖大调查“榜上有名”!
  3. 我是如何旅游 5 个月拿到 3 份 Offer 并收入翻倍的
  4. Android 8.1 频频被曝 Bug,是要赶超苹果吗?
  5. 99乘法表java代码递归_Java编写九九乘法表(嵌套循环与递归)
  6. 【linux,跟Java初学者分享几点经验
  7. Java程序员必经的实践之路:Java中高级核心知识全面解析(11)
  8. Java实例方法和类方法的区别
  9. 电脑用户名_学会这一招,再也不用担心电脑的运行速度慢了
  10. 放在请求头目的_YSLOW性能测试前端调优23大规则(三)添加Expires头