<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[一天一点积累]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jay123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jay123]]></copyright><item><title><![CDATA[构建Uber端到端技术栈的十条经验]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84915855</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84915855</guid><author>jay123</author><pubDate>Thu, 01 Feb 2018 09:45:11 +0800</pubDate><description><![CDATA[[size=large][size=large]我在Uber这几年，做了很多系统稳定性及可扩展性的工作, 也包括很多快速迭代试错的产品，另外还做了一些移动开发的工作，因此我对Uber的端到端的技术栈还比较熟悉。在这里以我的经历为例跟大家分享一下如何以Uber的方式快速稳定的做一个端到端的大型应用。

我刚加入Uber时，Uber正处于飞速成长期。这样的情况对之前工程师设计的简单系统造成了极大的...]]></description><category></category></item><item><title><![CDATA[【转载】企业应谨慎对待微服务架构（2）]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84831193</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84831193</guid><author>jay123</author><pubDate>Fri, 16 Dec 2016 10:47:37 +0800</pubDate><description><![CDATA[[size=medium]
原文地址：[url]http://blog.sina.com.cn/s/blog_493a84550102wkc8.html[/url]

下面实际谈谈引入微服务架构的难点，以下谈到的都是企业引入和实施微服务架构可能遇到的困难和阻力点，而实际实施难度可能远高于我下面的描述。

引入的软件开发商本身的水平和意愿

如果一个企业本身IT部门规模小，软件以外购为...]]></description><category></category></item><item><title><![CDATA[【转载】企业微服务架构切入点]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84831192</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84831192</guid><author>jay123</author><pubDate>Fri, 16 Dec 2016 10:47:04 +0800</pubDate><description><![CDATA[[size=medium]原文地址：[url]http://blog.sina.com.cn/s/blog_493a84550102wkeu.html[/url]

前面两篇文章我讲解了企业在自身IT成熟度还没有达到一定水平的时候，应该谨慎对待微服务架构，其核心原因就是由于架构微服务化后会导致开发，集成，乃至后期的运维管控的复杂度呈指数级提升。即使企业本身有组件化和服务化的思想，但是也没有能够...]]></description><category></category></item><item><title><![CDATA[【转载】}企业应谨慎对待微服务架构]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84831185</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84831185</guid><author>jay123</author><pubDate>Fri, 16 Dec 2016 10:41:50 +0800</pubDate><description><![CDATA[[size=medium]原文地址：http://blog.sina.com.cn/s/blog_493a84550102wkbe.html

对于微服务架构我在前面很多文章里面已经都谈到过了。

微服务架构本质是单个业务系统彻底的组件化（前端，逻辑层，数据库）解耦，同时相互之间通过轻量的服务接口和协议进行协同。这和很早就谈到的组件化架构思想是一致的，实现微服务架构后，你会看到没有传统业务...]]></description><category></category></item><item><title><![CDATA[简介springMVC 的工作原理]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84821689</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84821689</guid><author>jay123</author><pubDate>Mon, 17 Oct 2016 10:06:52 +0800</pubDate><description><![CDATA[springMVC 工作原理：
1）.spring mvc 请所有的请求都提交给 DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2）.DispatcherServlet 查询一个或多个 HandlerMapping,找到处理请求的 Controller.
3）.DispatcherServlet 请请求提交到目标 Controller
4...]]></description><category></category></item><item><title><![CDATA[Java 中的堆和栈 ]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84709498</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84709498</guid><author>jay123</author><pubDate>Tue, 31 Mar 2015 15:25:50 +0800</pubDate><description><![CDATA[[size=medium]Java把内存划分成两种：
    一种是栈内存，列队优先,先进先出FIFO，
    一种是堆内存，先进后出FILO。 
　　在方法中定义的一些基本类型变量和对象的引用变量都在函数的栈内存中分配。 
　　当在一段代码块定义一个变量时，Java就在栈中为这个变量分配内存空间，当超过变量的作用域后，Java会自动释放掉为该变量所分配的内存空间，该内存空间可以立即被另...]]></description><category></category></item><item><title><![CDATA[java中equals和==的区别 ]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84709497</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84709497</guid><author>jay123</author><pubDate>Tue, 31 Mar 2015 15:19:56 +0800</pubDate><description><![CDATA[[size=large][b]java中equals和==的区别 [/b][/size]
[size=medium]值类型是存储在内存中的堆栈（以后简称栈），而引用类型的变量在栈中仅仅是存储引用类型变量的地址，而其本身则存储在堆中。
==操作比较的是两个变量的值是否相等，对于引用型变量表示的是两个变量在堆中存储的地址是否相同，即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一...]]></description><category></category></item><item><title><![CDATA[MQTT通讯协议简介]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84689976</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84689976</guid><author>jay123</author><pubDate>Mon, 08 Dec 2014 09:44:27 +0800</pubDate><description><![CDATA[WebSphere MQ 遥测传输 (MQTT) 是轻量级基于代理的发布 / 订阅的消息传输协议，设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如，但不仅限于此：

网络代价昂贵，带宽低、不可靠。
在嵌入设备中运行，处理器和内存资源有限。
该协议的特点有：

使用发布 / 订阅消息模式，提供一对多的消息发布，解除应用程序耦合。
对负载内容屏蔽的消息传输。
使用...]]></description><category></category></item><item><title><![CDATA[（转）WIFI基本知识整理]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84686982</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84686982</guid><author>jay123</author><pubDate>Thu, 20 Nov 2014 16:41:39 +0800</pubDate><description><![CDATA[ [size=medium] 这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理，便于后续的学习。因为无线网络中涉及术语很多，并且许多协议都是用英文描述，所以有些地方翻译出来会有歧义，这种情况就直接英文来描述了。
 
主要内容：
一、基本概述
二、实践基础
三、一些原理
四、补充
五、其它
 
 
一、基本概述
======================...]]></description><category></category></item><item><title><![CDATA[(转)Session的生命周期]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84681598</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84681598</guid><author>jay123</author><pubDate>Fri, 24 Oct 2014 14:56:43 +0800</pubDate><description><![CDATA[[size=medium]Session存储在服务器端，一般为了防止在服务器的内存中（为了高速存取），Sessinon在用户访问第一次访问服务器时创建，需要注意只有访问JSP、Servlet等程序时才会创建Session，只访问HTML、IMAGE等静态资源并不会创建Session，可调用request.getSession(true)强制生成Session。

　　Session什么时候失效...]]></description><category></category></item><item><title><![CDATA[安装Docker出现“No package docker-io available”的问题]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84676433</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84676433</guid><author>jay123</author><pubDate>Sun, 19 Oct 2014 16:16:43 +0800</pubDate><description><![CDATA[在centOS 6.5（32位）下安装docker出现“No package docker-io available.”问题，原因是epel（企业版 Linux 附加软件包）只提供64位的docker安装包，所以在32位的系统是没办法通过yum安装的。只能将64位的docker源代码变成32位才能安装，或安装64位的系统。...]]></description><category></category></item><item><title><![CDATA[Spring: @Transactional中的propagation属性]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84651906</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84651906</guid><author>jay123</author><pubDate>Fri, 12 Sep 2014 09:34:55 +0800</pubDate><description><![CDATA[在Spring的事务管理中，我们可以使用@Transactional这一annotation来对事务进行声明式的设定。具体而言，就是在类或者方法前添加@Transactional并传入属性参数以获取所需要的Transaction特性。Spring中的@Transactional有5个属性：Propagation、Isolation、Rollback Rules、Timeout和Read-Only，...]]></description><category></category></item><item><title><![CDATA[easyui datagrid 获取选定值问题]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84613825</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84613825</guid><author>jay123</author><pubDate>Fri, 11 Jul 2014 17:06:23 +0800</pubDate><description><![CDATA[在使用
[code=&quot;js&quot;]
var rowData = $('#tabPartDialogGrid').datagrid(&quot;getChecked&quot;);
[/code]
获取单选值时，返回来的一个数组，不是一个item data，使用时要用rowData[0]。
而使用
[code=&quot;js&quot;]
var rowData = $('#tabRfqDetail').datagrid(&quot;g...]]></description><category></category></item><item><title><![CDATA[mybatis 出现java.lang.reflect.UndeclaredThrowableException异常]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84613788</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84613788</guid><author>jay123</author><pubDate>Fri, 11 Jul 2014 15:33:46 +0800</pubDate><description><![CDATA[在一个表的查询时，出现java.lang.reflect.UndeclaredThrowableException异常，
[code=&quot;html&quot;]
### Error querying database.  Cause: java.lang.reflect.UndeclaredThrowableException
### The error may exist in com/ceacsz/...]]></description><category></category></item><item><title><![CDATA[@RunWith(SpringJUnit4ClassRunner.class) 报错]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84569530</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84569530</guid><author>jay123</author><pubDate>Fri, 25 Apr 2014 11:13:33 +0800</pubDate><description><![CDATA[使用spring @RunWith注解进行单元测试，报“Type mismatch: cannot convert from Class to Class]]></description><category></category></item><item><title><![CDATA[Golang的slice陷阱]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84522209</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84522209</guid><author>jay123</author><pubDate>Wed, 22 Jan 2014 15:39:27 +0800</pubDate><description><![CDATA[[code=&quot;c&quot;]
package main

import &quot;fmt&quot;
func main() {
	arr := []int{1, 2, 3, 4, 5}
	slice := arr[1:2]
	slice = append(slice, 6, 7, 8)
	fmt.Println(slice)
	fmt.Println(arr)
}
[/code]
输出：
[co...]]></description><category></category></item><item><title><![CDATA[少即是极多——Go创作过程（转）]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84516550</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84516550</guid><author>jay123</author><pubDate>Tue, 31 Dec 2013 16:09:39 +0800</pubDate><description><![CDATA[
这是一篇翻译练习。力图保留原意。若有不准确处，求速速指出。猛击此处（墙）看原文。作者为Rob Pike，贝尔实验室来的大牛，现在就职于Google。他主导了Go语言的创建工作。下面是正文——
——————————————正文分隔线——————————————
这是我在2012年6月的Go SF上演讲的文本。
这是一个个人演讲。 我承认，虽然面前的团队让Go诞生并延续，但是我的观点并不代表...]]></description><category></category></item><item><title><![CDATA[Go语言的大小写]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84515492</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84515492</guid><author>jay123</author><pubDate>Thu, 26 Dec 2013 17:04:56 +0800</pubDate><description><![CDATA[初学者经常犯Go大小写默认的错误：即在包外引用小写的常量、函数提示错误，对于刚接触Go语言的人会觉得莫明其妙。
原因是：Go语言中，常量、函数的首字母大写表示对外公开的相当于Java的public，小写表示私有的相当于Java的private。
...]]></description><category></category></item><item><title><![CDATA[Go的new和make分配内存的区别]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84515124</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84515124</guid><author>jay123</author><pubDate>Wed, 25 Dec 2013 16:50:30 +0800</pubDate><description><![CDATA[1.new(T)创建一个没有任何数据的类型为T的实例，并返回该实例的指针；
2.make(T, args)只能创建 slice、map和channel，并且返回一个有初始值args（非零）的T类型的实例，非指针。
如
[code=&quot;c&quot;]
var p *[]int = new([]int)   // 分配slice结构内存 : *p = nil
var v []int = make([]...]]></description><category></category></item><item><title><![CDATA[Go的延迟（Defer）]]></title><link>https://blog.youkuaiyun.com/jay123/article/details/84515108</link><guid>https://blog.youkuaiyun.com/jay123/article/details/84515108</guid><author>jay123</author><pubDate>Wed, 25 Dec 2013 16:27:10 +0800</pubDate><description><![CDATA[Go的延迟（Defer）是一个很有意思的特性，有点相当于Java try{}catch{}的finally，最后始终会被执行。也有区别：
1.defer的参数是在程序编译时已计算好了，而非函数执行时，如
[code=&quot;c&quot;]
i := 0
defer fmt.Println(i)
i = 1
[/code]
输出：
[code=&quot;c&quot;]
0
[/code]
而非1.
2.同...]]></description><category></category></item></channel></rss>