- 博客(106)
- 问答 (1)
- 收藏
- 关注
转载 Chris Richardson 微服务系列 第一篇 微服务介绍
微服务现在受到了大量的关注︰ 文章、 博客、 社交媒体和学术会议上的讨论都能看到该词汇的身影。微服务正迅速走向 Gartner Hype cycle 所指的快速发展期。同时,软件社区的一些怀疑论者指出微服务并不是什么新鲜玩意儿。这些唱反调的人说微服务和SOA概念并没有什么不同,旧瓶装新酒而已,顺势炒炒新概念。然而,不管说是夸大也好,怀疑也罢,微服务架构模式应用在敏捷开发和交付复杂的企业应用程序的时
2017-10-18 21:13:00 1033
转载 Martin Fowler 微服务全文翻译
微服务(Microservices)—Martin Fowler【翻译】本文转载自:http://www.cnblogs.com/liuning8023/p/4493156.html原文是 Martin Fowler 于 2014 年 3 月 25 日写的《Microservices》。本文内容微服务 微服务风格的特性 组件化(Componentization )与服务(Services) 围
2017-10-11 20:12:54 930
转载 大师对微服务的定义
最易懂的版本 Martin Fowler的这篇文章《》通俗易懂的讲解了什么是微服务架构.微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境
2017-10-11 20:02:12 1200
转载 Chris Richardson 微服务系列 第七篇 重构单体应用到微服务
这是使用微服务架构构建应用系列的第七篇也是最后一篇文章,第一篇文章介绍了微服务架构模式,并讨论了使用微服务架构的优势和劣势,接下来的文章讨论微服务架构的不同方面:使用API网关、进程间通信、服务发现、事件驱动的数据管理以及部署微服务,本篇文章,让我们看下如何把一个单体应用重构为微服务架构的应用。我希望这个系列的文章使你对微服务架构有一些好的理解,比如它的优势和劣势,何时使用微服务等 ,或许微服务
2017-10-18 21:21:16 1008
转载 Chris Richardson 微服务系列 第六篇 选择一种微服务部署策略
这是使用微服务架构构建应用系列的第六篇文章,第一篇文章介绍的微服务架构模式以及使用该模式的优势和劣势,接下来的文章讨论了微服务架构的不同方面:使用APi网关、进程间通信、服务发现以及事件驱动的数据管理。本篇文章我们将看一下有关微服务部署的策略。动机部署一个单体应用意味着对一个一般比较庞大的应用运行多个相同的拷贝,通常需要提供N台服务器(物理机或者虚拟机),并在每一台机器上运行M个应用实例。部署
2017-10-18 21:20:09 995
转载 Chris Richardson 微服务系列 第五篇 微服务之事件驱动的数据管理
这是使用微服务架构构建应用系列的第五篇文章.第一篇文章介绍了微服务架构模式并讨论了使用微服务的优势和劣势 ;第二篇和第三篇文章讨论了微服务架构不同层面的通信问题;第四篇文章密切探讨了服务发现的相关问题;本文章呢,我们换个口味,看看微服务架构模式中的分布式的数据管理问题。微服务与分布式数据管理问题一个单体应用一般只有一个关系型数据库,使用一个关系型数据的优势是应用可以实现ACID,为业务操作进行
2017-10-18 21:19:22 761
转载 Chris Richardson 微服务系列 第四篇 微服务中的服务发现
这是使用微服务构建应用的第四篇文章。第一篇文章介绍了微服务架构模式并讨论了使用微服务的优势和劣势,该系列的第二和第三篇文章 描述了微服务架构中通信的不同方面,本篇文章我们将密切讨论下服务发现的问题。为什么使用服务发现设想下,我们写了一些通过REST API或者Thrift API调用某个服务的代码,为了发起这个请求,你的代码需要知道服务实例的网络地址(IP 地址和端口号)。在传统运行在物理机器
2017-10-18 21:18:49 791
转载 Chris Richardson 微服务系列 第三篇 构建微服务之:微服务架构中的进程间通信
这是使用微服务架构构建应用系列的第三篇文章。第一篇文章介绍了微服务架构模式并讨论了使用微服务的优势和劣势 ;第二篇文章介绍了应用的客户端如何通过API网关作为中介实现服务间的通信;在这篇文章中我们将看一看同一系统间的服务如何通信;第四篇文章主要介绍服务发现的问题。介绍在传统单体应用中,模块间使用编程语言级别的方法或功能彼此调用。然而微服务架构应用本质上是运行在多台机器上的分布式系统,每个服务都
2017-10-18 21:17:30 1379 1
转载 Chris Richardson 微服务系列 第二篇 构建微服务之使用API网关
对于设计、构建和部署微服务系列七篇文章的第一篇,我们介绍了微服务架构风格,讨论了微服务的优势和劣势,尽管微服务有些复杂,但仍然是构建复杂应用的一个明智选择,第二篇文章将讨论使用API网关构建微服务。当我们选择把应用构建成一组微服务的时候,我们需要决定应用的客户端如何与这些微服务进行交互。传统单体应用中,往往只是一组(一般是replicated,负载均衡)的节点,而在微服务架构中,每个微服务都会暴
2017-10-18 21:15:52 629
转载 互联网技术发展之路(7)- 网络层技术剖析
上一篇博文《互联网技术发展之路(6)- 服务层技术剖析》中,介绍了互联网业务发展特点的中的“复杂性”的应对方式,本文介绍互联网业务发展特点的另外两个方面“高性能”、“高可用”。一般人提到高性能时第一想到的就是优化,提到高可用时第一反应就是双机或者备份,但是对于互联网这种超大容量和访问量的业务来说,这两个手段都是雕虫小技,无法应对互联网业务的高性能和高可用需求,互联网业务的高可用和高性能,需
2015-11-23 20:59:13 647
转载 互联网技术发展之路(6)- 服务层技术剖析
在系列文章的第2篇“互联网技术发展之路(2)- 业务如何驱动技术发展”中我们深入分析了互联网业务发展的一个特点:复杂性越来越高。复杂性增加的典型现象就是系统越来越多,当系统的数量增加到一定的程度,就由复杂度量变带来了复杂度的质变,主要体现在系统间相互依赖程度加深:比如说为了完成A业务系统,可能需要B、C、D、E等十几个其它系统进行合作。从数学的角度进行评估,可以发现系统间的依赖是指数级增长的,例如
2015-11-23 20:58:11 688
转载 互联网技术发展之路(5)- 开发层技术剖析
互联网技术发展之路(5)- 开发层技术剖析1. 开发框架在系列文章的第2篇“BAT解密:互联网技术发展之路(2)- 业务如何驱动技术发展”中我们深入分析了互联网业务发展的一个特点:复杂性越来越高。复杂性增加的典型现象就是系统越来越多,不同的系统由不同的小组开发。如果每个小组用不同的开发框架和技术,将会带来很多问题,典型的问题有:1)技术人员之间没有共同的技术语言,交流合作少
2015-11-23 20:57:14 688
转载 互联网技术发展之路(4)- 存储层技术剖析
互联网技术发展之路(4)- 存储层技术剖析1. SQL即关系数据。前几年NoSQL火了一阵子,很多人都理解为NoSQL是完全抛弃关系数据,全部采用非关系型数据,但事实经过几年的试验后,大家发现关系数据不可能完全抛弃,NoSQL不是No SQL,而是Not Only SQL,即NoSQL是SQL的补充。所以互联网行业也必须依赖关系数据,考虑到Oracle太贵,还需要专
2015-11-23 20:56:25 670
转载 互联网技术发展之路(3)- 牛逼公司的技术架构都是这个范
大部分人对于BAT的技术有一种莫名的崇拜感,觉得只有非常牛逼和天才才能做出现在的这些系统,但经过前面两篇博文的分析,我们可以看到其实并没有什么神秘的力量和魔力融合在技术里面,而是业务的不断发展推动技术的不断发展,一步一个脚印,持续几年甚至10几年的发展,才能达到当前技术复杂度、先进性、牛逼度。抛开BAT各自差异很大的业务,站在技术的角度来看,其实BAT的技术架构基本是一样的,再
2015-11-23 20:55:04 3062
转载 互联网技术发展之路(2)- 业务如何驱动技术发展
互联网技术发展之路(2)- 业务如何驱动技术发展在《互联网技术发展之路(1) - 技术发展的驱动力》一文中,我们详细阐述了对于服务类的业务来说,业务发展是技术发展的驱动力。那接下来我们就看看业务究竟是如何驱动技术发展的。 互联网业务千差万别,但由于他们具有“规模决定一切”的相同点,其发展路径也基本上是一致的。互联网业务发展一般分为几个时期:初创期、快速发展期、竞争期、成
2015-11-23 20:54:01 772
转载 JBOSS连接池调优2-合理的设置PSCACHE
1.对于PSCache设置过大或过小的影响为什么我们要合理的设置PSCache的值,这个值对于应用系统有怎样的影响呢?当然,之所以要把这个问题提出来,肯定是有原因的,在这个参数的设置问题上,我们是吃过亏的。所谓合理的设置,即这个值既不能设置太大,也不能设置太小。PSCache设置过小,可能导致PSCache命中率降低,最直观的影响,就是应用访问数据库延时增加,具体分析一下,主要有以下几方面
2015-11-06 13:20:19 4016
转载 JBOSS连接池调优1-如何防止连接风暴
引言:为什么prefill=false会在启动的时候碰到连接风暴,本节结合JBOSS源代码的来分析这种情况产生的根本原因,最后给出几种方案来解决这种连接数突然飙升的问题。(prefill这个参数在jboss4.0.5版本以后才能够被支持)连接风暴,听起来这个词很时髦,那么到底什么是连接风暴?在百度和google上搜索了下,都没有找到相关的解释。所谓连接风暴,我们也可以称之为访问风暴,这是在
2015-11-06 13:18:36 2943
转载 oracle数据库性能查询
作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的操作归根到底都是SQL语句,所有操作到最后都是操作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作。下面简单介绍下一些查看oracle性能的一些实用方法:1、查询每台机器的连接数select t.MACHINE,count(*) from v$session t group by t.MACHINE
2015-10-26 17:23:21 1040
转载 Spring的编程式事务与声明式事务
开始之前关于本教程本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务。通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之。先决条件本教程假定您已经掌握了 Java 基础知识,并对 Spring 有一定了解。您还需要具备基本的事务管理的知识,比如:事务的定义,隔离级别的概念,等等。本文将直接使用这些概念而不做
2015-05-25 17:49:32 723
转载 oracle动态性能视图
一. 动态性能视图 1.1 动态性能图动态性能视图属于数据字典,系统管理员用户 SYS 可以访问它们。 关于这部分的内容,参考我的Blog: Oracle 数据字典 http://blog.csdn.net/tianlesoftware/archive/2010/09/04/5862508.aspx 动态性能视
2015-02-26 13:23:12 6285
转载 linux如何查看系统信息
一:cpu[root@srv /]# more /proc/cpuinfo | grep "model name"model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHzmodel name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHzmodel
2014-08-20 13:42:00 455
转载 64位系统上使用PLSQL Dervloper解决方案
win7+64位+Oracle+11g+64位下使用PLSQL+Developer+的解决办法 2012-04-15 01:28:37| 分类: 默认分类 | 标签: |字号大中小 订阅 . win7+64位+Oracle+11g+64位下使用PLSQL+Developer+的解决办法 1)安装Oracle 11g 64位 2)安装32位的Oracle客户端( insta
2014-06-13 18:03:24 1305
转载 功能点(Funciton Point FP)估算法(四) 功能点估算法
以员工管理系统为例,详细说明如何利用功能点估算法计算业务复杂度。 在员工管理系统中添加一个员工资料,会使用到员工的一般信息、教育情况、工作经历和家属信息。员工隶属于某个部门,在本系统中会有一个对部门进行维护的功能。员工的工资则由另外一个财务系统提供。因此,其用例图如下所示:图1 员工管理系统用例图 假设员工基本信息如下所示:员工ID(标签控
2014-03-31 15:12:08 9010
转载 功能点(Funciton Point FP)估算法(三) 调整因子
用功能点估算法计算软件项目功能点时会用到调整因子(或称调整系数)。功能点的调整系数是通过通用系统特性及其影响程度来评定的,对每个常规系统特性的评估由其影响程度(DI)而定,分为0-5级: 0 毫无影响 1 偶然影响 2 适度影响 3 一般影响 4 重要影响 5 强烈影响 然后依次对以下14个系统常规特性进行打分,并带入以下计
2014-03-31 15:11:18 11960
转载 功能点(Funciton Point FP)估算法(二) 事务复杂度计算
软件项目管理中的功能点估算法将功能点分为5类:ILF(Internal Logical File,内部逻辑文件)、EIF(External Interface File,外部接口文件)、EI(External Input,外部输入)、EO(External Output,外部输出)和EQ(External Inquiry,獠坎檠??F渲校琁LF和EIF属于数据类型的功能点,EI、EO、EQ属于事务
2014-03-31 15:07:38 5405
转载 功能点(Funciton Point FP)估算法(一) 识别项目范围和数据复杂度
功能点估算法是软件项目管理众多知识中比较有技术含量的一个。在软件项目管理中项目计划制定的优劣直接关系到项目的成败,项目计划中对项目范围的估算又尤为重要。如果项目负责人对项目的规模没有一个比较客观的认识,没有对工作量、所需资源、完工时间等因素进行估算,那么项目计划也就没有存在的意义。功能点估算法的特点 项目范围的估算在CMMI的“MA”度量分析管理和“PP”项目计划中均有涉及。
2014-03-31 14:57:43 34390 6
转载 软件设计书籍推荐
设计模式最经典的书籍自然是GOF的《设计模式》,但很多人的反应是这本书太难理解了,并不适合初学者阅读。这话说得在理。一方面,本书使用的C++示例难倒了一大群Java和.NET的开发人员;另一方面,这本书的风格过于专业化,更偏向于学术论文的风格(事实上,本书的雏形就是来源于GOF中Erich Gamma的博士论文),因此就显得有些晦涩难懂了。基本上,本书可以作为我们参考的标准,是经常查阅的文
2013-08-26 15:56:43 755
原创 java模拟get/post提交
1:用jdk连接 String action = "xxxxxxxxxxx"; URL url = new URL(action); HttpURLConnection http = (HttpURLConnection) url.openConnection(); http.setRequestMethod("POST"); http.setConnectTimeout(0
2013-07-02 10:18:16 2022
转载 Mybatis List列表In查询实现的注意事项
在SQL开发过程中,动态构建In集合条件查询是比较常见的用法,在Mybatis中提供了foreach功能,该功能比较强大,它允许你指定一个集合,声明集合项和索引变量,它们可以用在元素体内。它也允许你指定开放和关闭的字符串,在迭代之间放置分隔符。这个元素是很智能的,它不会偶然地附加多余的分隔符。下面是一个演示示例: Select from jria wher
2013-06-04 20:23:26 16582 1
转载 SQL查询多条不重复记录值
由于设计需要,需要查询不重复的记录值。例如有如下表结构和值tablefid name sex1 a 男2 b 男3 c 女4 d 女5 a 男6 b 男方案一:distinctselect distinct name from table
2013-06-03 13:41:30 4121
转载 list,map,set互转
1.list转setJava代码 Set set = new HashSet(new ArrayList()); Java代码 Set set = new HashSet(new ArrayList()); 2.set转listJava代码 List list = ne
2013-05-28 16:33:55 875
转载 Java中常用的加密方法(JDK)
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些资料将加密直接分为对称加密和非对称加密)。双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算
2013-05-06 14:15:43 1051
转载 freemarker的数据格式化
当数据超过3位的时候,freemarker会自动用逗号截取 格式如:2,008如何解决呢?1> 加.toString(),如:${(userId).toString()}2> 加?c,如:${(userId)?c}3> freemarker配置文件freemarker.properties加上number_format=#判断是否为空:1.2.3.不然当xxLi
2012-12-27 16:26:59 1102
转载 java中取当月的最后一天
java中取得当月最后一天的四种方法第一种:使用Calendar的roll方法,在限制某个日期字段不改变的形式下,改变其他日期字段的值。第二种:使用Calendar的getActualMaximum方法,获得指定日期字段的最大值。第三种:使用Calendar的set和add方法,从下个月的第一天计算得到当前月的最后一天。第四种:循环使用Calenda
2012-10-16 21:32:32 2993
转载 po,do,vo,dto
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(Do
2012-09-04 21:40:39 818
转载 MVC的困惑
现在许许多多的初学者和程序员,都在趋之若鹜地学习Web开发的宝典级框架:Struts2,Spring,Hibernate。似乎这些框架成为了一个人是否精通Java,是否会写J2EE程序的唯一事实标准和找工作的必备基础。然而,如果在面试的时候问这些程序员,你们为什么要学习这些框架?这些框架的本质到底是什么?似乎很少很少有人能够给我非常满意的答复。因为他们都在为了学习而学习,为了工作而学习,而
2012-07-31 15:21:31 428
转载 showModalDialog 使用详解
showModalDialog 使用详解window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。 当我们用showModelessDialog()打开窗口时
2012-04-20 17:05:43 574
转载 将stdout、stderr导入到指定文件
在编写程序中,经常用到stdout、stderr作为输出,通常stdout用于输出程序运行正常时的信息,stderr用于输出程序出错时的信息。我们可以通过一些命令将stdout、stderr在屏幕上的输出导入到指定的文件。1、准备工作带有stdout、stderr输出的test.cpp /* ** test.cpp */ #include #i
2012-02-22 11:07:29 827
转载 系统调用
系统调用1什么是系统调用 系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的
2012-02-17 13:22:42 773
转载 常用linux命令汇总
程序员常用linux命令汇总 (2012-02-17 10:12) 标签: 程序员 linux命令 分类:linux命令 1. 启动samba: rcsmb start2. 开启ftp : /etc/rc.d/vsftpd start3. 两机器间拷贝 scp root@192.168.2.51:/usr/bin/gdb* /usr/bin
2012-02-17 10:45:26 598
空空如也
在系统访问高峰期出现无法获取数据库连接的异常
2016-01-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人