首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

2020年12月-前端基础-表格 table

表格 table(会使用) 为了让我们页面显示的更加整齐,我们需要学习三个表(表格、表单、列表) 理解: 能说出表格用来做什么的 表格的基本结构组成 表格作用: 存在即是合理的。 表格的现在还是较为常用的一种标签,但不是用来布局,常见显示、展示表格式数据。 因为它可以让数据显示的非常的规整,可读性非常好。 特别是后台展示数据的时候表格运用是否熟练就显得很重要, 一个清爽简约的表格能够把繁杂的数据表现得很有条理 ,虽然 div 布局也可以做到,但是总没有表格来得方便。 ps: 这些地方用表格,你会觉得很贴切。 1. 创建表格 在HTML网页中,要想创建表格,就需要使用表格相关的标签。 创建表格的基本语法: <table> <tr> <td>单元格内的文字</td> ... </tr> ... </table> 要深刻体会表格、行、单元格他们的构成。 在上面的语法中包含基本的三对HTML标签,分别为 table、tr、td,他们是创建表格的基本标签,缺一不可,下面对他们进行具体地解释 1.`table`用于定义一个表格标签。 2.`tr`标签 用于定义表格中的行,必须嵌套在`table`标签中。 3.`td` 用于定义表格中的单元格,必须嵌套在`<tr></tr>`标签中。 4.字母`td`指表格数据(table data),即数据单元格的内容,现在我们明白,表格最合适的地方就是用来存储数据的。 总结: 表格的主要目的是用来显示特殊数据的 一个完整的表格有表格标签(table),行标签(tr),单元格标签(td)组成,没有列的标签 <tr></tr>中只能嵌套<td></td> 类的单元格 <td></td>标签,他就像一个容器,可以容纳所有的元素 2. 表格属性 表格有部分属性我们不常用,这里重点记住 cellspacing 、 cellpadding。 我们经常有个说法,是三参为0, 平时开发的我们这三个参数 border cellpadding cellspacing 为 0 案例1: <table width="500" height="300" border="1" cellpadding="20" cellspacing="0" align="center"> <tr> <th>姓名</th> <th>性别</th> <th>年龄</th> </tr> <tr> <td>刘德华</td> <td>男</td> <td>55</td> </tr> <tr> <td>郭富城</td> <td>男</td> <td>52</td> </tr> <tr> <td>张学友</td> <td>男</td> <td>58</td> </tr> <tr> <td>黎明</td> <td>男</td> <td>18</td> </tr> <tr> <td>刘晓庆</td> <td>女</td> <td>63</td> </tr> </table> 3. 表头单元格标签th 作用: 一般表头单元格位于表格的第一行或第一列,并且文本加粗居中 语法: 只需用表头标签<th></th>替代相应的单元格标签<td></td>即可。 案例2: 效果图 代码: <table width="500" border="1" align="center" cellspacing="0" cellpadding="0"> <tr> <th>姓名</th> <th>性别</th> <th>电话</th> </tr> <tr> <td>小王</td> <td>女</td> <td>110</td> </tr> <tr> <td>小明</td> <td>男</td> <td>120</td> </tr> </table> th 也是一个单元格 只不过和普通的 td单元格不一样,它会让自己里面的文字居中且加粗 4. 表格标题caption 定义和用法 <table> <caption>我是表格标题</caption> </table> **注意: ** 1.`caption` 元素定义表格标题,通常这个标题会被居中且显示于表格之上。 2.`caption` 标签必须紧随 table 标签之后。 3.这个标签只存在表格里面才有意义。 5. 合并单元格(难点) 合并单元格是我们比较常用的一个操作,但是不会合并的很复杂。 5.1 合并单元格2种方式 跨行合并:rowspan="合并单元格的个数" 跨列合并:colspan="合并单元格的个数" 5.2 合并单元格顺序 合并的顺序我们按照 先上 后下 先左 后右 的顺序 5.3 合并单元格三步曲 1.先确定是跨行还是跨列合并 2.根据 先上 后下 先左 后右的原则找到目标单元格 然后写上 合并方式 还有 要合并的单元格数量 比如 : `<td colspan="3"> </td>` 3.删除多余的单元格 单元格 6. 总结表格 标签名 定义 说明 <table></table> 表格标签 就是一个四方的盒子 <tr></tr> 表格行标签 行标签要再table标签内部才有意义 <td></td> 单元格标签 单元格标签是个容器级元素,可以放任何东西 <th></th> 表头单元格标签 它还是一个单元格,但是里面的文字会居中且加粗 <caption></caption> 表格标题标签 表格的标题,跟着表格一起走,和表格居中对齐 clospan 和 rowspan 合并属性 用来合并单元格的 1.表格提供了HTML 中定义表格式数据的方法。 2.表格中由行中的单元格组成。 3.表格中没有列元素,列的个数取决于行的单元格个数。 4.表格不要纠结于外观,那是CSS 的作用。 5.表格的学习要求: 能手写表格结构,并且能简单合并单元格。 7. 拓展阅读@ 表格划分结构(了解) 对于比较复杂的表格,表格的结构也就相对的复杂了,所以又将表格分割成三个部分:题头、正文和脚注。而这三部分分别 用:thead,tbody,tfoot来标注, 这样更好的分清表格结构 注意: 1.`<thead></thead>:`用于定义表格的头部。用来放标题之类的东西。`<thead>` 内部必须拥有 `<tr>` 标签! 2.`<tbody></tbody>:`用于定义表格的主体。放数据本体 。 3.`<tfoot></tfoot>: `放表格的脚注之类。 4.以上标签都是放到table标签中。

