物联网架构成长之路(16)-SpringCloud从入门到吹水
1.前言
Spring Cloud 现在比较流行,版本更新也是蛮快的,网上资料也是很多。很多参考网上资料就可以学到了。这里给个 http://blog.csdn.net/forezp/article/details/70148833
2.放弃
本来还想写一篇Spring Cloud 入门环境搭建的博客, 后来想了想,还是算了,网上资料一大堆.这里就不写了.
3.吹水
下面就简单聊聊天,吹吹水算了
2018.01.18 笔记
公司网速不行,在进行Maven项目以来更新,偷偷写一些经历。
现在开始学spring cloud。回想自己学习JavaWeb的经历吧,大学时代2013-2014年学了SSH框架(Struts+Spring+Hibernate),工作后2015-2016年,用了(SpringMVC+Spring+JDBC)开发了一个项目,2017年,用来(SpringMVC+Spring+Mybatis)框架开发一个项目。四年,眼看这JavaEE技术的变更,真是太快了,开发也变得越来越简单。
想起刚开始用SSH框架时,班里好多人跟着老师,或者跟着网上的教程来配置环境都是不成功的,而且报错也是奇奇怪怪的。好多人最后都是拿着一份可以运行的最简单版本源码,复制过去,改一下包名。哈哈哈。现在想想真是搞笑啊。
下面只做一些回忆,里面有些知识可能会记错。
当年用SSH框架时,每配置一个bean都要在一个xml里面配置一个<bean>还要指定包名,一些参数等。那时候还没有bean注解这种方式。然后工作后,要负责开发一个项目了,本来想沿用以前学的SSH框架,后来上网找了一些文章,做了简单的对比。发现用SpringMVC会比Struts方便,就决定采用SpringMVC了。至于第一个项目,用原始最简单的JDBC的原因,是那时候觉得Hibernate太麻烦,然后去配置mybatis,但是一直配置不成功。花了几天都不行,然后就觉得算了,直接用JDBC,反正项目不大,内部项目,自己玩玩而已。
加上但是技术觉悟不高,JDBC连接,还是最原始的使用原生操作,每个请求一个Connect,创建Statement,然后处理完就关闭。连个数据库连接池都没有。性能特别差。但是这个内部的小项目,也就2-3个人在使用而已。完全没有问题。虽然后面出现了一点点性能问题。但是多等几秒就好了。也就不怎么管了。
线上出现过由于Connect没有即时关闭,导致tcp timewait问题,也简单的规避掉了,人生第一个用于实际生产线上的JavaWeb项目。就这样成功的运行着1年多了。
前半年对该系统进行了重构,技术框架也使用上了SSM框架了。第一次使用,用起来也还是比较方便的,印象最深刻的是bean的注入。但是前期项目的一堆XML配置还是少不了,不过就是项目初始化配置一次就可以,同时没有用Maven管理jar包,自己上网找jar包,然后放到lib目录下。一切都是那么的原始。
项目也没有进行什么单元测试。一套我看起来还算稍微复杂的系统,我自己写代码,自己简单的跑一下流程,没有经过任何专业的测试,然后就直接上线,直接使用。想想真是心大啊。如果出现问题,还真是麻烦。
小问题可以不断,大问题绝对没有。这个是我对我自己的要求。由于自己性格处事比较谨慎,加上有ACM竞赛背景。我自认为在同领域,同级别的同事间我代码实现能力是最快,出问题最少的人。
2018年,开始着手于新的项目,趁着微服务比较火,加上也挺适合公司用的,就准备在公司进行推广。这个推广应该难度不大,反正就我一个人,暂时也没有其他人要合作,同时没有历史遗留的项目问题,可以一步到位直接上SpringCloud。
2018.02.08 笔记
系统采用微服务架构, 目前搭建XX云平台基础服务,目前计划的基础服务有
1. XX开发者中心 (是对开发商进行统一管理,包含开发商认证,帐号分配,资源申请,固件上传等)
2. 设备统一认证中心(是公司对每一台设备进行管理,包含profile烧写及记录,设备日志等功能)
3. 用户统一认证中心(是对用户进行管理,包含用户手机注册,管理,微信/QQ/微博等互联,用户社交互动,对设备进行控制等功能)
4. 第三方资源服务 (外部服务对接,微信服务器,客户资源服务器,并对资源进行调度,流量控制管理)
5. 消息推送服务 (统一推送平台,推送到android/iOS手机平台,推送到微信公众号,小程序,推送到Web,手机推送, 小机设备推送等)
6. MQTT通信服务 (所有物联网产品,物物通信采用MQTT集群通信服务)
每个服务间的职责都是清晰分开管理.减少业务耦合度. 现在处于架构搭建初期,很多基础设施和业务都不清晰,只能一步一步慢慢完善,争取整个架构搭建起来,然后进行架构重新调整.
服务与服务间是免认证, 后面增加 全局认证服务, 统一对各个服务进行权限认证.
服务与服务间的数据共享, 通过缓存/关系型数据库/消息队列/分布式文件系统/阿里云存储
建立在各个基础服务之上的有 全局配置中心,全局监控平台,全局调度平台,OAuth2.0权限认证,Eureka服务发现,服务熔断机制等服务完善云平台架构
依赖于各个基础服务的是解决方案,具体项目.
项目初期,尽量防止过渡设计,大而全.初期尽量在满足业务的情况下,慢慢迭代优化,任何系统都不可能一步到位.
快速建立原型是必须的,但是前期的服务分层和架构必须严格遵守,职责分明.
物联网架构成长之路(16)-SpringCloud从入门到吹水的更多相关文章
- 物联网架构成长之路(17)-SpringCloud目前遇到的注意事项
1. STS插件最好是要安装的. 2. 对应的Decompiler插件也是要安装的. 3. 如果遇到maven工程因为找不到包问题的, 在确认pom.xml 文件没有问题的情况下, 右键项目-Mave ...
- 物联网架构成长之路(43)-k8s从入门到放弃
0. 前言 这段时间要入门一下CI/CD了,以前简单的了解过Jenkins,现在要把以下的这个图的架构搭建起来.国外可能一两个命令就安装完成的事情,我折腾了2天多,真的差点放弃了. 1. 安装Virt ...
- 物联网架构成长之路(36)-Vue前端入门
1. 前言 物联网平台,需要有一个类似大屏看板的功能. 找了一圈,发现阿里已经有对应的DataV产品,但是那个价格有点贵啊.所以找了这个[http://datav.jiaminghi.com/demo ...
- 物联网架构成长之路(42)-直播流媒体入门(RTMP篇)
1. 安装RTMP流媒体服务器 以前其实我是利用Nginx-RTMP-module搭建过RTMP流媒体服务器,并实现了鉴权功能.参考https://www.cnblogs.com/wunaozai/p ...
- 物联网架构成长之路(41)-直播流媒体入门(RTSP篇)
1. 搭建RTSP服务 首先现在音视频利器 ffmpeg,这个到http://www.ffmpeg.org/download.html 这里下载压缩包即可. 文档参考:http://trac.ffmp ...
- 物联网架构成长之路(40)-Bladex开发框架入门
0. 前言 前一小节,讲了如何入门,这里就简单讲一下如何自定义查询和权限控制配置. 1. 配置多租户 如果要启用该表的多租户功能,需要在application.yml 这里配置. 2. 配置模糊匹配 ...
- 物联网架构成长之路(25)-Docker构建项目用到的镜像1
0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...
- 物联网架构成长之路(31)-EMQ基于HTTP权限验证
看过之前的文章就知道,我之前是通过搞插件,或者通过里面的MongoDB来进行EMQ的鉴权登录和权限验证.但是前段时间发现,还是通过HTTP WebHook 方式来调用鉴权接口比较适合实际使用.还是实现 ...
- 物联网架构成长之路(35)-利用Netty解析物联网自定义协议
一.前言 前面博客大部分介绍了基于EMQ中间件,通信协议使用的是MQTT,而传输的数据为纯文本数据,采用JSON格式.这种方式,大部分一看就知道是熟悉Web开发.软件开发的人喜欢用的方式.由于我也是做 ...
随机推荐
- 6-17 看图写树 uva10562
非常好的dfs题 有很多细节 关于‘ ’ ‘0’ ’\n‘ 的处理 他们都属于isspace函数 其中 while(buf[x+2][i]=='-'&&buf[x+3][i] ...
- 2.2博客系统 |FileField字段 |Media配置
基于forms组件和Ajax实现注册功能 1 基于forms组件设计注册页面 --点击头像 === 点击input --头像预览: 修改用户选中的文件对象:获取文件对象的路径:修改img的src属性, ...
- UVA 11624-Fire!【双BFS】
<题目链接> 题目大意: 你的任务是帮助J走出一个大火蔓延的迷宫.J每分钟可以超上下左右四个方向移动,而所有着火的格子每一分钟都会往四个方向蔓延一格.迷宫中有一些障碍,J和火都无法进入.当 ...
- MySQL QA
Q:MySQL常用的存储引擎有哪些? A:MyISAM及InnoDB,5.5版本后默认数据库引擎由MyISAM变为InnoDB Q:MyISAM及InnoDB有什么区别?至少5点 A: ①.InnoD ...
- js基础梳理-究竟什么是执行上下文栈(执行栈),执行上下文(可执行代码)?
日常在群里讨论一些概念性的问题,比如变量提升,作用域和闭包相关问题的时候,经常会听一些大佬们给别人解释的时候说执行上下文,调用上下文巴拉巴拉,总有点似懂非懂,不明觉厉的感觉.今天,就对这两个概念梳理一 ...
- 用js来实现那些数据结构02(数组篇02-数组方法)
上一篇文章简单的介绍了一下js的类型,以及数组的增删方法.这一篇文章,我们一起来看看数组还有哪些用法,以及在实际工作中我们可以用这些方法来做些什么.由于其中有部分内容并不常用,所以我尽量缩小篇幅.在这 ...
- 跳过从Win7/8升级,直接格式化全新安装 Windows 10 并自动永久激活系统的方法教程
跳过升级,直接激活全新 Win10 的方法步骤教程: 下载 Windows 10 系统的 ISO 镜像 在你当前的 Win7 / Win 8 / 8.1 系统中,使用 DaemonTools 或右键选 ...
- react和vue的异同点
一.相似处1.使用Virtual DOM,都有jsx,性能好.2.提供了响应式(reactive)和可组合的视图组件(composable view component).3.将注意力集中保持在核心库 ...
- Gradle 同步 已经开始 Gradle sync started
Gradle 同步 已经开始 Gradle sync started 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 31313 ...
- 在deepin中安装docker
用往常方法安装 一般在Linux中安装docker的时候都会使用这条命令 wget -qO- https://get.docker.com/ | sh 而在deepin这么做缺不行 打开网址即可发现支 ...