11.8 Springcloud项目简介

各位领导好,我从毕业后做了两年Java开发工程师,刚开始都是一些SSM框架的项目,但是由于技术不断更新,微服项目成为必然的趋势,大约在做了1年的SSM框架,之后开始接触微服项目,前后经理过Dubbo和SpringCloud两种框架,接下来我就介绍一下简历上的第一个项目。

首先它是一个基于Springcloud框架的名为“永乐票务”的微服项目,我们项目组负责了大概20多个模块,这个项目期间我自己独立承担的大概八个模块。其实前期我还参加了SSM项目,大致的功能就是支撑永乐票务的系统的功能。所以说真正的微服我只大概做了半年。我们项目组负责了大概20多个模块,这个项目期间我自己独立承担的大概八个模块。像登录模块,支付模块,通用模块,管理模块,权限模块,运营模块等等。在做这个项目期间我也学到了很多知识。

总体来说,系统采用的是基于Springcloud的微服项目,采用的是中台架构。另外也接触了很多技术,比如说Vue、Angular.js、LayUi、ElementUi、Node.js、微信小程序,微信公众号,支付宝这些第三方技术,另外呢我还接触接触到了缓存技术Redis,全文索引技术Elasticseach,还接触了一些环境,也可以去搭建一些环境,比如说Elasticsearch+Logstash+kibana+Kafka实现分布式系统日志收集系统的搭建和使用,此外还可以搭建一个docker环境,实际上我们的项目考虑到成本和性能的原因,所以我们将我们的整个系统搭建在docker之上,实际上当时运维人员稀缺,之前一直在做的离职了,所以我当时也参与了服务部署事项,所以我可以通过dockerfile脚本文件完成整个项目的部署。

另外,我还参与了很多功能上的设计和环境上的实现,举个例子说吧,我们设计了一个原生的权限框架,不同的用户有不同的角色,不同的角色有不同的权限,系统之中有一个类似于审批流程的概念。其实谈设计数据库可以采用的是分库分表的方式,我们采用的是Mycat,这是一个基于Mysql的数据库中间件来进行分库分表,分片的规则是Partition by mode,用分库分表的原因主要是我们的订单业务数据量实在太大,所以呢根据这一业务需求,我们去做了这一个扩容。当时在使用了Mycat之后确实数据库压力有所减轻。

其实在数据库中间件之前呢,我们还有一个技术叫做redis+token令牌机制实现登录,它能够解决传统session登录的问题。像集群服务器当中这个Session共享的问题,众所周知这个session的效率不高,还耗费资源。谈到这个令牌机制,谈到Redis,不得不谈消息队列,实际上就是消息中间件,之前用过很多消息中间件,像构建分布式系统日志收集系统时用的Kafka,多线程高并发多用户抢购的问题时用到了ActiveMq,还有用作事务的RabbitMq,我印象比较深的是当时的一个类似于双十一抢购的抢购服务当中使用ActiveMq,这个主要是利用redis分布式锁setnx原理,引入分布式锁的原因是为了解决抢购过程中的安全问题,主要是抢超和重复抢的问题。

所谓的分布式锁其实就是上锁和去锁,当我们每次调用抢购方法的时候每次要去上锁,抢购完成之后要去锁,后面的用户才能重新获得锁,再去抢购商品,同样的抢购的时候也需要上锁。上锁的时候需要给锁设置一个有效时间,如果锁一直存在达到一定时间会直接让锁失效,这样让系统不会因为一个用户一直卡住。在我们引入分布式锁之后,发现分布式锁有一个致命问题,当时我们使用的是Apache提供的高并发压力测试工具Jmeter,这个工具可以模拟多线程情况下多个用户抢购的情况,测试出来分布式锁的效率比较低。于是我们引入ActiveMq来解决效率低下的问题,实现流量削峰。当我们用户发送一个抢购请求的时候,用户会直接得到一个排队成功的返回信息,实际上处理这个抢购请求的还是我们的consumer,然后处理完成之后将是否抢购成功发给ActiveMq,然后配置一个监听器,后端做一个轮询接口,前端利用course框架实时调用这个轮询接口,这样前端就可以不用等待,是一个异步请求,并且接近实时的获取是否抢购成功。这是一个完整的抢购业务和解决方案,能完成这个部分,这是我比较自豪的。当然了这些部分也是和项目组的人一起做的。