优秀的个人博客,低调大师

图像处理基础:颜色空间及其OpenCV实现

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶” 作者:Soumyadip Sarkar 编译:ronghuaiyang 导读 对图像的颜色空间做了一个概念性的介绍,并通过代码的方式可视化了每种颜色空间的每个通道所表示的意义。 文章内容包括: 什么是颜色空间? 颜色空间有哪些类别? 如何在OpenCV中实现? 什么是颜色空间? 颜色是一种连续的现象,它意味着有无数种颜色。但是,人类的眼睛和感知能力是有限的。所以,为了识别这些颜色,我们需要一种媒介或这些颜色的表示,这种颜色的表示被称为色彩空间。在技术术语中,一个颜色模型或颜色空间是一个特定的3-D坐标系统以及该系统中的一个子空间,其中每一种颜色都由一个单点表示。 有哪些颜色空间的类型? 目前主要有五种类型的颜色模型。但是,我将只写一些常见的(RGB、HSV和HSL)。 RGB(Red Green Blue) HSL(Hue Saturation Lightness) HSV(Hue Saturation Value) YUV(Luminance, blue–luminance, red–luminance) CMYK(Cyan, Magenta, Yellow, Key) RGB颜色空间: RGB颜色空间是三维坐标系中红、绿、蓝坐标所表示的著名颜色空间之一。在更专业的术语中,RGB将颜色描述为由三个部分组成的元组。每个部分都可以取0到255之间的值,其中元组(0,0,0)表示黑色,元组(255,255,255)表示白色。元组的第0、第1和第2个部分分别表示红、绿、蓝的分量。 RGB颜色空间的Python实现: 这里我们导入了必要的库,cv2用于颜色空间转换,NumPy用于数组操作,Matplotlib用于显示图像,os用于访问图像目录,tqdm用于显示加载栏。 hsl_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2HLS)####CONVERTINGBGRCOLORSPACEINTOHSLCOLORSPACE####hsl_img_1=hsl_img.copy()hsl_img_2=hsl_img.copy()hsl_img_3=hsl_img.copy()hsl_img_1[:,:,1]=0####HUE-->ZERO####hsl_img_1[:,:,2]=0hsl_img_2[:,:,0]=0####SATURATION-->ZERO####hsl_img_2[:,:,2]=0hsl_img_3[:,:,0]=0####LIGHTNESS-->ZERO####hsl_img_3[:,:,1]=0 设置两个空列表Z和X,分别用于存储带有各自图像的标签,然后指定图像大小和路径目录。在这之后,我定义了两个函数,用于返回flower类型(assign_lable)和访问每个图像、读取和调整其大小(make_train_data)。 Z,X=[],[]IMG_SIZE=150FLOWER_SUNFLOWER_DIR='../input/flowers-recognition/flowers/flowers/sunflower'defassign_label(img,flower_type):returnflower_typedefmake_train_data(flower_type,DIR):forimgintqdm(os.listdir(DIR)):label=assign_label(img,flower_type)path=os.path.join(DIR,img)img=cv2.imread(path,cv2.IMREAD_COLOR)img=cv2.resize(img,(IMG_SIZE,IMG_SIZE))#Resizingtheimage 加载图像,然后在OpenCV以BGR格式读取图像时将BGR颜色空间转换为RGB颜色空间,但Maplotlib使用RGB格式来显示图像。这就是为什么我们需要转换颜色空间后,读取图像为RGB。 然后对固定图像进行三份拷贝,并将每份拷贝的任何双色通道设为零,分别用于访问红、绿、蓝通道。如果你让第0个颜色通道都是0那么你只会得到蓝色通道。 make_train_data('Sunflower',FLOWER_SUNFLOWER_DIR)#####LoadingSunflowerDatafix_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2RGB)###########CONVERTINGBGRCOLORSPACEINTORGBCOLORSPACE#########new_img_1=fix_img.copy()new_img_2=fix_img.copy()new_img_3=fix_img.copy()new_img_1[:,:,0]=0#makingRchannelzero####ForBLUEchannel#####new_img_1[:,:,1]=0#makingGchannelzeronew_img_2[:,:,1]=0####ForREDcolorChannel####new_img_2[:,:,2]=0new_img_3[:,:,0]=0###ForGREENChannel####new_img_3[:,:,2]=0 显示图像: f,axes=plt.subplots(1,3,figsize=(15,15))list=[new_img_1,new_img_2,new_img_3]i=0foraxinaxes:ax.imshow(list[i])i+=1 HSL颜色空间: HSL的一般含义是色调、饱和度和明度。你可以将HSL以圆柱体的形式可视化,如图2(a)所示。围绕圆柱体的是不同的颜色,比如绿色、黄色、红色等等(我们真正想要的颜色)。饱和度是指颜色的多少,而明度是指颜色有多暗或多亮。正如你所看到的,圆柱体的顶部全是白色,底部全是黑色。 图2:HSL颜色空间 HSL颜色空间的Python实现: 使用OpenCV函数**cvtColor()**将BGR颜色空间转换为HSL颜色空间,在这里我们需要传递图像,以及从哪个颜色空间到哪个颜色空间我们想要改变图像。然后再复制并使两个颜色通道为零,以便分别显示每个颜色通道。 hsl_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2HLS)####CONVERTINGBGRCOLORSPACEINTOHSLCOLORSPACE####hsl_img_1=hsl_img.copy()hsl_img_2=hsl_img.copy()hsl_img_3=hsl_img.copy()hsl_img_1[:,:,1]=0####HUE-->ZERO####hsl_img_1[:,:,2]=0hsl_img_2[:,:,0]=0####SATURATION-->ZERO####hsl_img_2[:,:,2]=0hsl_img_3[:,:,0]=0####LIGHTNESS-->ZERO####hsl_img_3[:,:,1]=0 现在显示三个不同的颜色通道→ f,axes=plt.subplots(1,3,figsize=(15,15))list=[hsl_img_1,hsl_img_2,hsl_img_3]i=0foraxinaxes:ax.imshow(list[i])i+=1 HSV颜色空间: HSV这个名字来自于颜色模型的三个坐标,即色相、饱和度和值。它也是一个圆柱形的颜色模型,圆柱体的半径表示饱和度,垂直轴表示值,角度表示色调。对于观察者,色调是占主导地位的,饱和度是混合到色调中的白光的数量,value是chrome的强度,value较低颜色变得更加类似于黑色,value越高,颜色变得更加像颜色本身。通过改变这些参数,我们可以生成不同的颜色。 图3:HSV颜色空间 HSV颜色空间的Python实现: 使用cvtColor()函数将色彩空间转换为HSV色彩空间。然后再复制并使两个通道置为零,以便分别显示每个通道。 hsv_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2HSV)hsv_img_1=hsv_img.copy()hsv_img_2=hsv_img.copy()hsv_img_3=hsv_img.copy()hsv_img_1[:,:,1]=0#HUE-->ZEROhsv_img_1[:,:,2]=0hsv_img_2[:,:,0]=0#SATURATION-->ZEROhsv_img_2[:,:,2]=0hsv_img_3[:,:,0]=0#VALUE-->ZEROhsv_img_3[:,:,1]=0 单独显示每个颜色通道: —END— 英文原文:https://medium.com/analytics-vidhya/image-processing-series-part1-colorspaces-836d2e3ca700 请长按或扫描二维码关注本公众号 喜欢的话,请给我个在看吧! 本文分享自微信公众号 - AI公园(AI_Paradise)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

