<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[编程之路]]></title><description><![CDATA[路漫漫其修远兮，吾将上下而求索！]]></description><link>https://blog.youkuaiyun.com/wj3319</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wj3319]]></copyright><item><title><![CDATA[Chris Richardson 微服务系列 第七篇 重构单体应用到微服务]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/78278053</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/78278053</guid><author>wj3319</author><pubDate>Wed, 18 Oct 2017 21:21:16 +0800</pubDate><description><![CDATA[这是使用微服务架构构建应用系列的第七篇也是最后一篇文章，第一篇文章介绍了微服务架构模式，并讨论了使用微服务架构的优势和劣势，接下来的文章讨论微服务架构的不同方面：使用API网关、进程间通信、服务发现、事件驱动的数据管理以及部署微服务，本篇文章，让我们看下如何把一个单体应用重构为微服务架构的应用。
我希望这个系列的文章使你对微服务架构有一些好的理解，比如它的优势和劣势，何时使用微服务等 ，或许微服务]]></description><category></category></item><item><title><![CDATA[Chris Richardson 微服务系列 第六篇 选择一种微服务部署策略]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/78278039</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/78278039</guid><author>wj3319</author><pubDate>Wed, 18 Oct 2017 21:20:09 +0800</pubDate><description><![CDATA[这是使用微服务架构构建应用系列的第六篇文章，第一篇文章介绍的微服务架构模式以及使用该模式的优势和劣势，接下来的文章讨论了微服务架构的不同方面：使用APi网关、进程间通信、服务发现以及事件驱动的数据管理。本篇文章我们将看一下有关微服务部署的策略。
动机
部署一个单体应用意味着对一个一般比较庞大的应用运行多个相同的拷贝，通常需要提供N台服务器（物理机或者虚拟机），并在每一台机器上运行M个应用实例。部署]]></description><category></category></item><item><title><![CDATA[Chris Richardson 微服务系列 第五篇 微服务之事件驱动的数据管理]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/78278021</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/78278021</guid><author>wj3319</author><pubDate>Wed, 18 Oct 2017 21:19:22 +0800</pubDate><description><![CDATA[这是使用微服务架构构建应用系列的第五篇文章.第一篇文章介绍了微服务架构模式并讨论了使用微服务的优势和劣势 ；第二篇和第三篇文章讨论了微服务架构不同层面的通信问题；第四篇文章密切探讨了服务发现的相关问题；本文章呢，我们换个口味，看看微服务架构模式中的分布式的数据管理问题。
微服务与分布式数据管理问题
一个单体应用一般只有一个关系型数据库，使用一个关系型数据的优势是应用可以实现ACID，为业务操作进行]]></description><category></category></item><item><title><![CDATA[Chris Richardson 微服务系列 第四篇 微服务中的服务发现]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/78278008</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/78278008</guid><author>wj3319</author><pubDate>Wed, 18 Oct 2017 21:18:49 +0800</pubDate><description><![CDATA[这是使用微服务构建应用的第四篇文章。第一篇文章介绍了微服务架构模式并讨论了使用微服务的优势和劣势，该系列的第二和第三篇文章 描述了微服务架构中通信的不同方面，本篇文章我们将密切讨论下服务发现的问题。
为什么使用服务发现
设想下，我们写了一些通过REST API或者Thrift API调用某个服务的代码，为了发起这个请求，你的代码需要知道服务实例的网络地址(IP 地址和端口号）。在传统运行在物理机器]]></description><category></category></item><item><title><![CDATA[Chris Richardson 微服务系列 第三篇 构建微服务之:微服务架构中的进程间通信]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/78277991</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/78277991</guid><author>wj3319</author><pubDate>Wed, 18 Oct 2017 21:17:30 +0800</pubDate><description><![CDATA[这是使用微服务架构构建应用系列的第三篇文章。第一篇文章介绍了微服务架构模式并讨论了使用微服务的优势和劣势 ；第二篇文章介绍了应用的客户端如何通过API网关作为中介实现服务间的通信；在这篇文章中我们将看一看同一系统间的服务如何通信；第四篇文章主要介绍服务发现的问题。
介绍
在传统单体应用中，模块间使用编程语言级别的方法或功能彼此调用。然而微服务架构应用本质上是运行在多台机器上的分布式系统，每个服务都]]></description><category></category></item><item><title><![CDATA[Chris Richardson 微服务系列 第二篇 构建微服务之使用API网关]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/78277963</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/78277963</guid><author>wj3319</author><pubDate>Wed, 18 Oct 2017 21:15:52 +0800</pubDate><description><![CDATA[对于设计、构建和部署微服务系列七篇文章的第一篇，我们介绍了微服务架构风格，讨论了微服务的优势和劣势，尽管微服务有些复杂，但仍然是构建复杂应用的一个明智选择，第二篇文章将讨论使用API网关构建微服务。
当我们选择把应用构建成一组微服务的时候，我们需要决定应用的客户端如何与这些微服务进行交互。传统单体应用中，往往只是一组（一般是replicated，负载均衡）的节点，而在微服务架构中，每个微服务都会暴]]></description><category></category></item><item><title><![CDATA[Chris Richardson 微服务系列  第一篇 微服务介绍]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/78277924</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/78277924</guid><author>wj3319</author><pubDate>Wed, 18 Oct 2017 21:13:00 +0800</pubDate><description><![CDATA[微服务现在受到了大量的关注︰ 文章、 博客、 社交媒体和学术会议上的讨论都能看到该词汇的身影。微服务正迅速走向 Gartner Hype cycle 所指的快速发展期。同时，软件社区的一些怀疑论者指出微服务并不是什么新鲜玩意儿。这些唱反调的人说微服务和SOA概念并没有什么不同，旧瓶装新酒而已，顺势炒炒新概念。然而，不管说是夸大也好，怀疑也罢，微服务架构模式应用在敏捷开发和交付复杂的企业应用程序的时]]></description><category></category></item><item><title><![CDATA[Martin Fowler 微服务全文翻译]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/78207816</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/78207816</guid><author>wj3319</author><pubDate>Wed, 11 Oct 2017 20:12:54 +0800</pubDate><description><![CDATA[微服务（Microservices）—Martin Fowler【翻译】本文转载自：http://www.cnblogs.com/liuning8023/p/4493156.html原文是 Martin Fowler 于 2014 年 3 月 25 日写的《Microservices》。本文内容微服务 
微服务风格的特性 
组件化（Componentization ）与服务（Services） 
围]]></description><category></category></item><item><title><![CDATA[大师对微服务的定义]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/78207713</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/78207713</guid><author>wj3319</author><pubDate>Wed, 11 Oct 2017 20:02:12 +0800</pubDate><description><![CDATA[最易懂的版本 
Martin Fowler的这篇文章《》通俗易懂的讲解了什么是微服务架构.微服务架构是一种架构模式，它提倡将单一应用程序划分成一组小的服务，服务之间互相协调、互相配合，为用户提供最终价值。每个服务运行在其独立的进程中，服务与服务间采用轻量级的通信机制互相协作（通常是基于HTTP协议的RESTful API）。每个服务都围绕着具体业务进行构建，并且能够被独立的部署到生产环境、类生产环境]]></description><category></category></item><item><title><![CDATA[互联网技术发展之路（7）- 网络层技术剖析]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/50000895</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/50000895</guid><author>wj3319</author><pubDate>Mon, 23 Nov 2015 20:59:13 +0800</pubDate><description><![CDATA[上一篇博文《互联网技术发展之路（6）- 服务层技术剖析》中，介绍了互联网业务发展特点的中的“复杂性”的应对方式，本文介绍互联网业务发展特点的另外两个方面“高性能”、“高可用”。

一般人提到高性能时第一想到的就是优化，提到高可用时第一反应就是双机或者备份，但是对于互联网这种超大容量和访问量的业务来说，这两个手段都是雕虫小技，无法应对互联网业务的高性能和高可用需求，互联网业务的高可用和高性能，需]]></description><category></category></item><item><title><![CDATA[互联网技术发展之路（6）- 服务层技术剖析]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/50000875</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/50000875</guid><author>wj3319</author><pubDate>Mon, 23 Nov 2015 20:58:11 +0800</pubDate><description><![CDATA[在系列文章的第2篇“互联网技术发展之路（2）- 业务如何驱动技术发展”中我们深入分析了互联网业务发展的一个特点：复杂性越来越高。复杂性增加的典型现象就是系统越来越多，当系统的数量增加到一定的程度，就由复杂度量变带来了复杂度的质变，主要体现在系统间相互依赖程度加深：比如说为了完成A业务系统，可能需要B、C、D、E等十几个其它系统进行合作。从数学的角度进行评估，可以发现系统间的依赖是指数级增长的，例如]]></description><category></category></item><item><title><![CDATA[互联网技术发展之路（5）- 开发层技术剖析]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/50000869</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/50000869</guid><author>wj3319</author><pubDate>Mon, 23 Nov 2015 20:57:14 +0800</pubDate><description><![CDATA[互联网技术发展之路（5）- 开发层技术剖析

1. 开发框架

在系列文章的第2篇“BAT解密：互联网技术发展之路（2）- 业务如何驱动技术发展”中我们深入分析了互联网业务发展的一个特点：复杂性越来越高。复杂性增加的典型现象就是系统越来越多，不同的系统由不同的小组开发。如果每个小组用不同的开发框架和技术，将会带来很多问题，典型的问题有：

1）技术人员之间没有共同的技术语言，交流合作少]]></description><category></category></item><item><title><![CDATA[互联网技术发展之路（4）- 存储层技术剖析]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/50000861</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/50000861</guid><author>wj3319</author><pubDate>Mon, 23 Nov 2015 20:56:25 +0800</pubDate><description><![CDATA[互联网技术发展之路（4）-
 存储层技术剖析


1. SQL

即关系数据。前几年NoSQL火了一阵子，很多人都理解为NoSQL是完全抛弃关系数据，全部采用非关系型数据，但事实经过几年的试验后，大家发现关系数据不可能完全抛弃，NoSQL不是No SQL，而是Not Only SQL，即NoSQL是SQL的补充。

所以互联网行业也必须依赖关系数据，考虑到Oracle太贵，还需要专]]></description><category></category></item><item><title><![CDATA[互联网技术发展之路（3）- 牛逼公司的技术架构都是这个范]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/50000859</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/50000859</guid><author>wj3319</author><pubDate>Mon, 23 Nov 2015 20:55:04 +0800</pubDate><description><![CDATA[大部分人对于BAT的技术有一种莫名的崇拜感，觉得只有非常牛逼和天才才能做出现在的这些系统，但经过前面两篇博文的分析，我们可以看到其实并没有什么神秘的力量和魔力融合在技术里面，而是业务的不断发展推动技术的不断发展，一步一个脚印，持续几年甚至10几年的发展，才能达到当前技术复杂度、先进性、牛逼度。




抛开BAT各自差异很大的业务，站在技术的角度来看，其实BAT的技术架构基本是一样的，再]]></description><category></category></item><item><title><![CDATA[互联网技术发展之路（2）- 业务如何驱动技术发展]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/50000831</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/50000831</guid><author>wj3319</author><pubDate>Mon, 23 Nov 2015 20:54:01 +0800</pubDate><description><![CDATA[互联网技术发展之路（2）- 业务如何驱动技术发展


在《互联网技术发展之路（1） - 技术发展的驱动力》一文中，我们详细阐述了对于服务类的业务来说，业务发展是技术发展的驱动力。那接下来我们就看看业务究竟是如何驱动技术发展的。

 

互联网业务千差万别，但由于他们具有“规模决定一切”的相同点，其发展路径也基本上是一致的。互联网业务发展一般分为几个时期：初创期、快速发展期、竞争期、成]]></description><category></category></item><item><title><![CDATA[JBOSS连接池调优2-合理的设置PSCACHE]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/49681759</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/49681759</guid><author>wj3319</author><pubDate>Fri, 06 Nov 2015 13:20:19 +0800</pubDate><description><![CDATA[1.对于PSCache设置过大或过小的影响

为什么我们要合理的设置PSCache的值，这个值对于应用系统有怎样的影响呢？当然，之所以要把这个问题提出来，肯定是有原因的，在这个参数的设置问题上，我们是吃过亏的。所谓合理的设置，即这个值既不能设置太大，也不能设置太小。PSCache设置过小，可能导致PSCache命中率降低，最直观的影响，就是应用访问数据库延时增加，具体分析一下，主要有以下几方面]]></description><category></category></item><item><title><![CDATA[JBOSS连接池调优1-如何防止连接风暴]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/49681735</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/49681735</guid><author>wj3319</author><pubDate>Fri, 06 Nov 2015 13:18:36 +0800</pubDate><description><![CDATA[引言：为什么prefill=false会在启动的时候碰到连接风暴，本节结合JBOSS源代码的来分析这种情况产生的根本原因，最后给出几种方案来解决这种连接数突然飙升的问题。(prefill这个参数在jboss4.0.5版本以后才能够被支持)

连接风暴，听起来这个词很时髦，那么到底什么是连接风暴？在百度和google上搜索了下，都没有找到相关的解释。所谓连接风暴，我们也可以称之为访问风暴，这是在]]></description><category></category></item><item><title><![CDATA[oracle数据库性能查询]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/49427197</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/49427197</guid><author>wj3319</author><pubDate>Mon, 26 Oct 2015 17:23:21 +0800</pubDate><description><![CDATA[作为一个开发/测试人员，或多或少都得和数据库打交道，而对数据库的操作归根到底都是SQL语句，所有操作到最后都是操作数据，那么对sql性能的掌控又成了我们工作中一件非常重要的工作。下面简单介绍下一些查看oracle性能的一些实用方法：

1、查询每台机器的连接数

select t.MACHINE,count(*) from v$session t group by t.MACHINE
]]></description><category></category></item><item><title><![CDATA[Spring的编程式事务与声明式事务]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/45972285</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/45972285</guid><author>wj3319</author><pubDate>Mon, 25 May 2015 17:49:32 +0800</pubDate><description><![CDATA[开始之前

关于本教程

本教程将深入讲解 Spring 简单而强大的事务管理功能，包括编程式事务和声明式事务。通过对本教程的学习，您将能够理解 Spring 事务管理的本质，并灵活运用之。

先决条件

本教程假定您已经掌握了 Java 基础知识，并对 Spring 有一定了解。您还需要具备基本的事务管理的知识，比如：事务的定义，隔离级别的概念，等等。本文将直接使用这些概念而不做]]></description><category></category></item><item><title><![CDATA[oracle动态性能视图]]></title><link>https://blog.youkuaiyun.com/wj3319/article/details/43952209</link><guid>https://blog.youkuaiyun.com/wj3319/article/details/43952209</guid><author>wj3319</author><pubDate>Thu, 26 Feb 2015 13:23:12 +0800</pubDate><description><![CDATA[一. 动态性能视图
 
1.1 动态性能图
动态性能视图属于数据字典，系统管理员用户 SYS 可以访问它们。 关于这部分的内容，参考我的Blog：
                Oracle 数据字典
                http://blog.youkuaiyun.com/tianlesoftware/archive/2010/09/04/5862508.aspx
 
动态性能视]]></description><category></category></item></channel></rss>