PaaS软件私有化自动部署技术归档
1. 如何将前后端项目打包成rpm(maven-rpm插件配置)
原理 从服务器A登录到服务器B,借用网上的一张图片
具体的操作:
A上面生成私钥公钥对,拷贝公钥内容追加写入到B的授权文件/root/.ssh/authorized_keys。
上面的是单机操作,如果应对到几台/几十台的集群配置,手动去配置,那么需要配置n x 3次,这酸爽,手动表情[哭笑不得]
以下通过一个shell脚本,自动生成各台机器的id_rsa密钥对,并将所有机器的公钥写入到文件中,再自动将该文件内容分发到所有服务器并且将文件内容追加写入到authorized_keys文件
基于spring boot的一个小项目,前后端分离,采用REST风格的接口设计,在做权限设计时觉得以前的权限控制实现比较繁琐,一个Action就对应一条Permission。所以想着接口可以走REST风格,权限为什么不可以呢?比如称作READ风格的权限控制(Representational Authorization Design)……
REST早已不是新鲜事物,基于REST的权限控制网上也是有现成的,基于RESTful API 怎么设计用户权限控制?写得很棒,所以基于这篇文章的设计思路做了个实现(java)。本文的前半段,主要是引用文章阐述设计思路,后半部分主要为程序code实现。
其中后端自定义一个过滤器做权限过滤,用到了spring util包下的AntPathMatcher做权限规则匹配;前端也就一个directive就搞定了。技术上并没有引用什么技术框架,关键还是抽象思维且将设计思路转化为程序上code。
传统的权限配置 vs 权限被抽象成资源和状态
1 | /getUsersGroups?id=1 |
vs
1 | GET /users/** 表示 对 users 资源 及events 附属的资源 有获取/浏览的权限 |
场景:

方案:在一个确切的地方存储 数据源的配置信息(我是将这些信息存储在一个 配置数据库表中,而这个配置数据库是确切的,作为主数据源配置)。启动spring时,会初始化这个配置数据源,然后将其他动态数据源信息取出来初始化好datasource 注册到spring 容器。
原理:主要是实现AbstractRoutingDataSource的抽象类,然后将该类注册到spring容器,其中关键点是:
Object defaultTargetDataSource 和其他数据源Map<Object, Object> targetDataSources。targetDataSources就是我们动态配置的数据源,key-value 接口,后面根据key 查找 datasource 不提倡什么授权、加密、混淆,不过,有开源项目,也会有商业项目。也并不是所有产品都是Saas服务,如果是有对外有项目输出,且产品采用授权使用形式的企业,那么对自己的软件产品加上授权验证必不可少
如何判断一个点是否在多边形内部?
1.2.都非常好理解,但是1.2. 并不适合所有的多边形,比如说凹多边形。关于射线算法,好像没有公式证明,不过网上很多论文可以google到.

图一:点延伸出的射线穿过不规则多边形,往左射线交5点,往右射线交3点,所以判断点在多边形内
多边形要规避一些极端情况,比如自我闭合等情况,具体可以参考Determining Whether A Point Is Inside A Complex Polygon
关于GIS/LBS上的应用,问,该算法是否可以判断经纬度坐标是否在一个标记的地图围栏中(任意多边形),答案是可以,但是需要注意两个问题:
道格拉斯-普克抽稀算法,是用来对大量冗余的图形数据点进行压缩以提取必要的数据点。
文章包括三部分
该算法实现抽稀的过程是:
1)对曲线的首末点虚连一条直线,求曲线上所有点与直线的距离,并找出最大距离值dmax,用dmax与事先给定的阈值D相比:
2)若dmax<D,则将这条曲线上的中间点全部舍去;则该直线段作为曲线的近似,该段曲线处理完毕。
若dmax≥D,保留dmax对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使用该方法,即重复1),2)步,直到所有dmax均<D,即完成对曲线的抽稀。
显然,本算法的抽稀精度也与阈值相关,阈值越大,简化程度越大,点减少的越多,反之,化简程度越低,点保留的越多,形状也越趋于原曲线。
本篇包括以下内容:
keyword:cors,跨域,ajax,403,filter,RESTful,origin,http,nginx,jsonp
客户端发送消息
Update your browser to view this website correctly. Update my browser now