边缘计算将成为未来创新的基础

与企业技术的其他热门新领域一样,边缘计算也是一个广泛的架构型概念,而非一组特定的解决方案。首先,边缘计算通常应用于低延迟的情况,计算能力必须接近于操作的所在位置,无论该活动是工业物联网机器人投掷小部件,还是传感器在生产过程中对疫苗温度的持续获取。研究公司Frost & Sullivan预测,到2022年,90%的工业企业都将使用边缘计算。 边缘计算是分布式计算的一种形式,它超越了数据中心的范畴。当你想到这一点时,企业应该如何投资于未来呢?是的,我们知道其中的一大部分投资将流向大型的公共云提供商,但企业所拥有和运营的硬件和软件也不会消失。那么,为什么不把它实际地分布到企业最需要它的地方呢? 利用现代服务器的强大功能,在制造、医疗保健或物流运营所在地增强公司业务的运营系统,将可以带来各种各样的业务价值。一般情况下,边缘计算节点会从仪器化的操作系统中收集大量数据,对其进行处理,然后只将结果发送给数据中心,这大大降低了数据传输成本。在这些结果中包含了流程改进、供应链优化、预测分析等方面的机会。 边缘计算的许多面向 边缘计算可能是一个相对较新的领域,但它已经产生了变革性的影响。在“4个基本的边缘计算用例”中,Network World的Ann Bednarz介绍了4个例子,强调了边缘计算的直接、实际的好处,他首先是从一项古老的活动-货运列车检查-开始的。通过数码相机和现场图像处理实现的自动化,不仅大大减少了检查时间和成本,而且还通过更快地发现问题,提高了安全性。Bednarz接着指出了边缘计算在酒店、零售业和采矿业的优势。 CIO的特约编辑Stacy Collett将她的目光集中在了IT和OT(操作技术)之间的鸿沟上,后者关注的是核心的、特定行业的系统--以及该如何更好地弥合这一鸿沟。她的文章“边缘计算领域之争”阐明了可以如何改善IT和OT之间的沟通,并在某些情况下形成混合IT/OT小组,消除冗余并激发创造性的新举措。 OT方面的一个常见反对意见是物联网和边缘计算将使工业系统面临前所未有的恶意攻击风险。CSO特约作家Bob Violino在“确保优势的5个最佳实践”中提到了这个问题。一个关键的建议是实现零信任的安全性,它要求持久的身份验证和微观分割,这样就可以对组织内某个部分的成功攻击进行隔离,而不会扩散到其他的关键系统。 Computerworld的特约作家Keith Shaw则检视了5G在“边缘计算和5G推动商业应用”中的作用。5G最大的卖点之一就是它的低延迟,这对连接物联网设备来说会很有用。但正如IDC的研究总监Dave McCarthy在文章中所解释的那样,当你连接到一个遥远的数据中心时,其减少的延迟就不一定能帮助到你。但另一方面,如果你是在5G网络中部署了“边缘计算,它就可以最大限度地缩短物理距离,大大提高响应时间,”他说。 如果你想知道的话,那些超大规模的云提供商也并没有对这种边缘化的东西置之不理。在“亚马逊、谷歌和微软将他们的云带到边缘”一书中,InfoWorld特约编辑Isaac Sacolick深入研究了三大巨头目前所提供的早期边缘计算产品,包括部署在不同地区的迷你云,以及它们现有的on-prem产品(如AWS Outposts或Azure Stack),这些产品是完全由提供商在进行管理的。Sacolick写道:“公共云下的边缘计算所能提供的唯一好处就是扩展底层云架构和服务的能力。” 各种各样的边缘计算产品和用例涵盖了如此广泛的范围,听起来就像是在进行着复杂的计算。正如许多人所指出的,“大云”模型让人想起了旧的大型机时代,那时客户会通过终端而不是浏览器来接入集中式的计算和存储。边缘计算也让人们认识到,不是所有的东西都可以或应该被集中的。而这种简单概念的创造性变化正在塑造下一代计算技术的过程中发挥出关键性的作用。 【责任编辑: 赵宁宁 TEL:(010)68476606】

