体验小案例涂鸦识别:https://quickdraw.withgoogle.com画风迁移:https://deepdreamgenerator.com/ 人
投资分为固定资产投资和股权投资,所有的(非涉密)固定资产投资信息都要公开挂网,经常有人留言问我某某项目资料去哪看,去政府公开信息平台就行。 全国投资项目在线审批
三大前提:利润为真;利润可持续;维持当前盈利能力所需新增资本投入很少甚至无需新增资本投入 买点:三年后合理估值的50%就是理想买点; 卖点:当年市盈率超过50倍
锂电池大致可分为两类,锂金属电池和锂离子电池。锂电池在传统领域主要应用于数码产品,在新兴领域主要用于动力电池、储能领域。 在锂电池制造产业链中,电池包的制造核心
固定资产固定资产必须计提折旧,公司购买或自建固定资产时,不是将此时的花费作为当期经营成本,而是要按一定规则分摊到该资产的使用年限内,这个分摊过程就是计提折旧。
参考资料 https://new.qq.com/omn/20220311/20220311A069YO00.html
药品通用名/商品名药品通用名,是药品的法定名称,是全世界都可以通用的名称,比如布洛芬,通用名可以帮助识别药品。 药品商品名,一个药品常有多个厂家生产,许多药品生
医药行业是我国国民经济的重要组成部分,覆盖第一、二、三产业。医药领域包括从上游的药品研发制造到药品流通再到下游的医疗服务行业,细分行业众多,且差异巨大,对于不同
摘 要: 药品集中采购工作在我国已进行了20多年, 迄今为止已经建立了以政府为主导、以省区市为单位的网上药品集中采购模式, 此外各地还相继探索出独具特色的自主采
咨询公司MBB: 麦肯锡(McKinsey) ,波士顿咨询 (BCG),贝恩(Bain) 麦肯锡(McKinsey):https://www.mckinsey.
Node有两个版本线: LTS 是长期维护的稳定版本 Current 是新特性版本 win配置 解压zip包到想放置目录 在解压后的目录下建立 node_glo
简单来说就是:以前各个医疗单位独自采购,采购量小,不具备和厂家的议价能力,同时还有经销商层层加价以及医院收取回扣的现象,因此国家政府部门出面,统一收集各个公立医
官网:http://tomcat.apache.org/ 常见web服务器软件 webLogic:oracle公司,大型的JavaEE服务器,支持所有的Java
异常体系所有异常都是Throwable类的子类,注意Throwable是类不是接口。 Throwable类包含Exception类和Error类,Excepti
Common AnnotationsJSR-250: http://jcp.org/en/jsr/detail?id=250 12345<dependen
相关名词 JCP: 全称Java Community Process,是一个开放的国际组织,主要由Java开发者以及被授权者组成,维护Java相关规范,审核Ja
源地址:http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt (This is stale and
如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in。 例如:表A(小
14.1InnoDB In-Memory Structures Buffer Pool Change Buffer Adaptive Hash Index Lo
模式之保护性暂停模式之生产者消费者同步模式之顺序控制模式之两阶段终止模式之 Balking模式之享元模式之 Worker Thread参考资料
指令级并行原理CPU 缓存结构原理MESI缓存一致性协议MESI指数据在缓存中四种状态,分别是M(Modify)修改、E(Exclusive)独占、S(Shar
进程与线程进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程
time_wait指的是在四次挥手的最后一步中,主动关闭的一方,回复完ack后,所处于的状态,它有两个作用: 等待重传ack,因为可能会存在丢包 避免链接中还有
https://blog.csdn.net/qq_40551994/article/details/100991581 参考资料
字符设备:按照字符流的方式被有序访问,如串口和键盘块设备:能够随机,不用按顺序访问的,每次访问固定大小的数据片chunks的设备,如磁盘,扇区是它的最小存储单元
表空间:数据页:以页的大小,记录表的数据,属于一个表空间,通过SpaceId 和 PageNum, 即表空间id和页号能确定一个数据页 undo log 用来事
局部性原理: 当一个数据被用到时,其附近的数据也通常会马上被使用。程序运行期间所需要的数据通常比较集中。磁盘预读:一般操作系统将内存和磁盘空间分为大小相等的块,
https://blog.csdn.net/weixin_30342639/article/details/107552255 https://blog.csd
OverridingClassLoaderOverridingClassLoader 是 Spring 自定义的类加载器,构造方法中要指定自己的父类加载器,默认
循环依赖就是在多个bean中,相互持有对方,导致在创建的时候无法加载。如:beanA引用了beanB,beanB又引用了beanC,beanC最后又引用回了be
先提一些常见的缓存策略: https://www.jianshu.com/p/207130233e60 Cache-Aside:缓存位于一边,应用程序直接与缓存
分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单来说,分布式事务指的就是分布式系统中的事务,
查询SQL尽量不要使用select *,而是select具体字段 只取需要的字段,节省资源、减少网络开销。 select * 进行查询时,很可能就不会使用到覆盖
编码: 将数据按照一定规则存储在内存中 Stringhttps://blog.csdn.net/z69183787/article/details/105821
JVM, 全称Java Virtual Machine, 是Java程序的运行环境,相比其他语言有如下好处: 一次编写,到处运行,实现了跨平台 自动内存管理,垃
面试官你好,我叫xxx,[我是17毕业的,至今有4年的工作经验了],我的本科专业是计算机科学与技术,自我感觉计算机基础相关知识还是不错,工作后一直从事Java后
走不走索引呢?1select * from t where 100 < c and c < 100000; 首先明确一点,主键索引叶子节点处存的是整
分布式锁基于 redisson 做分布式锁Redlock算法: Redlock 是 Redis 的作者 antirez 给出的集群模式的 Redis 分布式锁,
对象头Java对象保存在内存中时,由三部分组成:对象头、实例数据、对齐填充字节。对象头又由三部分组成:Mark Word、指向类的指针、数组长度(只有数组对象才
官网:https://pytorch.org/ 参考资料
官网:https://www.tensorflow.org/ 参考资料
官网:https://matplotlib.org/ 参考资料
官网:https://pandas.pydata.org/ 参考资料
官网:https://numpy.org/ axis取值从0开始创建array时,若不指定,整数默认int64,小数默认float64 属性名字 属性解释 nd
异常检测(Anomaly detection)问题: 给定数据集 x(1),x(2),..,x(m),我们假使数据集是正常的,我们希望知道
CUADA,全称Compute Unified Device Architecture,即统一计算设备架构,是由NVIDIA在2007年推出的通用并行计算架构。
模型选择和交叉验证集假设我们要在10个不同次数的二项式模型之间进行选择,显然越高次数的多项式模型越能够适应我们的训练数据集,但是适应训练数据集并不代表着能推广至
K-均值是最普及的聚类算法,算法接受一个未标记的数据集,然后将数据聚类成不同的组。 K-均值是一个迭代算法,假设我们想要将数据聚类成K个组,其方法为: 首先选择
多样本向量化(Vectorizing across multiple examples) 参考资料
协方差https://blog.csdn.net/xiao_lxl/article/details/72730000 参考资料
矩阵和向量矩阵的维数即行数×列数,Aij指第i行,第j列的元素。 向量是一种特殊的矩阵,一般都是列向量,即列数为1的矩阵。 矩阵乘法的性质 矩
单变量线性回归 / Linear Regression with One Variable单变量线性回归模型: 代价函数: m代表训练集中实例的数量 x代表特征
“数据可得性(data availability)”和“数据可得性问题”指的是一些区块链扩容方案所面临一个问题。具体来说,就是当新的区块创建时,节点如何确保该区
2020 年 9 月,以太坊的 gas 价格突破历史新高,超过 477 Gwei,或许这预示着离 gas 价格涨至 Twei 的日子不远了。2017 年的 IC
Dai是基于以太坊ERC20的一个基础稳定货币,即保持 1 Dai = 1 美元,通过数字资产足额抵押担保发行。 MakerDAO是2014 年在以太坊区块链上
货币有时间价值,因为钱会产生利息。区块链产生了很多的数字资产,但现在这些资产大部分只能直接交易,无法交换时间价值,所以,借贷的实现就变得很重要了。 Compou
Uniswap 是一个基于以太坊的协议,旨在实现 ETH 和 ERC20 代币数字资产之间的自动兑换,即去中心化的交易所。Uniswap 也可以被认为是一个 D
无论工作量证明的 PoW,还是权益证明 PoS,还是委托权益证明 DPoS,只要在共识问题里面,理论上讲都无法避免出现 51% 攻击,攻击者通过 51% 可逆转
2020年4月18日08:58,黑客利用 Uniswap 和 ERC777 的兼容性问题,在进行 ETH-imBTC 交易时,利用 ERC777 中的多次迭代调
以太坊虚拟机,简称 EVM,是用来执行以太坊上的交易的。 固定油费(Intrinsic Gas)每笔交易过来,不管三七二十一先需要收取一笔固定油费,计算方法如下
不同于比特币,以太坊作为智能合约平台。每一笔交易作为消息在以太坊虚拟机中执行时,均会获得一个交易回执信息(Receipt)。形同在银行转账后,可以获得关于这笔转
什么是事件事件是以太坊提供的一种链内链外沟通的一种机制。通过触发事件,智能合约可以通知链外组件某个交易完成了什么事儿。下面是一个 ERC20 合约里常见的 Tr
在现实生活中,有许多应用场景会包含很多点以及点点之间的连接,而这些应用场景我们都可以用即将要学习的图这种数据结构去解决。 地图:我们生活中经常使用的地图,基本上
币圈 火币全球:https://www.huobi.be/zh-cn/ coinbase: https://www.coinbase.com/ 币安:https
并查集是一种树型的数据结构 ,并查集可以高效地进行如下操作: 查询元素p和元素q是否属于同一组 合并元素p和元素q所在的组 并查集结构并查集也是一种树型结构,但
价格预言机由于一切金融衍生品都需要价格数据,特别像稳定币、期货等智能合约资产,更需要价格进行清算,可以说价格决定了金融衍生品的核心风险,对DeFi的重要性毋庸置
之前我们学习过二叉查找树,发现它的查询效率比单纯的链表和数组的查询效率要高很多,大部分情况下,确实是这样的,但不幸的是,在最坏情况下,二叉查找树的性能还是很糟糕
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在某些情况下,我们可能需要找出队列中的最大值或者最小值,例如使用一个队列保存计算机的任务,
DeFi是“去中心化金融( decentralized finance )”一词的缩写,通常是指数字资产和金融智能合约,协议和去中心化应用程序(DApps),其
condaconda是一个软件包及其依赖项和环境的管理工具。 适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScrip
堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。 堆的定义 它是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层
深度学习是机器学习的一个方法(神经网络)发展而来。 深度学习(Deep Learning),也称为深度结构学习(Deep Structured Learning
机器学习是人工智能的一个实现途径。 机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。 工作流程 数据集介绍在数据集中一般: 一行数据我们称为一
之前我们实现的符号表中,不难看出,符号表的增删查操作,随着元素个数N的增多,其耗时也是线性增多的,时间复杂度都是O(n),为了提高运算效率,接下来我们学习树这种
线性表线性表是最基本、最简单、也是最常用的一种数据结构。一个线性表是n个具有相同特性的数据元素的有限序列。 线性表的分类:线性表中数据存储的方式可以是顺序存储,
简单排序算法:冒泡、选择、插入,在最坏情况下的时间复杂度都是O(N^2)高级排序算法:希尔、归并、快速、堆 Comparable接口:由于是排序,所以肯定会在元
什么是数据结构?官方解释:数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。大白话:数据结构就是把数据元素按照一
主流搜索引擎搜索引擎的作用:为网站带来流量(网民),带来用户,让网民快速得到目标信息。搜集信息+组织和处理+展示用户。 谷歌:https://www.sogou
一句话概括,Gitcoin 是旨在开源的以太坊悬赏平台,区块链项目可以于此用一定的报酬找到需要开发者,随着平台的发展延伸出了众筹资助、黑客马拉松、社交和教育属性
今年广州的六月,在经历了大雨的洗礼之后,一切都变得更加明朗起来,新的工作,新的人和事。懒惰让我变得更焦虑,焦虑促使我进步,程序员的焦虑大家应该都有共同的感觉,时
说到CPU就好比大脑,那么电源做个恰当的比喻就是心脏,可想而知电源在电脑里面的重要性,我下面直接切入正题,我将会为大家带来简单明了的电源介绍。 电源铭牌电源上的
直入正题! 发展史 log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目
机械硬盘发展至今,从之前的百家争鸣到现在被收购的被收购,收购的收购,只剩几个屈指可数的大厂:东芝、希捷、西数(顺序按首字母)。而如今固态盛行、机械让道的言辞不断
内存的命名我们先说一下内存的命名吧,就以一款科赋DDR4 3200MHz 8GB内存为例,一般放在最前面的是内存品牌名称或内存品牌产品系列名称;“DDR4”的意
主板(Motherboard、湾湾那边叫“主機板”),是PC硬件平台的重要部分,通过电路设计、各个芯片、硬件插槽、I/O接口,来连接包括CPU、显卡、内存、硬盘
光猫光猫是第一道入口,起到光电转换的作用,大部分光猫带有无线功能,可以兼顾光电转换和无线路由器功能。不过: 光猫一般是运营商集团采购,往往注重的是采购成本,性能
相关文件 package.json:包含包的所有依赖信息,包括开发依赖、运行依赖、可选依赖等。 每个依赖都需要指明依赖名称和最低可用版本。 yarn.lock:
相关文件 package-lock.json: npm5的新特性,它描述了生成的确切node_modules树,因此无论中间依赖项更新如何,后续安装都可以生成相
生态相关 unpkg: unpkg is a fast, global content delivery network for everything on n
SSL/TLS历史互联网加密通信协议的历史,几乎与互联网一样长。 1994年,NetScape公司设计了SSL协议(Secure Sockets Layer)的
官网:https://www.hyperledger.org/ Github:https://github.com/hyperledger Hyperledge
参考资料 https://hyperledger-fabric.readthedocs.io/zh_CN/release-1.4/private-data/pr
需求分析现在是一个信息化的高科技时代,许许多多的企业必须紧跟时代步伐,不断创新,才能发展壮大;而企业的发展必然离不开人才队伍的建设,也可以说创新是企业发展的动力
使用fabric-sdk-go操作fabric网络参考资料
使用fabric-sdk-node操作fabric应用开发模型对于业务开发人员而言,开发工作主要分为应用程序的开发和chaincode的开发。chaincode的开发一般是Go语言,应用程序的开发需要SDK,一
python的三个版本区别 web-based installer 是需要通过联网完成安装 executable installer 是可执行文件(*.exe)
Java 8 中的 Stream是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate oper
1997年香港回归,国际看衰香港的声音络绎不绝,一颗浸润在西方社会百年之久的“东方明珠”如何与一个当时还相对贫困的社会主义国家实现融合?看衰、质疑、嘲讽……各种
索罗斯沽空泰铢期货的时机20世纪50年代第二次世界大战结束以来,资本全球化的趋势无法阻挡。当发达国家生产力严重过剩,资本原始积累达到一定程度时,如果没有合理合法
1992年9月16日星期三,这一天注定将载入金融史册,也注定成为了英国金融市场最为黑暗的一天。在这一天,一个贫苦出身、勉强完成了伦敦经济学院经济学课程的匈牙利犹
高阶函数具体到实际的函数来说,高阶函数以其他函数作为输入,或产生其他函数作为输出。高阶函数使得函数的组合成为可能,更有利于函数的复用。熟悉面向对象的读者对于对象
在当今世界,这个文明与野蛮的时代,丛林法则暗流涌动,当货币战取代了世界战,大国合作,小国站一边,金融棋局一步走错,立马陷入经济倒退!金融纷争每一步都是险棋,每一
三十年前,当我们伟大的祖国还徘徊在改革开放门口的时候,在太平洋上爆发了一场规模宏大的战争,无论就其持续时间还破坏程度而言,都远超第二次世界大战中的太平洋战场。它
美国当代作家、演员乔治·卡林的一段话: 我们(美国)是一个好战的国家。我们酷爱战争,因为我们很擅长战争。事实上,我们在这个混蛋的国家里唯一要做的事情:战争。 我
“标准石油”的兴起石油的开发和使用要从照明说起,在19世纪中期,人们照明燃烧用松脂油、鲸油等。 可是这些原料不是易爆炸就是贵到用不起。 而机智的人类又一次克服困
读完“100年金融战争”简史,这个世界真是细思恐极!(转)这个世界的真相,永远都是超出我们想象之外的。今天我们不妨深刻的梳理一下这变幻莫测、错综复杂的世界: 国家是什么?货币是什么?战争是什么? 读完此文你再看世界的视
Git 作为一个源码管理系统,不可避免涉及到多人协作。 协作必须有一个规范的工作流程,让大家有效地合作,使得项目井井有条地发展下去。”工作流程”在英语里,叫做”
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ 使用 .do
镜像和容器镜像是容器的基础,镜像是多层存储的,每一层在前一层的基础上进行的修改,容器同样也是多层存储的,是以镜像为基础层,在其基础上加一层作为容器运行时的存储层
镜像相关1234567891011121314151617181920212223242526# 完整命令格式,[]的都可以省略docker pull [选项]
Moby 官网:https://mobyproject.org/ github: https://github.com/moby/moby 一个致力于推进软件容
Github: https://github.com/coreos/flannel/ Kubernetes的网络模型假定了所有Pod都在一个可以直接连通的扁平网
作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,这就需要一个集群范围内的DNS服务来完成从服务名到ClusterIP的解析。DNS服务在K
扩展kubernetes两个最常用最需要掌握的东西:自定义资源CRD 和 adminsion webhook。 todo 参考资料
24-以Metrics-Server为例学习API聚合机制关于API聚合机制API聚合机制是Kubernetes 1.7版本引入的特性,能够将用户扩展的API注册到kube-apiserver上,仍然通过主kube-a
官网:https://prometheus.io 普罗米修斯的灵感来自于谷歌的Borgmon。它最初是由马特·t·普劳德(Matt T. Proud)作为一个研
123456789101112131415161718192021222324// 显示所有字符集show variables like &
Map: 存取键值对,键不允许重复,可存入一个键为null的对 List: 有序集合,元素可重复,允许null Set: 元素不重复的集合,LinkedHash
Java的String类型和8种基本类型及包装类型中,除了Float和Double都实现了常量池,即将-128到127数值自动添加进常量池中,char是0到12
一个正常的下单流程是:创建订单-> 扣DB库存 -> 支付 秒杀场景面对的是高并发、高可用,常用流程为:预扣库存 -> 通过MQ异步创建订单
v0.6特性 结构简单:应用-成员管理-Peer的三角形关系,主要业务功能都集中在Peer节点 架构问题:由于peer节点承担了太多的功能,所以带来扩展性、可维
案例:简单的web服务器1234567891011121314151617181920212223242526272829package mainimport
反射基本操作12345678910111213141516171819202122232425262728293031323334353637383940414
2007年开始设计 2009年11月10日,Google将Go语言以开放源代码的方式向全球发布 2015年8月19日,Go1.5发布,本次更新中移除了“最后残余
CSPCSP指顺序通信进程(communicating sequential processes)或被简称为CSP。 CSP是 一种现代的并发编程模型,在这种编
日期12345678910111213141516171819202122232425262728293031323334package mainimport
命名规范变量名、函数名、常量名采用驼峰法 如果变量名、函数名、常量名首字母大写,则可以被其他的包访问,如果首字母小写,则只能在本包中使用,可以理解为首字母大写是
12345678910111213141516171819## 进入目录cd /usr/local## 下载sudo wget https:
链上代码,简称链码,分为用户链码和系统链码。 链码被部署在Fabric网络节点上,运行在隔离沙盒中,目前是Docker容器中,并通过gRPC协议与相应的Peer
准备工作 docker docker-compose go语言环境 git 安装流程 fabric源码下载 1234567891011## 新建GOPATH目录
羊毫/狼毫/兼毫区别这是三者最简单的定义,同时也道出了这三种笔的根本区别: 羊毫毛笔,以山羊毛制作的毛笔,以江浙一带的羊毫最好; 狼毫笔,以黄鼠狼尾毛制作的毛笔
书法史书法史著作是最重要的,通过研读,不仅可以了解书法形成的源流、字体嬗变的内在逻辑、各朝代的时代风貌、青史留名的伟大书家,还可以为你的个性化审美观念的形成提供
系统理论1. 《篆刻学》-邓散木2.《篆刻学》-李刚田-马士达关于《篆刻学》这个名字,最早的当然是邓散木先生的,但如果细读就会发现,这是典型的“课徒稿”,整部书
sudo找不到命令问题:普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo
账本账本由世界状态和区块链两部分组成: 世界状态 世界状态存储的是账本当前值,作用是能够快速获取账本最新值,该值还有一个属性版本号,版本号从0开始,每当状态更新
不买泥料细腻、泛贼光的壶 很多壶远看锃光瓦亮,近看泥料细腻到没有颗粒感,这种壶基本不会是原矿紫砂的,可能放过玻璃水或者其他添加剂了。这样泥料的壶几乎是养不出来的
总体分为全手工、半手工、机车、手拉胚、灌浆。其中灌浆壶和手拉胚因为成形时候需要加入玻璃水等物质,或是目数非常大,成形的壶已经丧失了透气性,所以这两种成形工艺做出
RLP 编码存储欺诈证明的运作原理叔块Difficulty Bomb(难度炸弹)前期通过PoW建立起一套可信赖的数字加密货币体系,后期将基于该货币转到PoS体系
重入问题(Re-Entrancy)以太坊智能合约能够调用和利用其他外部合约的代码。合约通常也处理以太币,因此可以将以太币发送到各种外部用户地址。调用外部合约或将
ABI全称应用二进制接口说明。 调用一个函数的数据的前4个字节,指定了要调用的函数。 函数名称加上由括号括起来的参数类型列表,参数类型间由一个逗号分隔开,且没有
可支付回退函数合约可以有一个未命名的函数。这个函数不能有参数也不能有返回值。 如果在一个到合约的调用中,没有其他函数与给定的函数标识符匹配(或没有提供调用数据)
pragmas关键字 pragma 是版本标识指令,用来启用某些编译器检查, 版本 标识pragma 指令通常只对本文件有效,所以我们需要把这个版本 标识pra
茅台迎宾酒,自2000年上市以来,至今已经有19年之久,2017年销售量达9000余吨,成为继飞天茅台、茅台王子酒之后的茅台股份又一大单品。茅台迎宾酒,国人的待
删除K8s Namespace时卡在Terminating状态 问题描述:想要删除K8s里的一个Namespace,结果删除了所有该Namespace资源之后使
本篇理解认证策略和双向TLS认证。 未启用全局双向TLS带sidecar和不带的都能通讯。 创建三个命名空间foo、bar、legacy,前两者部署带sidec
默认istio-v1.0安装了prometheus。 访问UI有两种方式 端中转发,需要iptable支持 prometheus服务的NodePort方式暴露
默认istio-v1.0安装了prometheus和Granfana。 访问UI有两种方式 端中转发,需要iptable支持 1$ kubectl -n ist
默认istio-v1.0安装了jaeger作为分布式链路追踪实现。 访问UI有两种方式 端中转发,需要iptable支持 1$ kubectl port-for
该篇演示istio的流量镜像能力。 流量镜像就是会将实时流量的副本发送到镜像服务。 目标 强制所有流量发送到测试服务的v1版本 应用规则将部分流量镜像到v2 部
准备工作 同步时间,对日志服务极其重要 请增加文件描述符的最大数量。您可以使用ulimit -n命令检查当前数量。如果您的控制台显示1024,则它不足。请在/e
Fluentd是用于统一日志记录层的开源数据收集器。 Fluentd允许您统一数据收集和使用,以更好地使用和理解数据。 一个Fluentd 事件的生命周期下面的
安装Kiali附件 本篇安装Kiali附件,基于图形界面可视化mesh。 安装 创建一个Secret 定义之后用来登录Kiali的用户名和密码 123$ KIA
该任务演示如何配置断路器,对于连接、请求、离群值检测。 断路器是创建弹性微服务应用程序的重要模式。断路器使您可以编写的应用程序,以限制故障,延迟尖峰和网络特性的
该任务演示,怎么设置请求超时。 使用bookinfo项目,初始化所有都使用v1版本,配置如下: 1kubectl apply -f samples/b
该篇是演示如何迁移TCP流量,从一个服务的版本到另一个版本。 目标 路由100%的TCP流量到tcp-echo:v1 路由20%的TCP流量到tcp-echo:
该任务演示怎样缓慢迁移流量从一个版本到另一个版本,如从一个老版本到新版本升级。你能配置流量到哪个版本服务的百分比。 如下演示中将会发送50%到reviews-v
准备前提 该演示还是采用bookinfo项目,状态为《02-流量管理-03-故障注入》完成后的状态,请求流如下: productpage → reviews:v
准备服务该示例由如下四个微服务组成: productpage-v1: 主服务,展示书的简介,并调用details和reviews服务获取书的详细信息和书评信息。
该任务演示使用Istio Gateway如何配置暴露服务到service mesh外。 1. 部署httpbin服务 注意是否开启了自动sidecar注入 12
中国有句古语“开门七件事,柴米油盐酱醋茶”,由此可见,茶,对中国人来说是多么的重要。 紫砂所用的泥料呢不是简单的泥土和水,而是经过层层打磨、过筛、搅拌、炼泥等好
汝窑,中华传统制瓷著名工艺之一,中国北宋时期主要代表瓷,五大名窑之一,因产于汝州而得名,窑址在今河南省宝丰县大营镇清凉寺村,汝瓷位居宋代“汝、官、哥、钧、定”五
1. 西施壶原名西施乳,言壶之形若美女西施之丰乳,流短而略粗,把为倒耳之形,盖采用截盖式,壶底近底处内收,一捺底,后人觉“西施乳”不雅,改称“倒把西施壶”。 2
汝窑是宋代五大名窑之首,因产于汝州而得名,中国陶瓷史上素有“汝窑位魁”之称,釉色主要有天青釉和月白釉。汝窑茶具,还是重在养,经过日积月累的沉淀,其开片也更加自然
OpenShift v3是一个分层系统,旨在尽可能准确地公开底层Docker格式的容器映像和Kubernetes概念,并着重于开发人员轻松编写应用程序。 与Op
DevOps 概述DevOps 是一组用于促进开发和运维人员之间协作的过程、方法和系统的统称。 DevOps 提倡通过一系列的技术和工具降低开发和运维人员之间的
OpenShift是一个开源容器云平台,Openshift底层以Docker作为容器引擎驱动,以K8s作为容器编排引擎组件,并提供了开发语言,中间件,DevOp
要成为Istio服务网格的一部分,Kubernetes集群中的Pod和Service必须满足以下要求: 命名服务端口:服务端口必须命名。端口名称键/值对必须具有
重要的系统模型会影响您的整体Istio部署模型。本页讨论了每种模型的选项,并描述了如何配置Istio来解决它们。 集群模型您的应用程序的工作负载实例在一个或多个
Istio可以轻松创建具有丰富路由,负载平衡,服务到服务的身份验证,监视等功能的已部署服务网络-所有这些都无需更改应用程序代码。 Istio致力于以最小的资源开
黑茶中最为有名的两大产地当属四川雅安和湖南安化了,其中雅安的黑茶通常称为雅安藏茶,主要供往藏区和出口;而安化的黑茶既有出口也有内销,还作为贡品上贡古代皇帝作为贡
Istio为网格内的所有服务通信生成详细的遥测。这种遥测功能提供了服务行为的可观察性,使运维人员可以对应用程序进行故障排除,维护和优化,而不会给服务开发人员带来
老酒鬼对茅台产品都是比较熟悉的,但是并不是茅台的所有产品酒友们有能够喝得起,茅台王子确实深得老酒友们的钟爱,虽然没有飞天的天价,但是还有点点飞天的感觉,不过只是
年年岁岁花相似,岁岁年年人不同。618将至,各类大促拉开帷幕。又是夏天,各位在剁手血拼的同时,有喝茶习惯的或者将要加入茶友大军的,不妨关注一下。那么,究竟如何选
将整体应用程序分解为原子服务可带来各种好处,包括更好的敏捷性,更好的可伸缩性和更好的重用服务能力。但是,微服务也有特殊的安全需求: 为了抵御中间人攻击,他们需要
Istio的流量路由规则使您可以轻松控制服务之间的流量和API调用。 Istio简化了诸如断路器,超时和重试之类的服务级别属性的配置,并使其易于设置重要任务(如
我国前后共进行了五次国家级的酒类评选活动。评选出多种“国家级名酒”和“国家级优质酒”。从第二届开始给予获奖的酒并分别授予奖状、奖章,全国名酒授金质奖章、全国优质
常听人说四大名酒、八大名酒、十七大名酒,却少有文章完整地写过他们的前世今生。这些曾经风光无限的名酒,有的继续书写着辉煌,有的却几度易主,物是人非。 争气的如洋河
中国,是茶的故乡。在我国,拥有的茶叶种类十分丰富,各种类之间区别甚大。当代茶人根据不同的发 酵程度,将众多茶叶分为六类,即绿茶、白茶、黄茶、青茶、红茶和黑茶。这
冲泡步骤冲泡普洱茶和冲泡绿茶不同,它有自己的冲泡方法,下面介绍冲泡普洱茶的一般步骤和方法。 撬茶:把茶刀从茶饼侧面沿边缘插入,向上用力,将茶饼撬开。 取茶:将撬
普洱熟茶是以毛茶为基础经过人工渥堆发酵制作而成的,虽然说起来就是一句话的事儿,但其实熟茶的制作工艺却是在1970年代才被人工掌握的,而直到今日,优质熟茶的制作依
茶叶这个东西不像手机有软件可以跑分,其品质的优劣,目前还没有一个能被大部分人接受的标准化的评判方法,而且滋味这个问题也会因个人的品饮习惯有极大的差异,这里只能谈
今天这篇文章就是整个系列的第一篇,主要介绍普洱茶的基本概念,大部分内容来源于书本,网络上关于茶叶的知识,其实和医疗信息差不多,真假参半,也不可全信…… 什么是普
Istio是一个完全开源的Service Mesh实现,可以透明地分层到现有的分布式应用程序上。 也是一个平台,包含让你集成日志平台、遥测、策略系统的API。
bookinfo架构简介官方提供的bookinfo示例,展示一本书的信息,用来演示istio特性。 该示例由如下四个微服务组成: productpage: 主服
在kubernetes-1.5上部署istio-1.0istio是一个service mesh开源实现,由Google/IBM/Lyft共同开发。 下载并配置环境变量123456789101112131415161
在讲解 Istio 如何将 Envoy 代理注入到应用程序 Pod 中之前,我们需要先了解以下几个概念: Sidecar 模式:容器应用模式之一,Service
Istio简介Istio是一个Service Mesh开源项目,是Google继Kubernetes之后的又一力作,主要参与的公司包括Google,IBM和Ly
简介Service mesh 又译作 “服务网格”,作为微服务时代下服务间通信的基础设施层。它负责在复杂的服务拓扑中可靠的传递请求,通常通过一组轻量级的透明代理
零知识证明例子关于零知识证明,概念并不难理解,我们以一个老掉牙的故事作为例子。 阿里巴巴被强盗抓住,为了保命,他需要向强盗证明自己拥有打开石门的密码,同时又不能
引言我认为区块链很难称为一个 “技术”。它更像是一个领域,包罗万象。或者形而上地说,区块链更像一个有机体,融合了各种不同的理论技术。 零知识证明是构建信任的重要
IPFS是一个点对点的分布式网络传输协议,对标HTTP,它是一个协议,不是区块链。 Filecoin是一个点对点分布式的存储网络,同时也是一个区块链项目,他是I
DApp 的缺陷对区块链有所了解的同学,知道区块链维护的是一个中立的(去中心)、共同信任、难以篡改的数据库、智能合约创造的是一个完全透明(不被干扰)的运行规则,
如果说区块链的发展,每年评选一个年度币种的话 2009-2016 毫无疑问比特币 2017 - 以太坊? 2018 - EOS? 2019 - Cosmos?
Cosmos简介官网:https://cosmos.network Cosmos(准确来讲应该是 Cosmos Hub)是 Tendermint 团队推出的一个
Kusama测试网Kusama 网络是波卡上线前的一个测试网络,其logo是只金丝雀。可以在波卡上线前提前排除可能出现的问题,来保证主网上线时能顺利运行。 Ku
Polkadot是什么Polkadot是由Web3基金会创立的一个开源项目,旨在通过连接私链、联盟链、公链、开放式 网络和预言机以及尚未创建的未来技术。Polk
作为铺垫,需要讲解以下三个概念 多重签名技术多重签名技术(multisig)是多个用户同时对一个数字资产进行签名。可以简单地理解为,一个账户多个人拥有签名权和支
区块链很慢,也很贵。如要转出比特币,接收方需要花好几个小时候才能收到,且发送人还需要支付很高的交易费用。就这样的情况,区块链还怎么接管世界? 任何试图解决区块链
2017年5月,EOS团队在Github上发布了EOS白皮书。 2017年6月,EOS通证开始ICO并持续341天。 2018年6月,EOS主网上线。 EOSI
一、基础设置1.1 环境说明12Centos 7.5openldap 2.4.44 1.2 关闭防火墙和selinux1234setenforce 0sed -
02-Jenkins+kubernetes实现CI/CD:Pipeline配置Jenkins Pipeline 介绍要实现在 Jenkins 中的构建工作,可以有多种方式,我们这里采用比较常用的 Pipeline 这种方式。Pipelin
01-Jenkins+kubernetes实现CI/CD:部署jenkins持续构建与发布是我们日常工作中必不可少的一个步骤,目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程,然而传统的 Jenkins一主多从
新增用户1234567891011121314// 新建用户,并新增同名组,且生成一个home目录useradd minfy/&#
CentOS 查看系统是否已经安装git1git --version yum 安装git 1yum install git 安装成功 1yum --versio
防火墙CentOS6关闭防火墙使用以下命令: 1234// 临时关闭service iptables stop// 禁止
RPM诞生最早期时,软件包是一些可以运行的程序组成的集合,可能还要加上若干配置文件和动态库。例如,程序员将针对某个平台编译好的二进制文件、程序所依赖的动态库文件
Debian/UbuntuDebian 和 Ubuntu 都是目前较为流行的 Debian 系的服务器操作系统,十分适合研发场景。 Debian 是由 GPL
uptimerobot免费的服务监控平台 虽然国内也有不少提供免费服务监控的平台,但却都存在不少限制。比如监控宝免费版限额6个网站,而360监控最小频率为10分
Pod资源调度API Server在接受客户端提交Pod对象创建请求后,然后是通过调度器(kube-schedule)从集群中选择一个可用的最佳节点来创建并运行
k8s架构 先从一张大图来观看一下K8S是如何运作的,再具体去细化K8S的概念、组件以及网络模型。 从上图,我们可以看到K8S组件和逻辑及其复杂,但是这并不可怕
Kubernetes设计了一种网络模型,要求无论容器运行在集群中的哪个节点,所有容器都能通过一个扁平的网络平面进行通信,即在同一IP网络中。需要注意的是:在K8
官网: https://helm.sh/ apps官网: https://hub.kubeapps.com/ 为什么要有Helm?每个成功的软件平台都有一个优秀
18-Dashboard访问和kubeconfig配置在k8s中 dashboard可以有两种访问方式:kubeconfig(HTTPS)和token(http) token方式12345678910## 创建名为
API Server作为Kubernetes网关,是访问和管理资源对象的唯一入口,其各种集群组件访问资源都需要经过网关才能进行正常访问和管理。每一次的访问请求都
16-暴露服务:Ingress和Ingress-Controller-Traefik本文介绍用traefik作为Ingress Controller的实现。 Traefik简介官网: https://traefik.io/ Traefik是一个
15-暴露服务:Ingress和Ingress-Controller-Nginx目录 Ingress-Controller-Nginx运行原理 安装Ingress-Controller-Nginx 配置Ingress基于虚拟主机的转发规则
Service的概念Pod存在生命周期,有销毁,有重建,无法提供一个固定的访问接口给客户端。并且为了同类的Pod都能够实现工作负载的价值,由此Service资源
13-Pod控制器:StatefulSet及Headless ServiceHeadless Service 简介有时不需要或不想要Service来负载均衡到多个Pod时,可以通过指定 Cluster IP(spec.clusterIP
在日常单机甚至集群状态下,我们需要对一个应用进行配置,只需要修改其配置文件即可。那么在容器中又该如何提供配置 信息呢???例如,为Nginx配置一个指定的ser
ConifgMap解析configmap是让配置文件从镜像中解耦,让镜像的可移植性和可复制性。许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。这些
存储卷概念为了保证数据的持久性,必须保证数据在外部存储。 在docker容器中,为了实现数据的持久性存储,在宿主机和容器内做映射,可以保证在容器的生命周期结束,
什么是DaemonSet?DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod
08-Pod控制器:Deployment及ReplicaSetPod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无效,则会重新新建pod的资源。
什么是Pod?Pod是kubernetes中你可以创建和部署的最小也是最简的单位。映射到docker容器上,一个pod是一组密切相关的容器,只是被k8s用pod
容器无疑是近年来云计算中最火热的关键词。随着docker的大热,docker、oci、runc、containerd等等名词也逐渐传播开来。这么多的名词,也容易
在 Kubernetes 系统中,Kubernetes 资源对象是持久化的条目。Kubernetes 使用这些条目去表示整个集群的状态。通过创建对象,可以有效地
API版本结构获取当前kubernetes集群支持的API versions 1$ kubectl api-versions 以我当前集群v1.15为例,支持A
一个集群系统管理离不开监控。 Docker原生监控 docker ps/top/logs:简单命令 docker stats:默认以流式方式输出 docker
123456789101112131415161718192021222324# 查看资源对象详细配置kubectl get pod myapp-848b5b8
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台
Docker监控方案:influxDB+cAdvisor+GrafanacAdvisor:用于数据采集,是 Google用来监控他们基础设施的一款工具,这个工具厉害之处不仅能监控docker容器的实时信息,而且还能将你的cadvis
为什么需要分片?当MongoDB复制集遇到下面的业务场景时,你就需要考虑使用Sharded cluster 存储容量需求超出单机磁盘容量 活跃的数据集超出单机内
简介Mongodb复制集是将数据同步到多个服务器的过,复制集提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。
MongoDB的应用场景在网上搜索了下,很少介绍关于传统的信息化应用中如何使用MongoDB数据库方面的内容,比较多的还是介绍日志的采集和存储,小文件的分布式存
什么是NoSQL?NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 常见应用场景 存储一些监控数据,No schem
请使用mongodb 3.2或以上版本进行学习,或者直接从3.4开始。另外,百度出来的中文资料,请查看15年及以后的信息,可以少走很多弯路。另外,建议使用lin
Sprin有很多不同的项目,其中就有对AMQP的支持。 Spring AMQP的页面:http://spring.io/projects/spring-amqp
04-SpringDataElasticsearch操作Elasticsearch提供的Java客户端有一些不太方便的地方: 很多地方需要拼接Json字符串,在java中拼接字符串有多恐怖你应该懂的 需要自己把对象序
Elasticsearch采用Rest风格API,因此其API就是一次http请求,你可以用任何工具发起http请求 概念 说明 索引(index) indic
说实话,es 性能优化是没有什么银弹的,啥意思呢?就是不要期待着随手调一个参数,就可以万能的应对所有的性能慢的场景。也许有的场景是你换个参数,或者调整一下语法,
MySQL-5.7 拉取镜像 1docker pull mysql:5.7.19 创建容器并运行 123456docker run -p 3306:3306 -
ElasticSearch 设计的理念就是分布式搜索引擎,底层其实还是基于 lucene 的。核心思想就是在多台机器上启动多个 es 进程实例,组成了一个 es
Spring Cloud生态架构 Spring Cloud Alibaba示例架构 Spring Cloud Netflix示例架构 参考资料
Jackson 对象转json 12345678910111213private ObjectMapper mapper = new ObjectMa
前言一个系统发展初期,往往都是单机系统。应用和数据库在一台服务器上,随着业务的发展,访问量的增大,一台服务器性能就会出现天花板,往往已经难以支撑业务量了。这个时
前言RESTful是一种设计模式,或者说是一种设计规范,它并没有太多强制性的要求之类的,实际上它有的只是几个原则,当一个应用满足这些原则的时候,可以认为它是RE
在写《关于Google发展史》文章的时候,笔者满以为就凭Google的名气,随手就能找到这家公司的各种资料。 但事实却是:你很容易就能找到Google上市以后的
注:本文要求读者对Ansible和 Jenkins有一定的认识。 题记: 幸福的家庭都是相似的 不幸的家庭各有各的不幸 行业内各巨头的自动化运维架构都各种功能各
开发流程方案 物理机运行服务:从gitlab拉代码在jenkins构建后,传送构件到部署物理机启动 容器运行服务:从gitlab拉代码在jenkins构建后,推
11-Spring Security Oauth2认证流程Spring Security Oauth2的不同授权方式的认证流程大致可抽象为两部分: 获取token 通过token请求资源 简单实现源码传送门](http
关于oauth2,其实是一个规范,本文重点讲解spring对他进行的实现,如果你还不清楚授权服务器,资源服务器,认证授权等基础概念,可以移步理解OAuth 2.
常用编码方式 URLEncode url编码主要是为了解决一些url中的一些特殊字符和歧义字符或者中文字符的传输问题 编码(URLEnCode): 数字和字母不
我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题: 缓存穿透 缓存并发 缓存失效 缓存穿透我们在项目中使用缓存通常都是先
是否需要分说到数据库分库分表,不能一味的追求,我们要明白为什么要进行分库分表才是最终目的。现在网上一些人鼓吹分库分表如何应对了多大数据,却不知针对很多人的业务来
高并发下一般采用柔性事务,柔性事务是指非强一致性,而是通过某种方式达到最终一致的事务方案,根据应用场景不同,主要有以下三种: 可靠消息的最终一致性方案 TCC两
在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,
CDN服务器其实是一种集群页面缓存服务器,其目的就是尽早的返回用户所需要的数据,一方面加速用户访问速度,另一方面也减轻后端服务器的负载压力。 CDN的全称是Co
配置文件结构 nginx配置文件主要分为四个部分: main(全局设置) http (http服务器设置 ) upstream(负载均衡服务器设置) serve
access_log访问日志配置1234语法格式1: access_log path [format [buffer=size] [gzip[
location块语法规则: location [=||*|^~] /uri/ { … } = 表示精确匹配,这个优先级也是最高的 ~ 表示区分大小写的正则匹配
新建反向代理服务器配置文件conf/reverse-proxy.conf 在conf/nginx.conf中的http块中包含conf/reverse-prox
虚拟主机配置区分不同的网站有三种方式: 域名区分 端口区分(不常用) ip区分(不常用) 基于域名区分配置 一般情况下会在conf下新建一 个vhost目录 然
默认安装123451. 下载源码: wget http://nginx.org/download/nginx-1.14.
vuex是什么?先引用vuex官网的话: Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规
路由跳转前做一些验证,比如登录验证(未登录去登录页),是网站中的普遍需求。对此,vue-router 提供的导航守卫可以方便地实现。导航守卫主要用来通过拦截路由
动态路由上面我们定义的路由,都是严格匹配的,只有router-link 中的to属性和 js 中一条路由route中 path 一模一样,才能显示相应的组件co
路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容。Ho
在不同组件之间进行动态切换是非常有用的,如tab页切换 可以通过 Vue 的 <component> 元素加一个特殊的 is 特性来实现: 12&l
简单来说,Slot是对组件的扩展,通过slot插槽向组件内部指定位置传递内容 入门示例1234567891011121314151617181920212223
先解读下标题 子组件通过调用$emit来触发一个自定义事件 使用方通过v-on监听子组件的自定义事件做出响应 子组件触发事件时,可传递数据到使用方 使用示例功能
使用示例一个组件默认可以拥有任意数量的 prop,任何值都可以传递给任何 prop。 静态赋值和动态赋值 1234567891011121314151617&#
组件名在注册一个组件的时候,我们始终需要给它一个名字。 使用 kebab-case 当使用 kebab-case (短横线分隔命名) 定义一个组件时,你也必须在
v-bind作用:将这个元素节点的 title 属性和 Vue 实例的 tip 属性保持一致 123456789101112<div id =
目标最近在学习vue的过程中发现网上的vue教程总有些不同的问题,有的教程上来只说语法,有的教程上来就用vue-cli来建项目,但是vue-cli是整合了web
07-Maven配置文件setting.xml详解12345678910111213141516171819202122232425262728293031323334353637383940414243444
12345678910111213141516171819202122232425262728293031323334353637383940414243444
采用版本Nexus3.x支持Docker、Maven、Yum、PyPI等私有仓库。 默认访问地址:http://ip:8081 默认账号密码:admin/adm
下图是hadoop生态系统,集成spark生态圈 下面将分别对以上各组件进行简要介绍 HDFS(分布式文件系统)源自于Google的GFS论文,发表于2003年
Maven属性通常通过元素自定义maven属性,然后在pom文件的其他地方使用属性名的方式引用该属性。另外maven还有一些内置属性:内置属性{b
插件目标上面提到Maven的核心仅仅是定义了抽象的生命周期,具体的任务交由插件完成的,插件以独立的构件形式存在,Maven会在需要时下载。对于插件本身,为了能够
Maven的生命周期就是为了对项目的所有构建过程进行抽象和统一,包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等步骤。也就是说所有项
聚合项目 其pom.xml中package要声明为pom 其pom.xml中modules元素及module声明需要聚合模块的pom.xml的路径,一般用相对路
Docker最初是dotCloud公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次
FORM 指定基础镜像该指令是Dockerfile必备的,且是第一条指令,指定以什么镜像为基础镜像进行定制。 如服务类镜像:nginx、redis、mongo、
前言Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费
前端生态技术选型用途 | 选型 | |—|—|—|—开发框架| Vue | React | Angular包管理器| npm | yarn | bower模块打
Session机制传统登录的方式是使用 session + token。 token: 是指在客户端使用 token 作为用户状态凭证,浏览器一般存储在 loc
Spring-18-内置的BeanPostProcessor总结Spring内置了一些很有用的BeanPostProcessor接口实现类。比如有AutowiredAnnotationBeanPostProcessor、Re
Spring-17-BeanPostProcessor接口总结Spring内部提供了一个BeanPostProcessor接口,这个接口的作用在于对于每一个新构造的实例可以做一些自定义的修改。比如如何构造、属性值的修改、构
在我们刚开始接触Spring的时候,要定义bean的话需要在xml中编写,比如: 1<bean id="myBean" cl
Spring-15-BeanDefinitionReaderBeanDefinitionReader接口目前有3种实现 GroovyBeanDefinitionReader:groovy文件的读取器 Properties
Spring-14-BeanDefinitionRegistryPostProcessorBeanDefinitionRegistryPostProcessor跟其他PostProcessor一样,见名知意,其提供了允许我们操作BeanDefinit
Spring-13-BeanDefinitionRegistry在介绍本文主体BeanDefinitionRegistry之前,先看一下BeanDefinition,两者有紧密的联系。 BeanDefinition接口123
条件注解总结 条件注解 对应的Condition处理类 处理逻辑 @ConditionalOnBean OnBeanCondition Spring容器中是否存
前文多次提到自动配置原理为判断classpath下是否存在相应框架的标志性的Class,如果存在就向Spring IOC容器中注入整合的配置类,否则就skip,
Spring Boot-19-自动化配置的注解开关原理有些自动化配置类,需要加上Enable*之类的注解开关的情况下才会生效,如@EnableCaching等,其实该类注解中都是通过@Import注解来导入相应的标
1. node.js和npm环境安装2. 安装cnpm淘宝镜像1npm install -g cnpm --registry=https:/
CP-20-ConcurrentHashMap-78实现本文目录 Java7 ConcurrentHashMap Java8 ConcurrentHashMap Java7 ConcurrentHashMap采用分段
探讨数据库的数据存储方式,其实就是探讨数据如何在磁盘上进行有效的组织。因为我们通常以如何高效读取和消费数据为目的,而不是数据存储本身。在RDBMS领域,因为键与
本文思路 介绍HBase的两种读取模式:Get与Scan Client如何发送请求到对应的RegionServer RegionServer侧如何处理一次读取请
HBase-03-Flush与CompactionFlush与Compaction其实属于Write流程的继续,所以本文应该称之为”Write后传”。在2.0版本中,最主要的变化就是新增了In-memory F
如果将上篇内容理解为一个冗长的”铺垫”,那么,从本文开始,”剧情”才开始正式展开。本文基于所给出的样例数据,介绍了将数据从Client写到RegionServe
这是HBase入门系列的第1篇文章,介绍HBase的数据模型、适用场景、集群关键角色、建表流程以及所涉及的HBase基础概念,本文内容基于HBase 2.0 b
CP-18-ThreadPoolExecutor和ExecutorsExecutor继承图 Executor接口很简单只有一个execute方法 ExecutorService是Executor的子接口,主要增加了可以获取返回值
Java的线程是映射到操作系统的线程的。线程之间切换上下文是需要代价的。操作系统存在多个cpu时,多个线程可真正的实现并行的执行。 自旋锁当一个线程获取到锁后,
CountDownLatchCountDownLatch 这个类是比较典型的 AQS 的共享模式的使用,这是一个高频使用的类。 使用场景我们看下 Doug Le
我们先来看看 Condition 的使用场景,Condition 经常可以用在生产者-消费者的场景中,请看 Doug Lea 给出的这个例子: 12345678
CP-14-通过ReentrantLock来窥探AQS实现目录 JUC-Lock类继承图 AQS结构 ReentrantLock结构 加锁过程 解锁过程 公平锁和非公平锁的区别 ReentrantLock总结 JUC-
反编译未加和加了synchronized关键字的代码块的字节码后,我们发现在加了关键字后的字节码会在其包括的代码块前后多两个指令: monitorenter m
模拟实现一个BlockQueue,实现方法: put: 队列为满时,阻塞线程等待,直到队列不满时才能添加新元素 take: 队列为空时,阻塞线程等待,直到队列不
目录 对象锁/类锁 锁重入 自动释放锁 锁对象的改变问题 对象锁/类锁对象锁:一个类中存在普通成员变量,多个线程中同时运行同一个类实例的实例方法,会共享访问普通
使用场景 分布式消息传递:解耦和生产者和消费者、缓存消息等 网站活跃数据跟踪/用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网
TTLTTL是time to live 的简称,顾名思义指的是消息的存活时间。rabbitMq可以从两种维度设置消息过期时间,分别是队列和消息本身。 注意当队列
生产者角度一篇从生产者角度介绍如何保证消息被正确发送到服务器,如果未正确发送如何处理;本篇博客将从消费者角度介绍三个问题:队列分发消息到消费者的规则、如何确保消
在交换机简介一篇中,通过生产者和消费者都声明同样的交换机同样的队列,可以保证无论生产者还是消费者先运行起来,都不会由于交换机或者队列不存在而出现错误。但是上一篇
RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。 确认机制文档:https://www.rabbitmq.com/confirms.h
KafkaKafka最初由 LinkedIn 公司开发,使用 Scala语言编写,之后成为 Apache 项目的一部分。Kafka主要特点是基于Pull的模式来
Netty是一款高效的NIO框架和工具,基于JAVA NIO提供的API实现。在JAVA NIO方面Selector给Reactor模式提供了基础,Netty结
众所周知,JavaScript是单线程的,也就是任何时刻同时只能有一个线程堆栈在执行,那么对于下面这段代码可能有同学会疑惑这,这个是怎么执行的: 1234567
讲到高性能IO绕不开Reactor模式,它是大多数IO相关组件如Netty、Redis在使用的IO模式,为什么需要这种模式,它是如何设计来解决高性能并发的呢?
SO_BACKLOG设置tcp缓冲区 SO_SNDBUF设置发送缓冲大小 SO_RCVBUF设置接收缓冲大小 SO_KEEPALIVE保持连接 TCP_NODE
一个连接对应一个Channel 一个Channel对应一个ChannelPipe 一个ChannelPipe中有多个ChannelHandler 一个Chann
Netty提供了对心跳机制的天然支持,心跳可以检测远程端是否存活,或者活跃. IdleStateHandler构造函数: 1234567891011121314
在当今比较流行的水平拆分的架构之下,RPC协议很是流行,这样可以使各个项目解耦,使得更加灵活,每个项目之间通过远程调用交互,相互之间定义一个通讯私有协议,然后解
TCP粘包拆包场景TCP编程底层默认实现了粘包和拆包机制。 因为我们在C/S这种传输模型下,以TCP协议传输的时候,在网络中的byte其实就像是河水,TCP就像
流程12345678910111213141516171819202122232425/** * ________________________ _
Server12345678910111213141516171819202122232425262728293031323334353637383940414
官网:https://netty.io/ 12Netty is an asynchronous event-driven network application
Server12345678910111213141516171819202122232425262728293031323334353637383940414
Server端1234567891011121314151617181920212223242526272829303132333435363738394041
Server12345678910111213141516171819202122232425262728293031323334353637383940414
Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个cha
Java NIO是从JDK1.4开始,NIO提供了与标准IO不同的IO工作方式。标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓
BufferBuffer实现 ByteBuffer CharBuffer DoubleBuffer FloatBuffer IntBuffer LongBuff
NP-07-select-poll-epoll浅析select/poll/epoll都可以用来实现IO多路复用机制。但它们本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过
Akka/Erlang的actor模型与Go语言中通过协程Goroutine与通道Channel实现的CSP(Communicating Sequential
前言CSP模型是上个世纪七十年代提出的,用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型。 CSP中channel是第一类对象
并发线程通信策略 共享数据:如java中的同步,锁等机制都是基于共享内存数据实现多线程通信 消息传递:本文将提到的AKKA框架实现的Actor模型就是基于消息传
TCP的建立连接(三次握手)TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如下图所示。 第一次握手
网络中进程之间如何通信进程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进
前言在进行本文之前先普及一些基础知识。 首先一个计算机的内存是划分为用户空间和内核空间的。程序只能使用用户空间的内存。 内核空间主要是指操作系统运行时所使用的用
也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP)。 AOP的基本概念在进行AOP开发前,先熟悉几个概念: 连接
看的午夜场,看完到家都1点半,想想明天还要上班,正常这种通常都不洗刷直接睡觉了,但是今天我一定要趁热写一篇影评否则明天可能就再也写不出来了。 看这个电影之前首先
默认情况下,当存储过程运行出错时,过程会立即终止,并打印系统错误消息。 MySQL错误码关于错误编号和SQLSTATE码:每个MySQL错误都有一个唯一的数字错
MySQL游标简介游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作; 游标有下面这些属性: 游标是只读的,也就是不能更新它; 游标是不能滚
存储过程简介SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指
先介绍一些kubernetes基础的概念 PodPod是Kubernetes最基本的操作单元,包含一个或多个紧密相关的容器,一个Pod可以被一个容器化的环境看作
先想一想,为什么模块很重要?因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。但是,这样做有一个前提,那就是大家必须以同样的方式编写
Spring Boot-17-Win下打包镜像到远程Docker服务器环境准备1. 开启Docker服务端远程访问API要想在windows中操作远程linux中的docker服务进程,那前提是必须开启docker远程API。 C
Spring Boot-16-docker-maven-plugin使用场景使用Spring Boot编写了一个微服务后,如何将构建应用并打包成docker镜像,推送到docker仓库,以供测试环境测试。 docker-maven-
Spring Boot-15-注入自定义Servlet等组件的二种方式以下两种方式都是Servlet 3.0规范中新增的方式。 方式一:注解配置1. 用注解声明组件 Servlet1234567891011121314151617
该配置案例是要CentOS-7中进行的。 1. 新建tomcat.service在/usr/lib/systemd/system下新建tomcat.servic
Systemd 体系Systemd是Linux下的一种init软件,Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启
System V体系发展到今天,大多数基于Linux的操作系统,使用的是System-V风格的init守护进程,换句话说,它们的启动处理由init进程管理,其管
1. BIOS2. /boot/grub/grub.conf此配置文件中指定以下信息 kernel : 指定找哪一个内核 initrd : 内核的引导文件 3.
简介Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据库分库分表访问。 Sh
在互联网时代,随着业务数量的暴增和应用规模的不断扩大,无论是oracle还是mysql这样子的关系型数据库,都会面临服务器CPU、磁盘IO和内存的各种瓶颈问题。
为了提高性能,减少数据库的压力,使用缓存是非常好的手段之一。 Spring 缓存抽象Spring 定义 CacheManager 和 Cache 接口用来统一不
@EnableCaching @EnableCaching: 启用Cache功能 CachingConfigurerSupport: 自定义Cache配置 12
缓存简介缓存,我的理解是:让数据更接近于使用者。 工作机制先从缓存中读取数据,如果没有再从慢速设备上读取实际数据,然后将数据再存入缓存。 缓存什么 那些经常读取
Spring Boot 支持页面与类文件的热部署。 spring-boot-devtools 实现热部署spring-boot-devtools 最重要的功能就
Spring Boot 提供的端点不能满足我们的业务需求时,我们可以自定义一个端点。 本文,我将演示一个简单的自定义端点,用来查看服务器的当前日期和时间,它将返
Health 信息是从 ApplicationContext 中所有的 HealthIndicator接口 的实现类 Bean 中收集的, Spring Boo
基础依赖Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些
Spring Boot-09-Actuator监控端点详解端点分类如果根据端点的作用来说,我们可以原生端点分为三大类: 应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与Spring Boot应用密
前言 注解(Annotation),实际上和属性、方法一样,都是一个类的组成部分,不过对于初学者来说还是有点陌生的,因为注解是给别人用的,而属性和方法都是自己用
目录 Servlet 3.0 新特性概述 异步处理支持 新增的注解支持 可插性支持 ServletContext 的性能增强 HttpServletReques
Spring Boot的自动配置实现由启动类上@SpringBootApplication注解中@EnableAutoConfiguration注解中的@Imp
Spring Boot-07-自定义一个Starter前言众所周知,Spring Boot由众多Starter组成,通常需要某个功能时,直接引入相应Starter,Spring Boot会自动进行相关配置,并将相应
spring-test使用spring的测试框架需要加入以下依赖包: JUnit 4 (官方下载:http://www.junit.org/) Spring T
字符串(string) 哈希类型(hash): 类似于Java中的Map 列表类型(list): 类似于Java中的List 集合(set): 类似于Java中
前言当Redis被当做缓存来使用,当你新增数据时,如果达到了最大可用内存,让它自动地回收旧数据是件很方便的事情。 LRU是Redis唯一支持的回收方法。 最大可
前言MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。 事务可以一次执行多个命令,即原子地执行一个事务中包含的复合操
Redis中数据存储模式 cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效
准备环境 系统环境 系统:CentOS6.9系统 IP和端口划分:要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个
主从模式(master/slaver)解决问题: 主从模式的一个作用是备份数据,这样当一个节点损坏(指不可恢复的硬件损坏)时,数据因为有备份,可以方便恢复。 另
下载redis –> 解压 –> 进入解压目录 –> 编译源码1234$ wget http://download.red
前言Zab的全称是Zookeeper atomic broadcast protocol,是Zookeeper内部用到的一致性协议。ZAB可以说是在Paxos算
前言Paxos偏向于理论、对如何应用到工程实践提及较少。理解的难度加上现实的骨感,在生产环境中基于Paxos实现一个正确的分布式系统非常难。 Raft在2013
角色分类该模式包含下列3个角色: Receiver: 执行具体操作的,操作的具体实现 Command:通用命令抽象,定义命令。其中包含Receiver的引用,执
前言在SpringMVC中使用时,在一次请求Controller时,其中多次调用被HystrixCommand封装的依赖时,如果配置了缓存,除第一次外,后面访问
Hystrix-15-@HystrixCommand注解使用因为使用的是注解方式,所以我们需要设置Aspect 依赖(hystrix-core至少要1.5.9以上) 123456789101112131415<de
Hystrix-14-CircuitBreaker执行流程及源码分析Hystrix中的断路器是如何决策熔断和记实信息的呢?官方提供的执行流程图 每个熔断器默认维护10个bucket,每秒一个bucket,每个blucket记录成
Hystrix-13-HystrixCommand执行流程分析流程图 流程说明流程说明. 每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中. 执行execute()/queue做同步或异步
Command 配置配置类:HystrixCommandProperties 构造Command时通过Setter进行配置 123456789101112131
架构图 上图每个App都要暴露一个Url,用于将自己的依赖调用统计信息的输出。 单个App时,可直接将其Url输入Dashboard进行图形化分析。 采用App
Hystrix-10-SpringMVC整合Hystrix及监控SpringMVC整合使用Hystrix隔离调用依赖,并实现监控 在SpringMVC中需要隔离调用依赖的地方,用Hystrix的Command进行包装调用 H
Hystrix-09-Dashboard监控平台搭建监控平台搭建 Hystrix-dashboard 采用Spring Cloud实现 pom.xml1234567891011121314151617181920
命令调用合并:HystrixCollapser命令调用合并允许多个请求合并到一个线程/信号下批量执行。 使用场景 HystrixCollapser用于对多个相同
降级逻辑命令嵌套适用场景:用于fallback逻辑涉及网络访问的情况,如缓存访问。 依赖调用和降级调用使用不同的线程池做隔离,防止上层线程池跑满,影响二级降级逻
信号量隔离:SEMAPHORE隔离本地代码或可快速返回远程调用(如memcached,redis)可以直接使用信号量隔离,降低线程隔离开销. 使用demo123
请求缓存 Request-Cache请求缓存可以让(CommandKey/CommandGroup)相同的情况下,直接共享结果,降低依赖调用次数,在高并发和Ca
依赖命名:CommandKey每个CommandKey代表一个依赖抽象,相同的依赖要使用相同的CommandKey名称。依赖隔离的根本就是对相同CommandK
简介 实现降级,即重写HystrixCommand的getFallback()方法,其中返回调用依赖失败时返回的降级数据。 除了HystrixBadReques
前言使用HystrixCommand或HystrixObservableCommand 对要调用的依赖服务进行包装后,便具有了依赖隔离和断路器的功能。 Hyst
前言在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执
在使用zookeeper过程中,我们知道,会有dataDir和dataLogDir两个目录,分别用于snapshot和事务日志的输出(默认情况下只有dataDi
前言在zookeeper的zoo.cfg配置文件中,通常有一个必须配置项dataDir。该选项一般用来存储事务日志文件和快照文件。另外zk也提供了一个单独的选项
ZooInspector 下载: 1https://issues.apache.org/jira/secure/
Curator是Netflix公司开源的一个zookeeper客户端,现在是Apache的顶级项目,官网:http://curator.apache.org/
Zookeeper-04-ZkClient基本使用ZkClient简介直接使用zk的api实现业务功能比较繁琐。因为要处理session loss,session expire等异常,在发生这些异常后进行重连。
Watcher机制pom.xml12345<dependency> <groupId>org.apache.zookeeper<&
zookeeper在读写比例为10:1时性能最佳。 每个znode上data的读写都是原子操作。 读是局部性的,即client只需要从与它相连的server上读
单机搭建 下载zookeeper的安装包之后, 解压到合适目录 进入zookeeper目录下的conf子目录,复制zoo_sample.cfg为zoo.cfg
前言Paxos协议在节点宕机恢复、消息无序或丢失、网络分化的场景下能保证决议的一致性,是被讨论最广泛的一致性协议。 Paxos协议同时又以其“艰深晦涩”著称,下
Distributed-07-Paxos协议运行过程前言 二阶段提交还是三阶段提交都无法很好的解决分布式的一致性问题,直到Paxos算法的提出,Paxos协议由Leslie Lamport最早在1990年提出,目
Google Chubby(Zookeeper是其开源版本)的作者Mike Burrows说过这个世界上只有一种一致性算法,那就是Paxos,其它的算法都是残次
Distributed-05-2PC and 3PC前言在分布式系统中,为了保证数据的高可用,通常,我们会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上。为了对用户提供正确的增\删\改\
一致性的重要性分布式领域CAP理论告诉我们,任何一个分布式系统都无法同时满足Consistency(一致性)、Availability(可用性)、Partiti
前言 BASE理论:BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consi
前言 CAP原理:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition toler
CAP理论CAP理论作为分布式系统的基础理论,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partiti
ECMAScript主要版本 1999年12月 :ECMAScript 3.0 2011年06月 :ECMAscript 5.1 完善了ECMAScript 3
通信层与dubbo的结合从上面可以了解到如何对不同的通信框架进行抽象,屏蔽底层细节,统一将逻辑交给ChannelHandler接口实现来处理。然后我们就来了解下
客户端同步调用和异步调用的实现首先设想一下我们目前的通信方式,使用netty mina等异步事件驱动的通信框架,将Channel中信息都分发到Handler中去
目前dubbo已经集成的有netty、mina、grizzly。先来通过案例简单了解下netty、mina编程(grizzly没有了解过) Netty和mina
服务引用集群容错实现Protocol要解决的问题就是:根据url中指定的协议(没有指定的话使用默认的dubbo协议)对 外公布这个HelloService服务,
服务引用入口Dubbo利用DubboNamespaceHandler在Spring中对自己的xml配置的命名空间进行解析,其中将服务引用相关配置解析到Refer
服务端中接口实现到Invoker的转换源码解析前面说过有三种类型的Invoker: 服务端本地执行的invoker 远程通信执行的invoker 集群版的远程执
服务发布入口Dubbo利用DubboNamespaceHandler在Spring中对自己的xml配置命名空间进行解析,其中关于服务发布的配置解析到了Servi
本篇分别介绍下Invoker、ProxyFactory、Protocol、Exporter的概念 Invoker概念 一个可执行的对象,能够根据方法名称、参数得
Spring-xml标签解析用过Spring就知道可以在xml文件中进行如下配置: 12345<context:component-scan base-p
扩展点自动激活Dubbo配置模块中,扩展点均有对应配置属性或标签,通过配置指定使用哪个扩展实现。比如采用协议: 1<dubbo:protocol name
为什么要设计Adaptive?注解在类上和注解在方法上的区别?adaptive设计的目的是为了识别固定已知类和扩展未知类。 注解在类上代表人工实现,实现一个装饰
功能介绍dubbo的扩展机制和java的SPI机制非常相似,但是又增加了如下功能: 可以方便的获取某一个想要的扩展实现,java的SPI机制就没有提供这样的功能
JDK的SPI【传送门】 Dubbo的SPI Dubbo的SPI的思想跟JDK的SPI是一样,但提供了更丰富的功能,如延时根据运行时协议加载具体实现类、AOP等
【转】Dubbo架构设计详解 https://dubbo.apache.org/zh/docs/v2.7/dev/design/
spring-bootSpring boot 主要的库,提供了支持 Spring Boot 其他部分的功能,其中包括了: 在SpringApplication类
Spring Boot应用程序一般启动代码如下:123456789import org.springframework.boot.SpringApplicati
Spring Boot-03-日志系统-logback配置自定义日志配置由于日志服务都在ApplicationContext创建前就初始化了,它并不是必须通过Spring的配置文件控制。因此通过系统属性和传统的Spri
Geth的Console是一个交互式的Javascript执行环境,在这里面可以执行Javascript代码,其中>是命令提示符。 在这个环境里也内置了一
Geth客户端安装Geth,它是一个命令行界面,执行在Go上实现的完整的以太坊节点。Geth得益于Go语言的多平台特性,支持在多个平台上使用,比如:win、li
环境搭建 安装Node 安装Truffle,是一个基于node.js的开发Dapp框架 1sudo npm install -g truffle 安装Ganac
什么是验证者?Validator:即验证者,是 PoS 共识过程的参与者(就像 PoW 共识中提交工作量证明的矿工)。共识时可以做提议者(proposer)或见
诞生 2013年末,以太坊创始人Vitalik Buterin发布以太坊白皮书,启动项目。 2014年2月,Vitalik在迈阿密比特币会议上第一次公布了以太坊
计算量分析Hash值是由数字和大小写字母组成的字符串,每一位有62种可能(26个大写字母、26个小写字母、10个数字),假设每个字符出现的可能性均等的,那第一位
比特币矿工节点会为内存交易池中所有未被确认的交易生成一个优先级,在选择打包进候选区块时会根据优先级选择交易。 如果区块中有足够的空间,高优先级的交易行为将不需要
挖矿奖励挖矿的奖励分为两种类型: 创建区块的Coinbase奖励 该区块包含的所有交易的手续费 其中创建区块的奖励210,000个块后减半,因为大约每10分钟产
Merkle树在比特币网络中,不是每个节点都有能力储存完整的区块链数据,受限于存储空间的的限制,很多节点是以SPV(Simplified Payment Ver
比特币交易在比特币网络中广播传送时,每个比特币客户端收到交易后,都会先进行验证,验证交易有效时,才再继续传送。验证就是通过执行解锁脚本和锁定脚本执行来进行的。
警告消息并不经常使用,但在大多数节点上都有此功能。警告消息是比特币的“紧急广播系统”,比特币核心开发人员可以借此功能给所有比特币节点发送紧急文本消息。这一功能是
使用场景背景如果一个SPV向对等节点精确请求查询某个地址的交易,则会无意的暴露自己的地址,如果以某个关键词查询,虽然会得到较多无关结果,但有着更高的私密性。 作
比特币网络是按照比特币P2P协议运行的一系列节点的集合。 除了比特币P2P协议,网络中还运行着其他协议,如Stratum协议:应用于挖矿节点和轻量级或移动端比特
比特币核心客户端使用Google的LevelDB数据库存储区块链元数据。区块链经常被视为一个垂直的栈,创世区块作为栈底的首区块,此时采用“高度”来表示某区块与首
一个交易的生命周期 一笔比特币交易从交易被创建开始。 随后,该笔交易被一个或者多个签名加密,这些签名标志着该交易指向的比特币资金的使用许可。 接下来,该笔交易被
私钥任意一个256位的二进制的随机数都能作为公钥,转换为十六进制是64位数字。 公钥通过椭圆曲线加密算法可以从私钥计算得到公钥,且该过程不可逆。 比特币使用了s
断路器 断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生
Spring Cloud-09-Zuul-多纬度限流对请求的目标URL进行限流(例如:某个URL每分钟只允许调用多少次) 对客户端的访问IP进行限流(例如:某个IP每分钟只允许请求多少次) 对某些特定用户或者用户
Spring-10-InstantiationAwareBeanPostProcessor简介InstantiationAwareBeanPostProcessor又代表了Spring的另外一段生命周期:实例化。先区别一下Spring Bean的实例
Spring-09-BeanFactoryPostProcessor简介注意区分BeanFactoryPostProcessor和BeanPostProcessor,两者都就单独接口,并无继承等联系。 Spring允许在Bean
Spring-08-BeanPostProcessor简介之前的InitializingBean、DisposableBean、FactoryBean包括init-method和destory-method,针对的
简介传统的Spring容器加载一个Bean的整个过程,都是由Spring控制的,换句话说,开发者除了设置Bean相关属性之外,是没有太多的自主权的。Factor
Spring-06-BeanNameAware-ApplicationContextAware-BeanFactoryAware简介这三个接口放在一起写,是因为它们是一组的,作用相似。 “Aware”的意思是”感知到的”,那么这三个接口的意思也不难理解: 实现BeanNameAware接
Spring-05-InitialingBean-DisposableBean简介 InitialingBean是一个接口,提供了一个唯一的方法afterPropertiesSet()。 DisposableBean也是一个接口,提供了一
Resource接口Spring的Resource接口代表了对底层外部资源的抽象,提供了对底层外部资源的统一访问接口。 12345678910111213141
Bean的作用域类型 spring提供了“singleton”和“prototype”两种基本的作用域 另外提供了三种web作用域:“request”,”ses
观察者模式:行为型设计模式,观察者列表由被观察者维护,为了在合适时机通知观察者。 发布订阅模式:需调度中心,先订阅,再发布。 事件驱动模型:以事件为中心交互,监
Spring-01-PropertySource-Environment-ProfileSpring3.1新属性管理API:PropertySource、Environment、Profile PropertySource: 属性源,key-val
Spring MVC-06-控制器增强-@ControllerAdvice@ControllerAdvice,是spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强。 @ControllerAdvice的实现:1234
Spring Cloud-08-Zuul-路由配置Route Endpoint需包含Spring Boot Actuator Get请求 /routes将会返回映射路由表 Post请求将会强制刷新现有route
Spring MVC-05-处理器异常解析器-HandlerExceptionResolverSpringmvc 通过HandlerExceptionResolver接口 处理程序的异常,包括Handler映射,数据绑定以及目标方法执行时发生的异常。 H
Spring MVC-04-拦截器处理器-HandlerInterceptor常见应用场景 日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。 权限检查:如登录检测,进入处理器检测检测是否登录,如
Spring MVC-03-DispatcherServlet源码分析DispatcherServlet初始化 HttpServletBean继承HttpServlet,因此在Web容器启动时将调用它的init方法,该初始化方法的
核心架构的具体流程步骤如下: 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理
Spring 2.5之前 通过实现Controller接口或继承其实现类来定义控制器的。 Spring 2.5开始 引入注解式处理器支持,通过@Controll
基于session认证所显露的问题 Session: 每个用户经过我们的应用认证之后,我们的应用都要在服务端做一次记录,以方便用户下次请求的鉴别,通常而言ses
什么是跨域?跨域是指跨域名的访问,以下情况都属于跨域: 跨域原因说明 示例 域名不同 www.jd.com 与 www.taobao.com 域名相同,端口不同
什么是CSRF?科普一下,什么是csrf,这是一个web应用安全的问题,CSRF(Cross-site request forgery跨站请求伪造,也被称为“O
我们已经知道Spring Security使用了springSecurityFillterChian作为了安全过滤的入口,这一节主要分析一下这个过滤器链都包含了
常用配置1234567891011121314151617181920212223242526@Configuration@EnableWebSecurityp
前言先介绍几个接口,熟悉一下 Principal: java.security中的接口,用户凭证,其中主要getName()获取用户名 Authenticati
Spring Cloud-07-Zuul-熔断回退定义FallbackProvider 自定义MyFallbackProvider实现ZuulFallbackProvider接口 getRoute()返回值为需
常见洗钱手法洗钱的手法洗钱的步骤首先必须以某种名义储存,然后透过一连串的交易或是转帐,进入合法名义之下,因为各国政府多半针对洗钱行为有所管制,金融机关会将一定金
支付风控涉及到多方面的内容,包括反洗钱、反欺诈、客户风险等级分类管理等。 其中最核心的功能在于对实时交易进行风险评估,或者说是欺诈检测。如果这个交易的风险太高,
支付风控系统在数据存储设计上和其它业务不同的地方在于数据获取与使用的流程。一般业务系统会先确定系统数据需求,再设计如何在业务流程中采集数据,以及数据的格式怎么定
风控是一个让人爱恨交加的话题。 对支付来说风控是必不可少的功能。只要老板不想把底裤都赔掉,那就必须上风控。可对互联网公司来说,风控是一个谜一般的话题,无论是对风
非自增:用户自己生成主键,不需返回MySQL自增主键返回 可以在插入后,通过传入参数对象的id中获取123456789<!-- useGeneratedK
开启二级缓存默认关闭 123<!-- 在mapper映射文件中 开启二级缓存 --><cache eviction="FI
定义一级缓存中SqlSession中的缓存,关闭后,将不可用 当创建一个新的SqlSession后,就会创建一个新的Executor,来负责对数据库的各种操作和
拦截器调用流程http://blog.csdn.net/moshenglv/article/details/52075341 编写好拦截器,在sqlMapCon
http://blog.csdn.net/moshenglv/article/details/52699976 Interceptor接口12345678910
策略模式观察者模式模版模式 责任链模式状态模式 策略模式实现 定义策略接口 123public interface Strategy { public
代理模式适配器模式桥梁模式装饰器模式 门面模式组合模式享元模式 简单适配器 对接口或抽象类的空实现,继承该适配器,根据需求重写相应方法 对象适配器 将鸡适配成鸭
简单工厂模式工厂模式抽象工厂单例模式建造者模式原型模式 单例嵌套类实现(常用)1234567891011public class Singleton3
这个简单的例子的实现思路是使用阻塞的socket IO流来进行server和client的通信,也就是rpc应用中服务提供方和服务消费方。并且是端对端的,用端口
Spring Boot默认使用slf4j+logback,下面通过源码一探究竟! SpringBoot对日志的配置和加载进行了封装,让我们可以很方便地使用一些日
自定义属性 在*.yml或*.properties中自定义需要的属性键和值 参数间的引用在application.properties中的各个参数之间也可以直接
并发模型指定了系统中的线程如何通过协作来完成分配给它们的作业。不同的并发模型采用不同的方式拆分作业,同时线程间的协作和交互方式也不相同。 并发模型与分布式系统之
当系统中的线程数大于cpu核心数时,就会通过切换不同线程以达到并行的效果。 直接忽略挂起状态的线程,但会顾及阻塞的线程,当阻塞的线程等待的资源就绪后,就可以转就
延迟加载延迟加载就是等到真真使用的时候才去创建实例,不用时不要去创建。 单例模式可以有非延迟加载和延迟加载方式实现。 从速度和反应时间角度来讲,非延迟加载(又称
当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施如下: 限定数据的范围务必禁止不带任何限制数据范围条件的查询语句。比如:我们当用
索引分类 普通索引:是最基本的索引,它没有任何限制,即一个索引只包含单个列,一个表可以有多个单列索引;建议一张表索引不要超过5个,优先考虑复合索引 唯一索引:与
Java内存模型中提到有一块堆内存, 我们知道它是被所有线程共享的一块内存区域,所有对象实例和数组都在堆上进行内存分配。为了高效地进行垃圾回收,JVM又把堆内存
CP-07-Servlet的多线程中单例并发执行的理解每个请求创建一个线程一般在一个web应用中会分为三层controller、service、dao,在不同层中编写对应的逻辑,下层通过接口向上层提供调用,程序从接
TreadGroup首先提一个概念:线程组,它可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。 可以把线程归属到某一个线程组中,线程组中可以有线
Router and Filter: Zuul基本使用 spring-cloud-starter-zuul #默认包含ribbon,hystrix, 但不包含d
Thread中保存了一个ThreadLocal中的一个静态内部类ThreadLocalMap的实例对象threadLocals,默认为null。 在一个线程中,
Spring Cloud-05-Spring Cloud Config(Dalston.SR5)Spring Cloud Config(Dalston.SR5)特点 集中管理 不同环境不同配置 运行期间动态调整配置 自动刷新 同类项目 apollo (携程
锁阻塞实现同步独占锁:是一种悲观锁,如:synchronized,会导致其他需要锁的其他线程挂起,等待持有锁的线程释放。 乐观锁:每次假设没有冲突而去完成操作,
Circuit Breaker: Hystrix基本使用 spring-cloud-starter-hystrix 在应用主类中使用@EnableCircuit
总线风暴由于volatile的mesi缓存一致性协议需要不断的从主内存嗅探和cas不断循环无效交互导致总线带宽达到峰值解决办法:部分volatile和cas使用
Declarative REST Client: Feign基本使用 启动类添加@EnableFeignClients注解开启扫描Spring Cloud Fe
创建线程的三种方法 继承Thread类 12345678910111213141516public class ThreadDemo extends Threa
Client Side Load Balancer: Ribbon基本使用 被服务消费者使用,负载均衡的调用服务提供者 Zuul基于Ribbon请求转发 Feg
多线程不安全的原因-竞态条件/临界区同一个程序运行在多个线程中本身不会有线程安全问题,问题在于多个线程访问共享资源时存在,如:类成员变量(普通或静态变量),系统
简介指将*.class字节码文件通过类加载器加载到JVM内存模型的方法区和堆中。 在堆内存中生成一个Class对象,供程序访问。 JVM规范规定类加载器预料到要
参考 https://www.cnblogs.com/lishun1005/p/6019678.html http://www.importnew.com/27
基础知识 名词 解释 register 动词,注册 registry 名词,注册中心,注册表 spring.application.name Service I
Service Discovery: Eureka12345678910register 动词,注册registry 名词,注册中心,注册表${spr