在年中初闻微服务,至今也无法真正理解什么是微服务以及如何应用于具体的工程实践之中。微服务之“微”本身就是一个相当不确定之描述,可以小到一个函数,也可以大到一套既有系统。因此,在具体工程实践中,对于系统是否适用微服务架构以及如何去架设一套基于微服务模式的架构变得无所适从。
于今秋有幸参与一个网络借贷平台的研发工作,之前一直从事桌面应用软件的开发。因此,web应用开发对我来说是个新的体验与经历。通过这几个月的学习和实践,总算对web应用特别是web应用服务端的开发工作有所了解。如今web应用的技术栈已相当复杂与多元,对我来说真是一头雾水。如服务端开发中常常会用到Spring、Mybatis、redis、zookeeper、activemq、Dubbo等框架或者工具。对于其中的大部分真的是一知半解,能用了就万事大吉。
通过具体的工程实践,让我对微服务多了几分认识。第一、分布式事务不好处理,能避则避。在理论领域,分布式事务是个热点和难点,业内也有很多不同的解决方案。但是,在工程实践上,个人觉得不到万不得已应该尽量不用分布式事务。第二、对于服务的拆分,粒度把握不好。通过近段时间的实践,个人觉得以事务为单位去拆分服务是一个不错的选择。尽量把属于同一个事务的处理过程放在同一个服务内。第三、对于queue和redis的使用,个人觉得在功能实现的时候queue的作用比redis大,在系统性能优化阶段再考虑使用redis。
总之,大道至简。我想微服务的“微”也蕴含着简。回望那些年我们经历过的各种框架的演进之路,唯有那些简单便捷之框架不断获得大众之认同。因此,在以后的设计与工程实践中,希望自己能够一直秉承“至简”之原则,不断加深对微服务的认识。
网友评论