优秀的个人博客,低调大师

微隔离——零信任网络的基础构件

零信任是什么、不是什么 零信任作为一种安全管理哲学,近年来渐渐有了一统江山之势,包括“产学研用管”在内的整个安全业界基本上在零信任这个问题上达成了共识,不信大家可以看看等级保护2.0的原文,你就会发现,那里处处体现着零信任思想的光芒。 关于零信任究竟是什么,网上的资料已经很多了,在这里我就不再照搬照抄了。不过我们也注意到,“零信任”这个词除了是一个技术词汇之外也是一个市场词汇,被各个安全公司从自己的视角各自解读,在这个过程中不可避免地会夹带一些私货,从而造成一些混乱和误解,所以我们今天来谈谈零信任不是什么,也许对于帮助大家更好地理解零信任会起到一些积极的作用。 首先,零信任是一个方法论,它定义了一种安全管理的新的视角。它不是一个产品或者说一个技术。也就是说您买不到一个叫零信任的产品,您只能买到帮您实现零信任的某种要求的产品。 其次,零信任是一个过程,或者说是一个方向。它不是一个静态的标准,或者说状态。也就是说,你不能说我们今天来做一个零信任的项目,做过之后我们就拥有了零信任,没有这种事情。你只能说通过一期项目,我们在一定的范围内,在一定的水平上,实现了零信任的某些能力。比如说,我们可以说我们能够在网络层面实现数据中心流量的全面可视和可控,但是网络层之上还有应用层,你看到了网络层面的主体和通信关系,但是你还没有理解应用层面的服务主体和应用访问关系。而在应用层之上还有更深层次的业务层面的分析与控制问题。所以说,零信任的建设应该是一个持续的,逐渐深入,逐渐优化的过程,也是一个在安全与业务之间的一个平衡的过程。 第三,零信任是个广泛适用的方法论,也就是说它可以应用于整个计算架构的各个方面,在每一个细分的环境,每一个具体维度上都可以利用零信任的方式来做管理,而不是说零信任只能像Google那样将之应用于办公网,面向员工的身份进行管理。我们可以看一下Forrester的这张图: 大家可以看到,零信任可以作用于人,设备,网络,工作负载等所有有数据流动的主体上。事实上,相较于办公网而言,数据中心是更容易实现零信任的场景,也是有着更多核心业务和关键数据的地方,因此可以成为我们开展零信任建设的起点。 微隔离在零信任网络中的地位和价值 现在我们说下微隔离技术。前面我们谈到,相较于办公网而言,数据中心网络更适合成为零信任建设的起点。那么对于数据中心网络而言,具体的产品技术是什么呢?这个在业界是有共识的,有两个技术是当下能够落地的,一个是SDP,一个就是微隔离。事实上微隔离技术是最早的一种对零信任这个概念的具体技术实现。我们看下Forrester2019年Q4的报告: 报告中的这段开场白大概是这么个意思:零信任是个挺费劲的事情,甲方自己上是没戏的,你得找到能帮你干这个事的供应商。那如何来评估每天围在你门口的那么多乙方呢?有这么几个标准:首先就是要态度端正,你必须让他指天发誓,他们相信零信任这件事情就是人民群众大救星,只有零信任才能拯救网络安全。而且他们必须得有真本事,他们的产品确实能在零信任架构中有一个独特的价值,而不是来碰瓷的(deliver real Zero Trust capabilities),看来挂羊头卖狗肉这事儿也不光是咱国内的特色。除了态度端正之外,首条具体的安全能力要求就是支持微隔离! 下面的那些个要求就不在本文讨论了,就是让您感觉一下微隔离在零信任技术体系中的地位是什么。 我们再看下同样在这篇报告里的这个图: 这是Forrester观察到的市场上的有效供应商。越靠右边的战略越先进,越靠上边的技术越好。从这张图可以明显的看到,就当下而言,技术较好的是illumio,那么illumio是做啥的呢?业内人士都知道,他就是做微隔离的,全球十三只安全独角兽之一,微隔离市场的扛把子。 通过对Forrester报告的分析,大家不难理解微隔离之于零信任的价值。那么从理论上分析,为啥微隔离这么重要呢。因为微隔离要实现的核心能力就是两条,数据中心内工作负载之间的流量可视以及访问控制。大家可以回头再看看前面那张图,零信任能力究竟是个啥能力?本质上就是俩能力,一个是看得尽量多,一个是管得尽量细。而恰恰这就是微隔离主要在做的事情。领先的微隔离产品,能够做在十万点级别的数据中心内做到容器间流量的识别与访问控制,甚至能做到基于进程的访问控制,这个细粒度正是零信任所要求的。 微隔离技术的当下和远方 作为微隔离技术在国内的积极倡导者,也是只做微隔离这一件事的厂商,蔷薇灵动做了很多的微隔离项目,服务的客户包括三桶油,五大行,三大运营商,平安、京东等等云计算领域的头部企业。在这个过程中,一方面我们见证了微隔离技术是如何帮助用户将一个个高度复杂的虚拟化网络看清楚、管明白的。另一个方面,我们也深刻地认识到,微隔离这项技术所面临的挑战仍然非常的巨大。具体而言,我可以用“多快好省”这四个字来做个概括: 1. 多: 跟得上用户计算密度膨胀的脚步 计算密度膨胀这件事情,给我们留下的印象非常深刻。我们的一个客户刚开始试用我们的产品的时候,他们的体量在四五千点这样一个级别,而今年他们的计划是,扩容到2万点。另一个客户更夸张,在购买我们产品的时候,他们的规模大概是十万点,但是今年我们在产品上线的时候,他们告诉我们说,他们刚刚做了战略决策,全面容器化,目前毛估体量在100万点左右! 而微隔离这件事情,要回答的是点和点之间的关系问题。从算法复杂度的角度讲,他与所管理的点数之间是个n的平方的关系。再考虑到,点和点之间的通信是一个时刻都在发生的事情,而微隔离需要记录并分析每一次访问,然后再随着时间的累积,这个数量级就接近了n的3次方了。这意味着什么呢,如果管理规模扩大一倍,那么对算力的要求会扩大8倍。所以对于大规模网络的支撑是微隔离最重要的一个技术难点。大家这里一定要注意一个区别,不是说你能够部署安装多少点,而是说你能不能把这些点之间的关系完整、准确、实时地分析出来。目前我们可以实现用三台云主机作为算力,来支撑万点级别的场景,但是根据Illumio的公开资料,他们要支持一万五千点的时候,就需要6台专用的高主频物理服务器了,大家可以想象百尺竿头更进一步会有多难。而这个能力,相较于我们用户计算体量的膨胀速度而言还是不够。 所以我这里可以给大家一个判断标准,在过去评估防火墙的最主要指标是吞吐量,包括延迟,每秒新建,并发等等指标。而微隔离技术的核心指标就在于它能够管理的工作负载的规模。 2. 快:跟得上微服务架构飘渺的跑位 正如您看到的,容器在计算密度膨胀这个过程中扮演了非常重要的角色。一个方面,K8S的成熟和便捷,以及对于DEVOPS理念的良好支撑,使得越来越的客户在快速的拥抱容器。但是,从另一个方面,这也对各种运维技术提出了很严峻的挑战。就微隔离技术而言,一个非常大的挑战是策略计算速度问题。 微隔离是一种典型的软件定义安全结构。它的策略是由一个统一的计算平台来计算的,而且需要根据虚拟化环境的变化,做实时的自适应策略重算。问题就在这个地方,对于私有云环境而言,一个虚机的生命周期很长,从几周到几个月乃至几年都有可能,这个时候对于策略的计算速度其实没有特别高的要求。但是在K8S的环境下,情况发生了巨大的变化。由于容器的创建和销毁非常方便,使得容器的生命周期往往非常短,甚至只有几分钟。这就对策略计算的速度提出了很严格的要求,再加上往往容器环境的体量都非常巨大,就让这个策略计算的难度更高了。这种酸爽的感觉怎么形容呢,大概就是这么个意思: 给你一麻袋沙子,然后问你每一粒沙子叫啥名?他们之间什么关系? 矮油,没想到你居然知道。 好吧,现在把袋子在地上摔个五六遍。 然后问你,他们都叫啥名?他们之间什么关系? 你有5秒钟的时间,5,4,3… 3. 好:企业级产品必须具备企业级特性 企业级产品的功能特性,符合冰山模型。我们能够看得见摸得着的功能大概只占整个产品功能的10%,90%的功能都是水面之下的非功能特性,或者我们称之为企业级特性。 谈到这,我们扯个闲篇,说说80/20这个事。这确实是个神奇的法则,在各个领域似乎都有用。从产品研发的角度看,我们大概只需要用别人20%的工作量,就能实现人家产品80%的功能,事实上这是我们国内过去很长时间大家指导产品研发的原则,先解决有无问题嘛,最重要的就是快,要啥自行车呀,又不是不能过…。但是企业级产品的本质要求恰恰相反,我们必须要投入绝大部分的工作量去解决那剩下的20%,因为就是这20%才是决定一个产品能否真正被部署在核心业务系统的关键。 更严峻的挑战是,很多时候你并不知道你缺失的企业级特性是什么,直到你在客户现场遇到他!比如说我们在实验室里能够模拟出几百点的真实环境,也可以通过流量发生器构造出万点级别的虚假环境。但是无论如何你造不出一个万点级别的真实生产环境,就好像你没办法在你的实验室里真实再现出淘宝的全部交易一样,哪怕只是一秒钟的交易。所以有很多在大压力下才会出现的问题,就会被隐藏起来,一直到你的产品在真实的场景上线。这就好像你的头上一直悬着一把达摩克里斯之剑,让人始终有一种如坐针毡如履薄冰的感觉。 所以呢,一个方面我们始终投入很大的精力在这个方面,尽全力去提升我们的企业级特性。另一个方面呢,大家在评估微隔离产品的时候,一定要关注他们是否有大规模场景的交付经验和大规模的现网稳定运转的案例,要评估他们是否真的能够支撑你的云计算发展战略。 4. 省:在产品发展的过程中保持克制 这一条,既是我们要分享给大家的一个产品设计的指导原则,也算是对我们自己的一个警醒吧。 首先我们要提出一个方法论,那就是“产品研发的不可能三角“,这个方法论是应该我们独家提出的(当然,本文里的方法论基本都是我们独家提出的)。什么是不可能三角呢:就是在产品功能的丰富性,产品功能的专业性,以及计算开销这三者之间,你最多只能选择两者。 比如说,你可以选择产品功能很丰富,计算开销也比较低,那么你的每一项功能的实现水平势必比较初级。比如面向中小客户市场的产品,往往选择这种产品战略。 或者,你也可以选择产品功能很丰富,而且每一项功能的实现水平也很高,那么你势必需要很多的计算资源。比如我们过去的边界型安全产品,一个数据中心,只需要两台,每台设备都是4U,两台就能装满一个机柜。 对于微隔离而言,一个最主要的限制就是计算开销问题。由于微隔离需要对整个数据中心内部做点到点的访问控制,所以他的控制点的分布应该是尽可能的广。正如我们前面说的,我们能做到每一个容器都有一个控制点。但是部署量如此的巨大,就要求你单个控制点的计算开销必须尽量的小。举个例子吧,现代一个云计算数据中心的造价,少则两三个亿,多则十几个亿。我们就说两个亿吧,那么如果单控制点计算开销增长1%,就意味着这个数据中心要多拿出价值200万的计算资源! 所以,根据不可能三角,我们就必须在功能丰富性与功能的完善性之间做个二选一的选择,再结合我们前面对微隔离所面临的技术挑战的描述,那么其实我们能选择的路就只有一条,那就是选择少而精,而不是多而粗。 道理是明显的,但是要做得到,真还挺考验人性的。作为一家高科技创业企业,无论是从客户的要求来说,还是从我们对新技术的偏好来说,我们都有极大的冲动去做更多的安全能力。但这个时候,我们就必须始终牢记我们的产品边界,始终牢记,我们是要在超大规模生产环境交付的企业级产品!然后就只能看着一个个热点生生灭灭,看着在不同的风口中,一只只小金猪飞翔天际,看着一只只独角兽从我们面前飞奔而过,而我们只能掸掸飞扬的尘土,回去再做下一轮的版本迭代。 【责任编辑: 蓝雨泪 TEL:(010)68476606】