另外,在项目中也有其他的一些技术,比如说支付宝字符接口,百度地图Api,短信验证接口,报表等等。报表就是将项目中的信息以excel的形式导出来,共客户方财务或者我们的运维人员使用。当然报表模块使用的也就死一个工具类Jcreporter,直接调用即可。

最后呢,我想说的是我其实也不是什么大咖,项目都是以团队的形式做的,大家分工合作。我也有许多技术需要去学习,希望贵公司可以给我一个机会,为公司创造价值,提升自己。

原文地址:https://www.cnblogs.com/lingboweifu/p/11824067.html

时间: 2024-08-30 18:14:45

11.8 Springcloud项目简介的相关文章

微服务SpringCloud项目架构搭建入门

Spring的微服务框架SpringCloud受到众多公司欢迎,给大家带来一篇框架搭建入门.本次采用的版本是Spring Cloud版本为Finchley.RELEASE. 一.SpringCloud项目简介 spring cloud: 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境简单,可以在开发人员的电脑上跑. Spring Boot: 旨在简化创建产品级的 Spring 应用和服务,简化了配

【转】GitHub 排名前 100 的安卓、iOS项目简介

GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者快速了解当前一些流行的 Android 开源库. 项目名称 项目简介 1. react-native 这 个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 Re

64.GitHub 排名前100的android项目简介

GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者快速了解当前一些流行的 Android 开源库. 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 Rea

2016年GitHub 排名前 100 的安卓、iOS项目简介(收藏)

排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者快速了解当前一些流行的 Android 开源库. 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, 该框架结合了 Web 应用和 Native 应用的

GitHub 排名前 100 的安卓、iOS项目简介

GitHub Android Libraries Top 100 简介 转自:http://www.devstore.cn/essay/essayInfo/6485.html 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者快速了解当前一些流行的 Android 开源库. 项目名称 项目简介 1. react-native 这个是 Faceboo

SpringCloud项目之Feign搭建

从零搭建一个SpringCloud项目之Feign搭建 工程简述 目的:实现trade服务通过feign调用user服务的功能.因为trade服务会用到user里的一些类和接口,所以抽出了其他服务需要的东西到user-api工程.避免trade直接依赖user导致依赖多余的东西. 一.创建User接口工程user-api 新建一个module,取名为study-user-api 引入pom文件 <dependencies> <dependency> <groupId>o

Github上优秀的Objective-C项目简介

Github上优秀的Objective-C项目简介 主要对当前Github排名靠前的项目做一个简单的简介,方便自己快速了解 Objective-C的一些优秀的开源框架. 项目名称 项目信息 AFNetworking 作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大学, 开源了许多牛逼的项目, 这个便是其中之一, AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单,

机器学习的11个开源项目

转自InfoQ,作者张天雷 机器学习是目前数据分析领域的一个热点内容,在平时的学习和生活中经常会用到各种各样的机器学习算法.实际上,基于Python.Java等的很多机器学习算法基本都被前人实现过很多次了.这些算法在网上可以找到很多,然而往往存在很多“脏”或者“乱”的开源代码. 在这样的背景下, InfoWorld近日公布了机器学习领域11个最受欢迎的开源项目,这11个开源项目大多与垃圾邮件过滤.人脸识别.推荐引擎相关.它们大多数基于现今最流行的语言以及平台,推广以及扩展了机器学习领域的很多重要

1.云笔记管理系统--项目简介

#项目简介(云笔记管理系统) ##功能 笔记本管理,笔记管理,回收站管理,分享和收藏管理,活动管理,用户管理等##采用的技术 HTML+Ajax Spring(IOC/AOP/MVC)SpringMVC+Spring(IOC/AOP)+MyBatis MyBatis(访问MySQL数据库) 所有界面采用HTML静态页面所有请求采用Ajax方式交互所有请求返回的JSON结果,统一返回下面结果{"status":状态,"msg":消息,"data":