解读Docker Bridge网络模型
背景这几天在研究Kubernetes,遇到一个有意思的nodejs镜像:luksa/kubia#不带端口映射启动容器dockerrun-it-dluksa/kubia#连接到默认的Bridge网桥,容器IP是172.17.0.2之后,在宿主机使用容器IP和8080端口可访问该容器nodejs服务对此我有几个疑问,这几个疑问在我看来有点与我之前对docker网络的认知相冲突。Q1.不是说如果容器没有端口映射,容器内外隔离吗,怎么在宿主机使用容器IP还可以访问?Q2.使用容器IP:8080可以访问nodejs服务,这个8080从哪里来?头脑风暴首先排除一些同事说法:这个容器是以host
CSS如何实现文字两端对齐
需求如下,红框所在的文字有四个字的、三个字的、两个字的,如果不两端对齐可以选择居中对齐,或者右对齐。但是如果要像下面这样两端对齐呢?我相信以前很多人都这么干过:两个字中间使用 来隔开达到四个字的宽度,三个字也可以,但是,像上图中“122账号”“122密码”这样的,就不好计算该用几个空格了。假如我们有如下HTML:这世间唯有梦想和好姑娘不可辜负!给它加点样式div{width:500px;border:1pxsolidred;text-align:justify;}初始效果是这样的text-align:justify这是什么东西?CSS2中text-align有一个属性值为justif
谈谈HTTP状态保持
HTTP协议本身是无状态的,无状态的意思是浏览器发起的每个HTTP请求,对于服务端而言都是彼此独立的,即服务端无法直接通过HTTP协议将用户的多次HTTP请求联系在一起。这就好比顾客跟自动售货机的关系一样,无论你在一台自动售货机上购买了多少次商品,自动售货机都没法“记住”你,也就是说你每一次在该售货机上购买商品的时候,自动售货机都会把你当成一个陌生的顾客来对待。然而在Web应用的很多场景下需要维护用户状态才能正常工作。典型的应用就是购物车。当你在网上商城购买商品的时候,每看到一个喜欢的商品可以把它先加入购物车,然后继续浏览其他商品,等浏览完商品后再进行商品的结算。在这个过程中,你与服务器的通信
MongoDB for VS Code:使用Mongo的新方法
VSCode扩展,可在你的IDE中与Mongo一起使用。VisualStudioCode已成为开发人员最喜欢的编辑器。MongoDB引入了VSCode的新扩展,这使得与Mongo一起使用变得超级容易。包中有什么?VSCode正在努力提高开发人员的生产力。同时,MongoDB建立了一个名为MongoDBforVSCode的扩展,该扩展使你可以直接从编辑器连接到MongoDBShell和MongoDBAtlas。现在,你无需导航到终端即可连接到MongoShell或使用GUI工具(如MongoDBCompass,Robomongo等)执行基本的Mongo操作。通过扩展,你可以:直接从编辑器连接到M
数据分析之帕累托图
01你好,我是每天都想学点新东西的林骥。1897年,意大利经济学家帕累托,在抽样调查的数据中发现,社会上20%的人拥有80%的财富。后来,人们发现这种「关键少数」的现象非常普遍,比如说:20%的原因导致80%的问题,20%的产品贡献80%的业绩,20%的员工贡献80%的业绩,20%的客户贡献80%的业绩……因此,简称为「二八法则」。为了纪念帕累托,我们把展现「二八法则」的图表,称之为帕累托图。下面举个例子,我们汇总导致质量问题的原因,计算每种原因出现的频次,然后按照从大到小进行排列,制作成一张帕累托图如下:与常见的帕累托图不同,我对图表细节做了一些调整:(1)线条从坐标原点开始,代表累计百分比
使用.net core3.0 正式版创建Winform程序
前阵子一直期待.netcore3.0正式版本的出来,以为这个版本出来,Winform程序又迎来一次新生了,不过9.23日出来的马上下载更新VS,创建新的.netcoreWinform项目,发现并没有Winform窗体设计器。而微软目前则是通过插件的方式,让我们单独下载Winform设计器,这个设计器还是预览版本,很多功能还是没有实现的,只能算是一个简单的雏形,本博客案例介绍基于.netcore3.0创建一个普通的WInform程序,让大家了解下基于.netcore3.0创建的程序的大概模样。1、开发环境的准备要做基于.netcore3.0的WInform开发,需要首先更新你的VisualStu
如何设计断线自动重连机制
在有连接依赖关系的服务与服务之间,或客户端与服务器之间,无论是出于方便使用、降低运维成本、提高工作效率(服务与服务之间),还是优化用户体验(客户端与服务器之间)自动重连机制通常都是一个非常重要的功能。情景一对于一组服务之间,如果其中一些服务(主动连接方,下文以A代称)需要与另外一些服务(被连接方,下文以B代称)建立TCP长连接,如果A没有自动连接B的功能,那么在部署或者测试这些服务的时候,必须先启动B,再启动A,因为一旦先启动A,A此时去尝试连接B(由于B还没有启动)会失败,之后A再也不会去连接B了(即使随后B被启动了),从而导致整个系统不能正常工作。这是缺点一。情景二即使部署或测试的时候,先
idea中那些好用到飞起的插件
推荐一些开发人员常用的一些idea插件。偷懒神器在此,不再秃头!1.idea安装插件的方法。file->setting->plugins搜索插件的名称,如果没有安装这个插件就可以自己搜索然后点击下载下载完成之后可能有的插件需要重启idea,有的不需要,如果他提示你重启就重启idea就好了。2.AiXcoderCodeCompleter插件这款插件主要有两个功能:代码自动补全,以及相似代码智能推荐。在写代码的时候可以根据你现在所写的代码而进行智能补全,同时这个插件会基于程序员输入的代码,从后台规范代码中调用相似代码给予提示。在新项目上开始使用aiXcoder时,aiXcoder需要一个索引过程来
软件测试知多少?
送给初级程序员的测试认知文作为开发同学,一些基本的测试岗位相关知识还是很有必要了解一下,免的某些同学在工作中和测试同学斗嘴、打架、群殴等以及被测试鄙视….。我们常常听说的一些测试专业术语,比如白盒、黑盒、单元测试,相信搞作为程序员的你脱口而出的就是这三个词汇吧,笔者在前几年对测试也仅仅停留在这个两个词汇上,更多的就不得而知了。后来在一家做跨境电商的公司学到了一些新术语,也见到了测试岗位的一些日常,比如冒烟测试、测试用例(TC)、回归测试、接口测试以及偶尔和我吵架等等。白盒黑盒测试是按测试设计方法分类的,是指软件测试设计的方法,而不是软件测试的方法,注意这个区别。黑盒测试是行为测试,即从软件的行
微服务架构之「 访问安全 」
应用程序的访问安全又是我们每一个研发团队都必须关注的重点问题。尤其是在我们采用了微服务架构之后,项目的复杂度提升了N个级别,相应的,微服务的安全工作也就更难更复杂了。并且我们以往擅长的单体应用的安全方案对于微服务来说已经不再适用了。我们必须有一套新的方案来保障微服务架构的安全。在探索微服务访问安全之前,我们还是先来回顾一下单体应用的安全是如何实现的。一、传统单体应用如何实现「访问安全」?下图就是一个传统单体应用的访问示意图:(图片来自WillTran在slideshare分享)在应用服务器里面,我们有一个auth模块(一般采用过滤来实现),当有客户端请求进来时,所有的请求都必须首先经过这个au