优秀的个人博客,低调大师

mica v2.0.0 强化基础工具集

mica(云母) mica 云母,寓意为云服务的核心,增强 Spring cloud 功能,使得 Spring cloud 服务开发更加方便快捷。 mica 2.x核心依赖 mica 基于 java 8,没有历史包袱,支持传统 Servlet 和 Reactive(webflux)。采用 mica-auto 自动生成 spring.factories 和 spring-devtools.properties 配置,仅依赖 Spring boot、Spring cloud 全家桶,无第三方依赖。市面上鲜有的微服务核心组件。 依赖 版本 Spring Boot 2.2.x 关于此版本 此次版本相比 mica 1.x 少了一些模块,主要原因如下: mica-launcher、 mica-boot-testmica 2.x中采用新方式给精简掉了。 部分模块本次版本暂不开源,后续会逐步开放。 部分模块开发层度比较低,转到内部继续研发。 其他模块付费提供,付费版很多模块都已经打通。 知识付费,让你我走的更远!!! mica 2.x 现有模块示意图: 注意:左边开锁状态的模块,后续都会开放。 更新说明 ✨mica-http 支持指定协议 protocols。 ⚡mica-http 扩展 HttpRequest proxy 方法,方便使用。 ✨mica-http 拆出 mica-spider 爬虫工具,精简依赖。 ✨mica-spider 增强 CssQueryMethodInterceptor。 ⚡mica-captcha 验证码抽象,支持数学计算型验证码。 ✨mica-captcha 验证码缓存接口,完善验证码生成说明。 ✨mica-swagger 升级 swagger 到 knife4j。 ✨mica-redis 限流算法改为同 Spring cloud gateway,减少内存占用。 ✨mica-jobs 添加 xxl-job starter。 ✨mica-core 生成 mica 版本信息到 Mica 类中。 ✨mica-core 添加 compiler 工具类。 ✨mica-core 添加用于计数的 CountMap。 ✨mica-core 添加 Once 对象。 ✨mica-core 中的 jackson 包移动到 mica-boot,并做调整用于支持 mica-api-encrypt 组件。 ✨mica-core 简化 aes 工具类代码。 ⚡mica-core 优化 DateUtil。 ⚡mica-core 优化 RuntimeUtil。 ✨mica-core 拆解完善 HexUtil。 ✨mica-core 添加 DesUtil。 ✨mica-core 添加 RsaUtil。 ✨mica-core 优化 ResourceUtil 工具类。 ✨mica-core 微调 Bean copy。 ✨mica-core function 添加序列化。 ✨mica-core MD5 不再依赖 Spring DigestUtils。 ✨mica-core 优化 file 工具对文件名处理。 ⚡add .gitattributes。 ⚡ @configuration 替换为 @configuration(proxyBeanMethods = false)。 ⬆️升级 okhttp 到 3.14.8。 ⬆️升级 jsoup 到 1.13.1。 ⬆️升级 mica-auto 到 1.2.2。 ⬆️升级 spring boot 到 2.2.6,不再支持,spring boot 2.2.x 以下版本。 ⬆️升级 spring cloud 到 Hoxton.SR4。 文档 mica 源码 Github:https://github.com/lets-mica mica 源码 Gitee(码云):https://gitee.com/596392912/mica 文档地址(官网):https://www.dreamlu.net/mica2x/index.html 文档地址(语雀-可关注订阅):https://www.yuque.com/dreamlu 示例项目:https://github.com/lets-mica/mica-example 欢迎关注我们的公众号:JAVA架构日记,精彩内容每日推送。

