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从入门到吹水的更多相关文章

  1. 物联网架构成长之路(17)-SpringCloud目前遇到的注意事项

    1. STS插件最好是要安装的. 2. 对应的Decompiler插件也是要安装的. 3. 如果遇到maven工程因为找不到包问题的, 在确认pom.xml 文件没有问题的情况下, 右键项目-Mave ...

  2. 物联网架构成长之路(43)-k8s从入门到放弃

    0. 前言 这段时间要入门一下CI/CD了,以前简单的了解过Jenkins,现在要把以下的这个图的架构搭建起来.国外可能一两个命令就安装完成的事情,我折腾了2天多,真的差点放弃了. 1. 安装Virt ...

  3. 物联网架构成长之路(36)-Vue前端入门

    1. 前言 物联网平台,需要有一个类似大屏看板的功能. 找了一圈,发现阿里已经有对应的DataV产品,但是那个价格有点贵啊.所以找了这个[http://datav.jiaminghi.com/demo ...

  4. 物联网架构成长之路(42)-直播流媒体入门(RTMP篇)

    1. 安装RTMP流媒体服务器 以前其实我是利用Nginx-RTMP-module搭建过RTMP流媒体服务器,并实现了鉴权功能.参考https://www.cnblogs.com/wunaozai/p ...

  5. 物联网架构成长之路(41)-直播流媒体入门(RTSP篇)

    1. 搭建RTSP服务 首先现在音视频利器 ffmpeg,这个到http://www.ffmpeg.org/download.html 这里下载压缩包即可. 文档参考:http://trac.ffmp ...

  6. 物联网架构成长之路(40)-Bladex开发框架入门

    0. 前言 前一小节,讲了如何入门,这里就简单讲一下如何自定义查询和权限控制配置. 1. 配置多租户 如果要启用该表的多租户功能,需要在application.yml 这里配置. 2. 配置模糊匹配 ...

  7. 物联网架构成长之路(25)-Docker构建项目用到的镜像1

    0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...

  8. 物联网架构成长之路(31)-EMQ基于HTTP权限验证

    看过之前的文章就知道,我之前是通过搞插件,或者通过里面的MongoDB来进行EMQ的鉴权登录和权限验证.但是前段时间发现,还是通过HTTP WebHook 方式来调用鉴权接口比较适合实际使用.还是实现 ...

  9. 物联网架构成长之路(35)-利用Netty解析物联网自定义协议

    一.前言 前面博客大部分介绍了基于EMQ中间件,通信协议使用的是MQTT,而传输的数据为纯文本数据,采用JSON格式.这种方式,大部分一看就知道是熟悉Web开发.软件开发的人喜欢用的方式.由于我也是做 ...

随机推荐

  1. Redis数据结构之set

    一:介绍 1.set结构 没有顺序 并且,不允许出现重复的元素. 二:Redis客户端的常用命令 1.添加 2.查看数据 3.删除数据 4.是否存在某个值 1代表有,0代表无. 5.查看差值 有key ...

  2. bochs配置文件解释说明

    ############################################### # Configuration file for Bochs ##################### ...

  3. vs2017下发现解决python运行出现‘No module named "XXX""的解决办法

    对于使用vs2017开发python程序无疑发现,在解决方案资源管理器中设置把两个xxx.py,yyy.py文件都设置为启动文件,然后分别在vs2017这个IDE下运行这个两个文件在项目工程中运行,发 ...

  4. Python常用模块--string

    该模块提供3个常用的功能: * 提供常用的字符串常量(感觉用途不大) * 提供字符串替换功能,主要用途是上下文的国际化(通过str可以实现,不介绍,感兴趣的自己看官网) * 提供字符串的格式化功能(感 ...

  5. 算法进阶面试题04——平衡二叉搜索树、AVL/红黑/SB树、删除和调整平衡的方法、输出大楼轮廓、累加和等于num的最长数组、滴滴Xor

    接着第三课的内容和讲了第四课的部分内容 1.介绍二叉搜索树 在二叉树上,何为一个节点的后继节点? 何为搜索二叉树? 如何实现搜索二叉树的查找?插入?删除? 二叉树的概念上衍生出的. 任何一个节点,左比 ...

  6. loj#2129. 「NOI2015」程序自动分析

    题目链接 loj#2129. 「NOI2015」程序自动分析 题解 额... 考你会不会离散化优化常数 代码 #include<queue> #include<cstdio> ...

  7. 4609: [Wf2016]Branch Assignment 最短路 DP (阅读理解题)

    Bzoj的翻译出锅了所以来官方题面:这个题应该是单向边而BZOJ说的是双向边,什么你WA了?谁叫你懒得看英文...... 显然我们能正向反向两遍SPFA处理出每个点到总部的距离和总部到每个点的距离.如 ...

  8. BZOJ.2437.[NOI2011]兔兔与蛋蛋游戏(二分图博弈 匈牙利)

    题目链接 首先空格的移动等价于棋子在黑白格交替移动(设起点移向白格就是黑色),且不会走到到起点距离为奇数的黑格.到起点距离为偶数的白格(删掉就行了),且不会重复走一个格子. (然后策略就同上题了,只不 ...

  9. 潭州课堂25班:Ph201805201 爬虫基础 第十一课 点触验证码 (课堂笔记)

    打开 网易盾 http://dun.163.com/trial/picture-click  ——在线体验——图中点选 打码平台 ——超级鹰    http://www.chaojiying.com/ ...

  10. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第二课 (课堂笔记)

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...