物联网架构成长之路(16)-SpringCloud从入门到吹水

时间:2022-08-22 14:29:45

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. 物联网架构成长之路&lpar;17&rpar;-SpringCloud目前遇到的注意事项

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

  2. 物联网架构成长之路&lpar;43&rpar;-k8s从入门到放弃

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

  3. 物联网架构成长之路&lpar;36&rpar;-Vue前端入门

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

  4. 物联网架构成长之路&lpar;42&rpar;-直播流媒体入门&lpar;RTMP篇&rpar;

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

  5. 物联网架构成长之路&lpar;41&rpar;-直播流媒体入门&lpar;RTSP篇&rpar;

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

  6. 物联网架构成长之路&lpar;40&rpar;-Bladex开发框架入门

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

  7. 物联网架构成长之路&lpar;25&rpar;-Docker构建项目用到的镜像1

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

  8. 物联网架构成长之路&lpar;31&rpar;-EMQ基于HTTP权限验证

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

  9. 物联网架构成长之路&lpar;35&rpar;-利用Netty解析物联网自定义协议

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

随机推荐

  1. flex的用途

    一.可以利用flex来布局一个div在另一个div里面水平垂直居中 如:html代码: <div class="container"> <div class=&q ...

  2. Java注释Override、Deprecated、SuppressWarnings详解

    一.什么是注释 说起注释,得先提一提什么是元数据(metadata).所谓元数据就是数据的数据.也就是说,元数据是描述数据的.就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义.而J2SE5 ...

  3. acdreamoj1108(The kth number)

    题目链接:http://acdream.info/problem? pid=1108 题意:n个数的数列,m次查询某个区间出现次数第k多的数出现的次数.n,m<=100000 解法:这个由于是离 ...

  4. 大型网站应用中MySQL的架构演变史

    没有什么东西是一成不变的,包含我们的理想和生活!MySQL作为一个免费的开源的关系型数据库,深受大家喜爱,从最初的无人问津到当下的去IOE,都体现出了MySQL举足轻重的作用.今天我们就从淘宝的发展来 ...

  5. 一个C&num;多线程的工作队列

    多线程添加元素到队列中,队列根据绑定 的事件进行自动处理,可以设置WorkSequential属性来实现对队列处理的单线程(严格顺序处理)或者多线程处理(循序出队,但是 多线程处理,不保证对队列元素的 ...

  6. vc&plus;&plus;MFC开发上位机程序

    用vc++MFC开发过不少跟单片机通讯的上位机程序了.搞懂了MFC架构,开发还是很快的,与底层单片机程序通讯,可以用串口.usb.网络.短信形式.串口现在用的越来越少了,一般电脑跟单片机在一块,使用串 ...

  7. JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建

    本篇博客就完整的来聊一下如何在Eclipse中创建的Maven Project.本篇博客是JavaEE开发的开篇,也是基础.本篇博客的内容干货还是比较多的,而且比较实用,并且都是采用目前最新版本的工具 ...

  8. Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解

    前情回顾: <Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现> <Spring Cloud Alibaba基础教程:支持的几种服务消费方式(Res ...

  9. &lbrack;转&rsqb;认识JWT

    本文转自:https://www.cnblogs.com/cjsblog/p/9277677.html 1. JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准 ...

  10. 基于NIO的同步非阻塞编程完整案例&comma;客户端发送请求&comma;服务端获取数据并返回给客户端数据&comma;客户端获取返回数据

    这块还是挺复杂的,挺难理解,但是多练几遍,多看看研究研究其实也就那样,就是一个Selector轮询的过程,这里想要双向通信,客户端和服务端都需要一个Selector,并一直轮询, 直接贴代码: Ser ...