2019-12-02 10:39
菜菜哥,你上次讲的kubernetes我研究了一下,你再给我讲讲docker呗
张嘴女人.gif
docker可很流行呀
张嘴男人.gif
kubernetes是容器编排技术,容器不就是指的docker吗?
张嘴女人.gif
docker可不等于容器哦,docker只算是容器的一种吧,算了容器的典型代表
张嘴男人.gif
容器的诞生
在传统的软件部署方式中,程序员需要把要发布的应用程序打成包发给运维人员,然后由运维人员在生产环境进行部署。当随着应用的版本迭代越来越多,应用的依赖库版本错综复杂,往往会出现开发环境和生产环境不一致的情况发生,而且由于多数情况下采用微服务的架构,每个团队都有可能使用不同版本的依赖库,并有可能在升级的时候替换掉他们,因而同一个应用程序采用相同版本的依赖库是多么的重要。
...
2019-11-30 17:59
假设我们现在有这么一个需求:
计算1-200之间各个数的阶乘,并将每个结果保存在map中,最终显示出来,要求使用goroutine。
分析:
(1)使用goroutine完成,效率高,但是会出现并发/并行安全问题;
(2)不同协程之间如何通信;
对于(1):不同协程之间可能同时对一块内存进行操作,导致数据的混乱,即并发/并行不安全;主协程运行完了,计算阶乘的协程却没有运行完,功能并不能够准确实现;可利用互斥锁解决该问题;
对于(2):可以利用利用管道;
正常的代码:
复制代码
package main
...
2019-11-30 17:35
如果是自己写的代码,加上又熟悉业务场景,很容易就知道性能瓶颈点。但如果上来就去优化别人的代码,甚至是其他产品线的代码,还是有一些挑战的。最近就在做这事,接手了优化公司一个业务引擎接口的任务,在这儿对优化方法做一些总结。优化接口总共分两步,一是找到性能热点,二是解决热点。在不熟悉代码的情况下,找热点是最难的,找到后对症下药就容易多了。先主要说一下如何找性能热点。...
2019-11-30 17:06
前言
在上一篇中介绍了Nginx的安装,本篇文章主要介绍的是Nginx如何实现负载均衡。
负载均衡介绍
介绍
在介绍Nginx的负载均衡实现之前,先简单的说下负载均衡的分类,主要分为硬件负载均衡和软件负载均衡,硬件负载均衡是使用专门的软件和硬件相结合的设备,设备商会提供完整成熟的解决方案,比如F5,在数据的稳定性以及安全性来说非常可靠,但是相比软件而言造价会更加昂贵;软件的负载均衡以Nginx这类软件为主,实现的一种消息队列分发机制。
简单来说所谓的负载均衡就是把很多请求进行分流,将他们分配到不同的服务器去处理。比如我有3个服务器,分别为A、B、C,然后使用Nginx进行负载均衡,使用轮询策略,此时如果收到了9个请求,那么会均匀的将这9个请求分发给A、B、Cf服务器,每一个服务器处理3个请求,这样的话我们可以利用多台机器集群的特性减少单个服务器的压力。
...
2019-11-30 17:32
论文:https://arxiv.org/abs/1812.01866...
2019-11-30 17:44
目前为止,我们介绍了 redis 中非常典型的五种数据结构,从 SDS 到 压缩列表,这都是 redis 最底层、最常用的数据结构,相信你也掌握的不错。
但 redis 实际存储键值对的时候,是基于对象这个基本单位的,并且往往一个对象下面对对应不同的底层数据结构实现以便于在不同的场景下切换底层实现提升效率。例如列表对象在元素不多情况话会使用压缩列表来实现以压缩内存,而在元素比较多的时候常规的双端链表进行实现。
下面我们就具体来看看 redis 中都有哪些对象,底层又对应哪些可供选择的数据结构。
...
2019-11-30 16:35
目录
Java类的定义与类的实例化
类的定义
定义一个简单的类
定义一个成员变量
定义一个方法
定义一个构造器
类的实例化
创建对象及使用对象:
创建对象的过程在内存中的表现
Java类的定义与类的实例化
类的定义
面向对象的程序设计中,类可以看作是我们自定义的数据类型,那么,如何能更加优美,更加高效地定义它就显得尤为重要。
类中的成员有很多,每一部分都是十分关键的,毕竟“面向对象”在Java学习中真的很重要,许许多多的Java开发者定义出来的类等待着我们去使用,加油!攻克它!
直接上代码:
...
2019-11-30 16:49
1.Python多进程模块Python中的多进程是通过multiprocessing包来实现的,和多线程的threading.Thread差不多,它可以利用multiprocessing.Process对象来创建一个进程对象。这个进程对象的方法和线程对象的方法差不多也有start(), run(), join()等方法,其中有一个方法不同Thread线程对象中的守护线程方法是setDeamon,而Process进程对象的守护进程是通过设置daemon属性来完成的。...
2019-11-30 16:09
概述
实现彩虹呼吸灯
题目就是这么简短,但这是目前我碰到的最有意思的一道题目,因为他有无数种解决方法,并且每一种都是那么高级或者巧妙,比如
可以利用3路不同初相的PWM调制信号驱动三颗RGB灯重叠呼吸
利用1路PWM信号以及状态机,将一个周期分为3个状态,分别是[R降G升B灭],[R灭,G降,B升]和[R升,G灭,B降],依次往复实现重叠呼吸
将PWM拆分为3段,分别为升,降,灭,在不同时间周期性的输送给RGB实现重叠呼吸
当然,不只这几种,还有更高级的方法或者生成语句也可以更加简练的完成题目,在这里,我将采取上面罗列的几种方法的一种折中方案,采取"拆分PWM","三元运算符实现单行条件信号分配","监视模块内运行情况并以监视信号作为状态转换的触发条件"来实现彩虹呼吸灯.
...
2019-11-30 16:10
上一篇说了如何使用 Topshelf 组件快速创建Windows服务,接下来介绍如何使用 Quartz.net...
2019-11-30 16:42
概要
本篇主要介绍一下document的知识,对document的元数据和基本的语法进行讲解。
document核心元数据
前面入门实战一节有简单介绍过document数据示例,这次我们来详细了解一下它的核心元数据,查询响应报文如下:
{
"_index": "music",
"_type": "children",
"_id": "1",
"_version": 1,
"found": true,
"_source": {
"name": "gymbo",
"content": "I hava a friend who loves smile, gymbo is his name",
...
2019-11-30 16:48
这次也是创业公司,但与以往不同的是,起点很高,起步资金有1500W,而且给我开的工资破万,对我也很有吸引力。这家公司我待的时间蛮长的,有一年半,而且同事之间的感情也比前面两家要好。我在这家公司主要做PHP,兼顾页面的制作。一、项目开始前...
2019-11-30 16:16
在本号的一系列Spring Security文章中,先后介绍了各种登录验证及授权中的知识点,如:spring-security简介并与shiro对比、 formLogin模式登录认证、动态数据登录验证与权限分配、账户多次登录失败锁定、RememberMe记住我功能,等等文章。笔者觉得以上的这些实际上都很简单,我们没有涉及到分布式应用。本节将以分布式的应用背景,讲解验证码实现的多种方式。本小节先从理论的角度为大家讲解,具体实现笔者还会再写。
session存储验证码,不适用于分布式应用
共享session存储验证码,适用于分布式应用
...
2019-11-30 16:42
曾经有个女孩问我为什么要学Maven,我吧唧嘴就怼:Maven项目没有jar包它不香嘛,照样运行它不香嘛?如果让我一句话形容Maven,我会这样形容:“妈妈再也不用担心小明拿U盘去小红电脑里烤jar包了”,女孩听了瞬间泪崩了:”我其实也是一个中央仓库,以后缺jar包直接来找我,用不着小红”,我顿时有点受宠若惊~小鹿乱撞~。...
2019-11-30 16:14
人生苦短,我用 Python
前文传送门:
小白学 Python 爬虫(1):开篇
小白学 Python 爬虫(2):前置准备(一)基本类库的安装
小白学 Python 爬虫(3):前置准备(二)Linux基础入门
小白学 Python 爬虫(4):前置准备(三)Docker基础入门
小白学 Python 爬虫(5):前置准备(四)数据库基础
小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装
网络的起源
这个其实是一个冷知识,各位同学可以猜测一下计算机网络的起源是在哪里。
...