-
Java随机数的陷阱
所属栏目:[优化] 日期:2019-09-11 热度:108
前言 随机数我们应该不陌生,业务中我们用它来生成验证码,或者对重复性要求不高的id,甚至我们还用它在年会上搞抽奖。今天我们来探讨一下这个东西。如果使用不当会引发一系列问题。 Java中的随机数 我们需要在Java中随机生成一个数字。java开发中我们通常[详细]
-
微服务架构中常用的解决方案,总结了传统服务发现方案
所属栏目:[优化] 日期:2019-09-10 热度:54
正常情况下当我们要访问服务时需要知道服务实例地址和端口,如果服务实例地址和端口都是固定的我们可以直接将其配置在文件中使用,但大多数线上生产环境尤其容器部署情况下服务实例地址都是动态分配的,只有当服务实例实际部署之后才能获得地址,服务调用[详细]
-
理解微服务的定义,概念以及微服务的原理
所属栏目:[优化] 日期:2019-09-10 热度:132
微服务是业界比较新的流行语,似乎每个人都在以这样或那样的方式谈论它。让我们理解一下什么是微服务?通过这篇教程我们将理解微服务的定义,概念以及微服务的原理。 微服务的定义 如今,微服务是SOA(面向服务的架构)之后越来越流行的架构模式之一,如果您[详细]
-
教师节送什么?Python教你挑选礼物
所属栏目:[优化] 日期:2019-09-10 热度:79
又到了一年一度的教师节,每次教师节大家都会烦恼不知道送什么礼物?尤其是对于理工男来说,更是一个让人头大的问题。我今天就和大家分享一个用Python爬取淘宝商品信息的项目,希望可以给大家选礼物时提供一个参考。 1.爬取目标 本次项目利用selenium抓取淘[详细]
-
K8s集群架构与高可用解析
所属栏目:[优化] 日期:2019-09-09 热度:133
基本工作过程 Kubernetes 的核心工作过程: 资源对象:Node、Pod、Service、Replication Controller 等都可以看作一种资源对象 操作:通过使用 kubectl 工具,执行增删改查 存储:对象的目标状态(预设状态),保存在 etcd 中持久化储存; 自动控制:跟踪、对[详细]
-
同样是高并发,QQ/微博/12306的架构难度一样吗?
所属栏目:[优化] 日期:2019-09-09 热度:64
开篇同一个用户并发扣款时,有一定概率出现数据不一致,可以使用CAS乐观锁的方式,在不降低吞吐量,保证数据的一致性: UPDATEt_yueSETmoney=$new_money WHEREuid=$uidANDmoney=$old_money; 更详细的描述,详见《并发扣款,如何保证数据的一致性?》。 不能[详细]
-
浏览 GitHub 太卡了?教你两招
所属栏目:[优化] 日期:2019-09-09 热度:170
老实说,GitHub 在国内的使用体验并不算太好,这其中很大的原因就是网络了。 GitHub 访问起来比较卡,这个看起来貌似无解。国内的 gitee 网速倒是可以,但是无法代替 GitHub,个人感觉 gitee 上还是开源项目多一些,工具类库要少一些。 在网络比较卡的情况[详细]
-
Netflix应用架构之用于个性化和推荐的系统架构
所属栏目:[优化] 日期:2019-09-07 热度:66
本文我们将探索如何创建一个能够交付并支持快速创新的软件架构。提出一种能够处理大量现有数据、响应用户交互并易于试验新的推荐方法的软件体系结构并非易事。在这篇文章中,我们将描述我们如何解决Netflix面临的一些挑战。 首先,我们在下图中展示了推荐[详细]
-
编程语言Nim 中文官网现已上线
所属栏目:[优化] 日期:2019-09-07 热度:142
近期 Nim 中文官网现已上线!大家可以通过https://nim-lang-cn.org来访问。 Nim 是一个新型的静态类型、命令式编程语言,支持过程式、函数式、面向对象和泛型编程风格而保持简单和高效。Nim 从 Lisp 继承来的一个特殊特性--抽象语法树(AST)作为语言规范的[详细]
-
推动 IT 转型的三大法宝
所属栏目:[优化] 日期:2019-09-07 热度:192
当前,数字时代为中国及其他亚太地区的企业带来了巨大机遇:成功实现数字化转型的企业,能够提升其在全球市场的竞争力。IDC 预测,今年亚太地区的企业在数字化转型上的开支将超过 3,758 亿美元,中国将成为整个亚太地区较大的数字化转型市场,2019 年支出[详细]
-
给中级Python开发者的13个练手项目,适合你不?
所属栏目:[优化] 日期:2019-09-07 热度:101
Web 项目设计 内容聚合器(Content Aggregator) 1. 技术细节 该项目设计的主要目标是聚合内容。首先,我们需要知道内容聚合器从哪些站点获取内容。然后,使用请求库来发送 HTTP 请求,并使用 BeautifulSoup 解析和抓取站点的必要内容。 该应用程序可以将其[详细]
-
并发扣款,如何保证数据的一致性?
所属栏目:[优化] 日期:2019-09-07 热度:188
继续解答星球水友提问。 扣款的业务场景是怎样的? 用户购买商品的过程中,要对余额进行查询与修改,大致的业务流程如下:第一步,从数据库查询用户现有余额: SELECTmoneyFROMt_yueWHEREuid=$uid; 不妨设查询出来的$old_money=100元。 第二步,业务层实施[详细]
-
京东到家订单查询服务演进
所属栏目:[优化] 日期:2019-09-07 热度:61
背景 京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况。京东到家的订单数据存储在Mysql中,但显然只通过DB来支撑大量的查询是不可取的,同时对于一些复杂的查[详细]
-
微服务的三种通信方法
所属栏目:[优化] 日期:2019-09-07 热度:191
在微服务架构的世界中,我们通过一系列服务构建应用。集合中的每项服务都符合以下标准: 松散耦合 可维护和可测试 可以独立部署 微服务架构中的每个服务都解决了应用中的业务问题,或至少支持一个。一个团队对应用中的一个或多个服务负责。 微服务架构可以[详细]
-
使用 Python 函数进行模块化
所属栏目:[优化] 日期:2019-09-07 热度:164
你是否对函数、类、方法、库和模块等花哨的编程术语感到困惑?你是否在与变量作用域斗争?无论你是自学成才的还是经过正式培训的程序员,代码的模块化都会令人困惑。但是类和库鼓励模块化代码,因为模块化代码意味着只需构建一个多用途代码块集合,就可以在[详细]
-
Redis基本类型及其数据结构
所属栏目:[优化] 日期:2019-09-07 热度:162
以前在使用Redis的时候,只是简单地使用它提供的基本数据类型和接口,并没有深入研究它底层的数据结构。最近打算重新学习梳理一下Redis方面的知识,所以打算从介绍Redis的基本类型及其数据结构入手。 redisObject Redis的key是顶层模型,它的value是扁平化[详细]
-
MySQL 进行 Docker 容器化之体验与感悟
所属栏目:[优化] 日期:2019-09-07 热度:76
原则 Docker 的使用原则是所有容器化的应用程序都应该是无状态的 ,即容器内部只跑业务逻辑,容器应用的所有配置文件、日志文件和持久化数据 都应该挂载到宿主机文件系统,不应该存储在容器内部,以免容器被误删或自身出现问题导致数据丢失。 MySQL 容器化[详细]
-
用Cython加速Python代码,速度溜到飞起
所属栏目:[优化] 日期:2019-09-07 热度:106
介绍 如果你曾用Python编写代码,那么你可能花了更多的时间等待某些代码块的执行,而不是你想要的。虽然有一些方法可以使您的代码更有效,但它很可能仍然比C代码慢。这主要归结为Python是一种动态编程语言,并将许多东西移动到C语言编译期间处理的运行时。[详细]
-
详解JVM内存布局及GC原理,值得收藏
所属栏目:[优化] 日期:2019-09-07 热度:149
java发展历史上出现过很多垃圾回收器,各有各的适应场景,不仅仅是开发,作为运维也需要对这方面有一定的掌握,今天简单介绍一下java的内存布局以及各种垃圾回收器的原理。 JVM内存布局 JVM从概念上大致分为6个(逻辑)区域: 这6块区域按是否被线程共享,可[详细]
-
Docker命令行入门大全:这18条,你不得不知
所属栏目:[优化] 日期:2019-09-07 热度:59
Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。 前 言 Docker镜像是由Dockerfile和一些必要的依赖项组成的,Docker容器是动态的Docker镜像。要使用Docker命令[详细]
-
Linux运维会被淘汰吗?
所属栏目:[优化] 日期:2019-09-06 热度:103
1. 前言 本文主要探讨Linux运维技术人员会被淘汰吗? 社会上最近会出现这样的一些想法和声音。源于现在流行自动化运维技术,比如以下的3种自动化运维工具。 2. 自动化运维工具取代一部分人力 2.1 自动化运维之Devops Devops的口号喊了很多年,但一直到今年[详细]
-
基于分布式系统的7种唯一ID实现方案,值得收藏
所属栏目:[优化] 日期:2019-09-06 热度:180
概述 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。 分布式ID的特性 唯一性:确保生成的ID是全网唯一的。 有序[详细]
-
Python开发必备:如何建立一个优秀的项目工程环境
所属栏目:[优化] 日期:2019-09-06 热度:177
在程序开发时候一套好的开发环境和工具栈,可以帮我们极大的提高开发的效率,避免把大量时间浪费在周边琐事上。本文以Python为例,教大家如何快速打造优秀的Python项目开发环境:内容涵盖了模块依赖管理、代码风格管理、调试测试管理和Git版本管理,使用gi[详细]
-
如何在 Linux 上重命名一组文件
所属栏目:[优化] 日期:2019-09-06 热度:59
几十年来,Linux 用户一直使用 mv 命令重命名文件。它很简单,并且能做到你要做的。但有时你需要重命名一大组文件。在这种情况下,rename 命令可以使这个任务更容易。它只需要一些正则表达式的技巧。 与 mv 命令不同,rename 不允许你简单地指定旧名称和新[详细]
-
一文看懂数据结构中的树 值得收藏
所属栏目:[优化] 日期:2019-09-06 热度:187
通常在开始学编程的时候,你会接触一些常用数据结构。 到最后一般会学到哈希表。对于修读计算机科学学位的朋友,你通常要上专门的数据结构课,从了解有关链表、队列和栈的各种知识。这些统称为线性数据结构,因为依逻辑次序从头排到尾。 当你开始进入下一[详细]