背景 分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务.如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务.并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应. 雪崩效应应对策略 针对造成雪崩效应的不同场景,可以使用不同的应对策略,没有一种通用所有场景的策略,参考如下: 硬件故障:多机房容灾.异地多活等. 流量激增:服务自动扩容.流量控制(限流.关闭重试)等.…
1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 2.Java有没有goto? java中的保留字,现在没有在java中使用. 3.说说&和&&的区别. &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false…
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值.简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. 哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记…
承接上文:云时代架构阅读笔记五——Java内存模型详解(一) 原子性.可见性.有序性 Java内存模型围绕着并发过程中如何处理原子性.可见性和有序性这三个特征来建立的,来逐个看一下: 1.原子性(Atomicity) 由Java内存模型来直接保证原子性变量操作包括read.load.assign.use.store.write,大致可以认为基本数据类型的访问读写是具备原子性的.如果应用场景需要一个更大的原子性保证,Java内存模型还提供了lock和unlock,尽管虚拟机没有把lock和unlo…
承接上文Java性能优化(一)https://www.cnblogs.com/guo-xu/p/11019267.html 4)尽量确定StringBuffer的容量 在说和这个标题相关之前,先说一下Java中StringBuffer的地位及适用场景. StringBuffer和StringBuilder和String这三种的存在是有点相似的,所以我们平常使用的时候不会在意这三种的区别,而是单纯的使用String,哪怕我修改100次这个变量...StringBuffer与StringBuilde…
Java语言学习了这么长时间之后,自己对于Java编程的一些细节还是稍微有点总结,正好根据云时代架构中<Java高级开发必会的50个性能优化的细节(珍藏版)>来叙述一些我和里面的点比较相符且有点感悟的地方. 1)尽量在合适的场合使用单例 单例模式我们并不陌生,软件设计的设计模式中单例模式相对来说是比较重要的一个.单例模式的优点非常明显,就是避免多次创建同一个对象,这样可以减轻系统加载的负担,减少内存的占用,使系统的总体效率有所提高.这里我也举一个单例模式的例子: public class Si…
网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充. 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注…
web应用通常存在的10大安全问题 1.SQL注入 拼接的SQL字符串改变了设计者原来的意图,执行了如泄露.改变数据等操作,甚至控制数据库服务器, SQL Injection与Command Injection等攻击包括在内 2.跨站脚本攻击(XSS或css) 跨站脚本(Cross-Site Scripting)是指远程WEB页面的html代码可以插入具有恶意目的的数据,当浏览器下载该页面,嵌入其中的恶意脚本将被解释执行,从而对客户端用户造成伤害.简称CSS或XSS 3.没有限制URL访问 系统…
关于线程的同步,可以使用synchronized关键字,或者是使用JDK 5中提供的java.util.concurrent.lock包中的Lock对象.本文探讨synchronized关键字. synchronized关键字可以修饰方法,可以修饰代码块,但不能修饰构造器.属性等. 对synchronized(this)的一些理解 当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行.另一个线程必须等待当前线程执行完这…
什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果.在此之前,主流程序语言(如C/C++等)直接使用物理硬件和操作系统的内存模型,因此,会由于不同平台上内存模型的差异,有可能导致程序在一套平台上并发完全正常,而在另外一套平台上并发访问却经常出错,因此在某些场景下就不许针对不同的平台来编写程序. Java内存模型即要定义得足够严谨,才能…
一• Cloud Native CloudNative是什么? Cloud Native翻译为云原生,是Matt Stine提出的一个概念,它是一个思想的集合,包括DevOps.持续交付(Continuous Delivery).微服务(MicroServices).敏捷基础设施(Agile Infrastructure).康威定律(Conways Law)等,以及根据商业能力对公司进行重组.Cloud Native既包含技术(微服务,敏捷基础设施),也包含管理(DevOps,持续交付,康威定律…
论文源址:https://arxiv.org/abs/1505.04366 tensorflow代码:https://github.com/fabianbormann/Tensorflow-DeconvNet-Segmentation 基于DenconvNet的钢铁分割实验:https://github.com/fourmi1995/IronSegExperiment-DeconvNet 摘要 通过学习一个反卷积网络来实现分割算法, 本文卷积部分基于改进的VGG-16,反卷积网络部分由反卷积层和…
酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑海,有郁闷抓狂的,有出成果喜极而涕的,有不知前途在哪儿的迷茫与不安……总的来说,近一年来,不白活,不虚度,感触良多,不是一言两语能说得清道的明的,有时间可以做个总结,下面还是言归正传谈技术吧. 上篇在了解了Hadoop的目录和源码结构后,说好的要啃源码的,那就得啃.也感谢一直以来关注我.支持我的网友…
python3.4学习笔记(十六) windows下面安装easy_install和pip教程 easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安装easy_install 下载地址:https://pypi.python.org/pypi/ez_setup 解压,安装方法cmd进入到对应目录下,执行命令:python ez_setup.py------------------------------------C:\Users\Admini…
Java进阶(三十六)深入理解Java的接口和抽象类 前言 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类. 抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: abstract void fun(); 抽…
Service Oriented Architecture 面向服务架构 学习笔记(一) 1.业务自由 1.1  在很多企业中,业务和IT技术是各自独立的,无法使用通用的统一语言进行管理. 1.2  没有一家企业的运转的统一语言进行管理. 2.技术自由 2.1  利用SOA,业务和IT互相妥协,达到相互平衡的状态. 3.SOA可以改变企业业务,IT文化,流程和语言 3.1  克服对SOA的恐惧,我们恐惧的只是恐惧本事. 3.2  提高服务质量 I.安全性. II.正确性. III.可预见性. 3…
文章目录 DataBinder UML类图 使用示例 源码分析 bind方法 doBind方法 applyPropertyValues方法 获取一个属性访问器 通过属性访问器直接set属性值 1.setPropertyValues 2.setPropertyValue(String,Object) 3.setPropertyValue(PropertyTokenHolder,PropertyValue) 4.processLocalProperty 5.setValue DataBinder的子…
十六. 预处理 ● 关键字typeof 作用: 为一个已有的数据类型起一个或多个别名(alias), 从而增加了代码的可读性. typedef known_type_name new_type_name1, new_type_name2... 例如: typedef double Area, Volume;    //double类型有Area和Volume两个别名 typedef int integer; integer a, b;     //就相当于int a, b; #include <…
Chapter6.h #ifndef __CHAPTER_6_ #define __CHAPTER_6_ /*<深入理解C指针>学习笔记 -- 第六章*/ typedef struct __person { char* name; char* title; unsigned int age; }person; /*结构体内存的释放问题*/ void __struct_memory_test(); #endif Chapter6.cpp #include "Chapter6.h&quo…
20 SOA质量 服务质量是成功的关键因素 20.1 了解SOA带来的无法预料的挑战 不同部门开发 每个开发的组件整合在一起,形成复合应用程序 整合业务流程,考虑质量问题 衡量SOA的质量. 事物质量:事物质量指的是指事物的性和逻辑的正确性. 接口质量:接口质量基于用户体验. 业务流程质量:业务流程中所有组件,业务流程的质量 执行质量:根据执行应用程序或服务的正常的操作标准测试执行质量. 集成测试可能会更加复杂. *错误成本 错误成本可大可小 在软件开发过程的每个阶段,修复错误的成本会依次增加至…
15  SOA管理 15.1 管理指的是实现一个制约和平衡的一致过程,以确保得到期望的结果. 15.2 管理被广泛应用于人工流程和软件流程中,一旦管理失败,后果会非常严重. 15.3 SOA管理的首要原则是信任. 15.4 “管理”一词来源于拉丁语的“操纵”. 15.5 管理是由企业所有的政策和流程,以及执行政策和流程的程序而构成的. 15.6 试问题 企业的核心价值观是什么.? 企业如何处理和客户的关系? 公司如何处理和合作伙伴的关系? 公司如何确保公平地对待股东? 如何组织整个企业,使每个员…
7 SOA的主要组件 7.1企业服务总线ESB ESB负责SOA组件之间的互相通信;SOA注册中心的资源库包含表示SOA组件的位置的重要的引用信息: 业务流程编排管理器提供人与人,人与流程,以及流程的流程和流程之间的相互连接,服务代理负责服务之间的连接,保证业务流程的顺序进行. *组件相互协作共同实现系统功能时,系统性能的好坏取决于服务水平的高低. 7.2 ESB就是一种可以实现通信的合理而高效的方法. 7.3 SOA注册表主要两个作用 一种作用是针对操作环境. 一种作用是针对程序员和业务分析师…
目录 ElasticSearch官方文档 ElasticSearch安装 ElasticSearch简介 ElasticSearch操作数据,RESTful风格 存储 检查是否存在 删除 查询 更新 查询所有 条件查询 查询表达式查询,全文搜索 绝对搜索 高亮搜索 ElasticSearch整合进SpringBoot 添加引用 SpringBoot和ElasticSearch交互的两种方式 Jest方式 SpringBoot data方式 ElasticSearch官方文档 推荐去看官网的文档,…
14 SOA 服务管理器 契约:契约中必须明确定义双方的责任,否则就会产生混乱. SOA可以管理端到端的流程. IT技术一直是与业务对齐的. 14.1.1 分解IT层 业务服务层 管道层 硬件层 管道层位于中间位置,管道层是最隐蔽的部分. 底层(硬件层):包含所有可见的硬件设备. 顶层(业务服务层):包含业务部门可以直接使用的所有软件 中间层(管道层):中间层可以保证顶层软件在底层硬件上正常运行. 14.1.2 管道服务 主要就是根据业务需求,以达到理想的服务水平 应用程序是否能达到这样的响应时…
一)云主机深入了解 1.云主机在计算节点以进程方式运行 2.监听vnc的端口,vnc默认端口从5900开始, 多台云主机,端口递增 3.云主机桥接网卡,与宿主机联通网络 提示:在openstack环境下,所有计算节点主机的桥接网卡名称都一样. 4.云主机保存路径 /var/lib/nova/instances 上图中 f82388eb-38d0-4543-ac0e-7edda97d615e 是一台云主机的ID console.log   控制台日志 disk               虚拟磁盘…
SOA并不能保证企业的员工更加轻松,企业的收益更加客观. 6.软件组件 6.1  组件和组件的作用  通过可重用的软件代码-组件,可以构建灵活的软件. 6.2  软件组件又称为应用程序,程序,函数,模块,动态链接库,子程序,类. 6.3  确保组件之间良好协作. 6.4  增加可重用性. 6.5  Web服务标准 I.  Web服务标准主要有XML,WSDL和SOAP.XML(可扩展标记语言),WSDL(Web服务描述语言),SOAP(简单对象访问协议). II. 公共定义语言XML,公共定义接…
第六章.HTTP首部 <非常重要且恐怖的一章了> HTTP报文=报文首部+(CR+LF)+报文实体 首部字段:HTTP报文首部字段=(首部字段名:字段值)们---类型*4: 通用首部字段(请求&响应都可用):请求首部字段:响应首部字段:实体首部字段 -------------------------------------------------------通用首部字段-------------------------------------------------Cache-Cont…
1.Document的一些特殊属性 document.lastModified document.URL document.title document.referrer document.domain document.write() document.writeIn()   2.查询选取的文本 使用鼠标mouseup事件   3.浏览器定义了多项文本编辑命令(富文本编辑器) 使用Document对象的execCommand()方法. document.queryCommandSupport(…
1.数据库锁就是为了保证数据库数据的一致性在一个共享资源被并发访问时使得数据访问顺序化的机制.MySQL数据库的锁机制比较独特,支持不同的存储引擎使用不同的锁机制. 2.MySQL使用了三种类型的锁机制,分别为:表级锁,行级锁,页级锁,它们的特性如下所示. 表级锁:实现逻辑较为简单,加锁速度快,开销小,不会发生死锁:但粒度最大,发生锁冲突的几率最大,并发度最小,适用于以查询为主,极少量更新的系统. 行级锁:加锁慢,开销大,会发生死锁:但粒度最小,锁冲突率小,并发度最高,使用于并发查询大,有大量按…
派发队列:dispatch_queue 操作队列:NSOperationQueue  组:dispathc_group_t 37 理解“块”这一概念 总结:块就是一个值,且自有其相关类型.块的强大之处是,在声明它的范围里,所有变量都可以为其所捕获,如果捕获的变量是对象类型,就会自动保留.且默认情况下被块所捕获的变量,是不可以在块里修改的,若想修改此变量.声明变量的时候可以加上__block.如果将块定义在了OC类的实例方法里,那么除了可以访问类的所有实例变量之外,还可以使用self变量.块总能修…