优秀的个人博客,低调大师

JetLinks 物联网基础平台 1.0 RELEASE 发布

更新时间: 2020-04-01 主要优化: 重构elasticsearch-component模块. 优化elasticsearch索引管理,支持自定义策略,如按月对索引分表. 增加GeoType类型支持,为未来的Gis支持作准备. 增加网关设备功能.见:通过网关设备接入多个下挂设备 增加属性变更Dashboard接口,可同时订阅一个设备对所有属性变更事件. 优化设备协议,增加调试功能. 增加脚本支持(PRO). 增加设备功能调用,可在界面发起功能调用指令. 增加设备标签功能,可自定义设备标签,可通过标签查询设备: where("id$dev-tag","location:重庆市"); //查询标签key为location,value为重庆市的设备. 优化消息网关中的设备消息topic,详见:从消息网关中订阅设备消息 DeviceMessage增加头:Headers.keepOnline,用于在TCP短连接的场景保持设备一直在线,仅通过keepalive超时判断离线. 消息网关增加集群支持,在任意一个服务节点都可订阅设备消息.(PRO) 增加UDP设备网关,可通过UDP接入设备了(PRO). 增加CoAP设备网关,可通过CoAP接入设备了(PRO). 设备会话支持手动指定心跳超时时间以及获取客户端地址信息. 优化批量upsert,提升批量导入性能. 性能优化,详见压力测试. 一系列UI优化. 主要BUG修复: 修复使用save保存的数据中有字段使用默认值时,更新数据会导致字段被更新为默认值的问题. 修复选择网络协议时出现重复选项. 修复设备属性和事件历史记录部分类型无法展示问题. 修复无法将excel大文件导入设备实例的的问题. 修复在某些情况下redis超时后的NPE错误. 修复无法导出设备问题. 修复当设备数量较多时同步设备状态可能导致崩溃的问题.

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册