物联网架构成长之路(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开发.软件开发的人喜欢用的方式.由于我也是做 ...
随机推荐
- 【Java】 剑指offer(10) 旋转数组的最小数字
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. ...
- DP-hdu1176
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176 这道题与动态规划中的数塔问题十分类似,因此如果对于数塔问题还不太明白的,可以先参考一下博客: 数 ...
- @ConfigurationProperties和@Value 注入
我这里使用的Spring Boot 2.0.1 版本 配置文件是 yml 格式文件 @ConfigurationProperties 在yml配置文件中: 在实体类中: 重点是实体类上的两个注解: @ ...
- Spring框架学习07——基于传统代理类的AOP实现
在Spring中默认使用JDK动态代理实现AOP编程,使用org.springframework.aop.framework.ProxyFactoryBean创建代理是Spring AOP 实现的最基 ...
- 【Ray Tracing The Next Week 超详解】 光线追踪2-9
我们来整理一下项目的代码 目录 ----include --hit --texture --material ----RTdef.hpp ----ray.hpp ----camera.hpp ---- ...
- Python学习——深浅拷贝
1.对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. >>> import copy # ######### 数字.字符串 ######### ...
- gbdt xgboost 贼难理解!
https://www.zybuluo.com/yxd/note/611571 https://zhuanlan.zhihu.com/p/29765582 gbdt 在看统计学习方法的时候 理解很吃力 ...
- [Astar2008]Black-Whilte-Tree
Description: 你拥有一棵有 N 个结点白色的树--所有节点都是白色的. 接下来,你需要处理 C 条指令: 1.修改指令:改变一个给定结点的颜色(白变黑,黑变白); 2.查询指令:询问从结点 ...
- Wed 基础
HTTP协议 www服务应用的默认端口为80 https加密服务的默认端口为443 常见状态码及其对应的作用 http://oldboy.blog.51cto.com/2561410/716294 2 ...
- v$instance如何生成
参考:http://www.itpub.net/thread-1284858-1-1.html 1.ORACLE 先创建的x$ 表即RDBMS的内部表 2.然后在X$表的基础上创建了GV$ 视图. ...