- 浏览: 65368 次
- 性别:
- 来自: 深圳
最新评论
文章列表
[size=large]我在Uber这几年,做了很多系统稳定性及可扩展性的工作, 也包括很多快速迭代试错的产品,另外还做了一些移动开发的工作,因此我对Uber的端到端的技术栈还比较熟悉。在这里以我的经历为例跟大家分享一下如何以Uber的方式快速稳定的做一个端到端的大型应用。
我刚加入Uber时,Uber正处于飞速成长期。这样的情况对之前工程师设计的简单系统造成了极大的压力。下面我谈谈实战中的系统设计的经验。
一、选择微服务
系统设计包括若干个层面。先说顶层的系统设计原则, 如REST,SOA。由于Uber之前一直是算一个创业公司,所以开发速度至关重要,由于微服务 能够极大的促进不同组件的平 ...
原文地址:http://blog.sina.com.cn/s/blog_493a84550102wkc8.html
下面实际谈谈引入微服务架构的难点,以下谈到的都是企业引入和实施微服务架构可能遇到的困难和阻力点,而实际实施难度可能远高于我下面的描述。
引入的软件开发商本 ...
原文地址:http://blog.sina.com.cn/s/blog_493a84550102wkeu.html
前面两篇文章我讲解了企业在自身IT成熟度还没有达到一定水平的时候,应该谨慎对待微服务架构,其核心原因就是由于架构微服务化后会导致开发,集成,乃至后期的运维管控的复杂度呈指数级提升。即使企业本身有组件化和服务化的思想,但是也没有能够彻底构建微服务架构的能力。
正如很多企业连基础主数据都没有管理,也没有建设集成的研发,生产相关的PLM,MES,CIM等核心系统,就开始谈要一步迈入工业4.0和智能制造是一样的道理。任何事情都要考虑从简单到复杂,通过迭代的方式逐步演进。下面就简单分析下 ...
原文地址:http://blog.sina.com.cn/s/blog_493a84550102wkbe.html
对于微服务架构我在前面很多文章里面已经都谈到过了。
微服务架构本质是单个业务系统彻底的组件化(前端,逻辑层,数据库)解耦,同时相互之间通过轻量的服务接口和 ...
springMVC 工作原理:
1).spring mvc 请所有的请求都提交给 DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2).DispatcherServlet 查询一个或多个 HandlerMapping,找到处理请求的 Controller.
3).DispatcherServlet 请请求提交到目标 Controller
4).Controller 进行业务逻辑处理后,会返回一个 ModelAndView
5).Dispathcher 查询一个或多个 ViewResolver 视图解析器,找到 ModelAndView 对象指定的 ...
Java把内存划分成两种:
一种是栈内存,列队优先,先进先出FIFO,
一种是堆内存,先进后出FILO。
在方法中定义的一些基本类型变量和对象的引用变量都在函数的栈内存中分配。
当在一段代码块定义一个变量 ...
java中equals和==的区别
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==比较的是2个对象的地址,而equals比较的是2个对象的内容。
显然,当equals为true时,==不一定为true;
一、String中的equals和==
1、
public class TestString {
publi ...
WebSphere MQ 遥测传输 (MQTT) 是轻量级基于代理的发布 / 订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于此:
网络代价昂贵,带宽低、不可靠。
在嵌入设备中运行,处理器和内存资源有限。
该协议的特点有:
使用发布 / 订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
对负载内容屏蔽的消息传输。
使用 TCP/IP 提供网络连接。
有三种消息发布服务质量:
“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二 ...
由于Google被封,在更新Android SDK经常失败。用修改hosts文件的方法,也会出席ip对应不上原因是每个地区某段时间dl-ssl.google.com对应的IP会不同。 最实用还是使用代理,配置如下图:
这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习。因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种情况就直接英文来描述了。
主要内容:
一、基本概述
二、实践基础
三、一些原理
四、补充
五、其它
一、基本概述
============================
1、有线和无线网络
目前有线网络中最著名的是以太网(Ethenet),但是无线网络WLAN是一个很有前景的发展领域,虽然可能不会完全取代以太网,但是它正拥有越来越多的用户,无线网络中最有前景的是Wifi。本文介绍无线网络相 ...
(转)Session的生命周期
- 博客分类:
- java web
Session存储在服务器端,一般为了防止在服务器的内存中(为了高速存取),Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。
Session什么时候失效?
1. 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。
2. 调用Session的invalidate方法。
Sess ...
在centOS 6.5(32位)下安装docker出现“No package docker-io available.”问题,原因是epel(企业版 Linux 附加软件包)只提供64位的docker安装包,所以在32位的系统是没办法通过yum安装的。只能将64位的docker源代码变成32位才能安装,或安装64位的系统。
在Spring的事务管理中,我们可以使用@Transactional这一annotation来对事务进行声明式的设定。具体而言,就是在类或者方法前添加@Transactional并传入属性参数以获取所需要的Transaction特性。Spring中的@Transactional有5个属性:Propagation、Isolation、Rollback Rules、Timeout和Read-Only,其中Propagation属性定义了Transaction的边界 — 是否使用Transaction、在Transaction已存在的情况下如何表现等。
Propagation属性
@Transac ...
在使用
var rowData = $('#tabPartDialogGrid').datagrid("getChecked");
获取单选值时,返回来的一个数组,不是一个item data,使用时要用rowData[0]。
而使用
var rowData = $('#tabRfqDetail').datagrid("getSelected");
返回的是一个item data,可以直接使用rowData。
在一个表的查询时,出现java.lang.reflect.UndeclaredThrowableException异常,
### Error querying database. Cause: java.lang.reflect.UndeclaredThrowableException
### The error may exist in com/ceacsz/pms/sqlmapper/Part.xml
### The error may involve PartModel.pageModel-Inline
### The error occurred while setting ...