自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (3)
  • 收藏
  • 关注

原创 centos7安装安装Home Assistant,异常问题解决

pip3 install hass-nabucasa。1、 Python版本不受支持,升级新版python到3.10以上。

2023-09-13 09:40:52 1327

原创 centos7安装安装python3.11,安装Home Assistant

基于centos7,更新python3.11,然后安装Home Assistant

2023-09-13 09:39:22 1312 2

原创 vue组件传值异常,页面正常渲染,浏览器控制台报错 Expected Object, got Function;Expected String, got Function等异常

异常信息:[Vue warn]: Invalid prop: type check failed for prop "tableData". Expected Object, got Function.found in子组件中定义:name: "totalList",props: { width: { type: String, default: "10...

2019-07-17 13:46:38 17070

原创 Beyond Compare 4激活秘钥,Beyond Compare 输入秘钥闪退,Beyond Compare 已经过期无法打开激活框

1、该博主的Beyond Compare 4秘钥,激活码,注册码确实有用,推广下,20190329试用成功https://blog.csdn.net/weixin_39424913/article/details/85063153#commentBox2、附带介绍下秘钥Beyond Compare 4输入框闪退问题:删除安装目录下的BCUnrar.dll,然后可以在 帮助-输入秘...

2019-03-29 10:08:22 25841 3

转载 程序员必定会爱上的十款软件:不用就太浪费了

第一款:TrueCrypt TrueCrypt可能很多人没用过,它是一个加密软件,能够对磁盘进行加密。还在担心自己电脑中的重要文件、私密档案被人查看。什么,你以为把文件设置了隐藏属性别人就看不到了?:) :)快来用TrueCrypt ,你必定会爱上它的。 特点:对某一磁盘分区进行加密,开启计算机后,如果你没有打开TrueCrypt 这个软件,这个被加密的分区是不会被显示出来

2016-01-13 15:20:22 561

原创 数据库连接池理论研究总结

优点:连接高效、安全、复用------解决方案--------------------------------------------------------优缺点是在不同的情况下体现的,比如现在连接池里有30个连接:1、如果应用同时最大只有10个以下,那么只有缺点,占用了资源。2、如果应用同时最大的时候有20-30个连接,优点是和数据库连接花费的时间很少,速度快,可以复用。------

2016-01-13 15:06:01 386

转载 java读取文件

1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容

2016-01-13 14:46:27 314

转载 jQuery之防止冒泡事件

冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。下面是html代码部分:"content"> 外层div元素 内层span元素 外层div元素"msg">对应的jQuery代码如下:"text/javascript">$(function(){ // 为span元素绑定click事件

2015-11-21 20:48:31 306

转载 MySQL批量插入,,SQL插入性能优化

这篇文章主要介绍了PHP大批量插入数据库的3种方法和速度对比,3种方法分别使用普通insert语句、insert into语句和事务提交,需要的朋友可以参考下第一种方法:使用insert into 插入,代码如下:?1234567$params= ar

2015-11-21 20:25:33 497

原创 Oracle数据库的批量操作,forall,BULK COLLECT

oracle forall FORALL语句的一个关键性改进,它可大大简化代码,并且对于那些要在PL/SQL程序中更新很多行数据的程序来说,它可显著提高其性能。 1: 用FORALL来增强DML的处理能力 Oracle为Oracle8i中的PL/SQL引入了两个新的数据操纵语言(DML)语句:BULK COLLECT和FORALL。这两个语句在PL/SQL内部进行一种数组处理 ;BULK

2015-11-21 18:54:05 2995

原创 Java web权限控制的实现方式归纳

用户:user角色:role用户-角色:user_role资源:resource(包括上级菜单、子菜单、按钮等资源)角色-资源:role_resource一、第一种实现方式基于数据库支持的权限控制,对于不同的权限赋予不同的资源使用权限用户:user角色:role用户-角色:user_role资源:resource(包括上级菜单、子菜单、按钮等资源)角

2015-11-19 19:44:34 5966

原创 S2SH+ajax+json-------ajax提交form表达,上传图片

//上传图片的ajaxfunction uploadImg() {//获取form的中所有数据,包括file var form = new FormData(document.getElementById("fm")); $.ajax( { async : true,//是否异步,false同步,true异步加载默认 dataType : "json

2015-11-07 14:59:00 801

原创 KindEditor 4.1.10 ,实用的一些要点,

关于KindEditor无法获得值问题1.使用js提交需手动同步:this.sync(),或者editor.sync();2.如果submit,会自动调用sync(),讲iframe中的内容返回到原来的textarea3.一种特殊情况,一个页面多个KindEditorvar editor;KindEditor .ready(function(K) {

2015-11-03 10:42:56 1594

原创 JQuery,JS获取正确scrollTop

window.pageYOffset 被所有浏览器支持除了 IE 6, IE 7, IE 8, 不关doctype的事, 注IE9 开始支持此属性。window.scrollY 被Firefox, Google Chrome , Safari支持 不关doctype的事, 注IE9 不支持此属性。在(quirk 模式)的时候 document.body.scrollTop 在 Intern

2015-11-02 21:18:49 4287

原创 JQuery字符串操作的方法

//用jquery判断字符串中是否存在某个的字符串的实现代码  //第一种,正则表达式$(function(){  var str="sunny,woo";  var sear=new RegExp(',');  if(sear.test(str))  {  alert('Yes');  }//第二种,字符串操作  var tag=',';  if(str.indexOf(

2015-11-02 11:18:50 674

原创 用js获取basePath

/** * Created by Administrator on 2015/10/31. * * 实现类似jsp中的功能,获取项目根目录有助于url的填写 * * 使用方法,用类似引用jQuery的方法引入本插件 * * 定义一个全局的变量,然后的ready方法内部掉用本方法,获得basePath */ function basePath(){ //获取当前网

2015-11-01 16:36:55 9033 2

原创 S2SH+ajax+json-----jQuery中$.ajax解析xml、json格式数据

$.ajax()方法参数详解:url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。注意:这个要访问url必须与js文件在同一个域,否则会报错。type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持。timeout: 要求为Number类型的参数

2015-11-01 15:34:37 444

原创 Jquery,JS的表单提交

(一),js的写法,通过js的各种选择器,实现表单提交提交/*frm为某个表单form的id*/var fr = document.getElementById('frm'); fr.action = "DeptDeleteServlet"; fr.method = "post";

2015-10-31 20:18:30 346

原创 连接oracle的管理工具

(-)Navicat for Oracle,支持不安装本地数据库连接远程数据库今天上网的时候偶然发现了一款oracle的客户端的图形化管理和开发工具,当看到这个界面的时候,感觉很舒服,便上网搜了一下这个工具,看百度百科之后感觉很出乎我的意料,这个产品对于许多的数据库竟都有支持,这也是吸引我的地方,于是我便下载了三个常用数据库的所对应的这个软件。这个工具可以用于任何版本 8i 或以上的 Orac

2015-10-31 10:31:50 8988

原创 S2SH+ajax+json-------ajax解析json文件编写

"java" import="java.util.*" pageEncoding="utf-8"%><% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + reques

2015-10-30 19:34:21 406

原创 S2SH+ajax+json-------xxxAction.java文件编写

import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRespons

2015-10-30 19:30:46 317

原创 S2SH+ajax+json-------Struts.xml文件编写

hljs xml">package name="json" extends="struts-default,json-default" namespace="/test"> action name="testByAction" class="tScenicAction" method="jsonLoadtScenic"> resu

2015-10-30 19:18:48 418

转载 S2SH+ajax+json-------(一)

struts2+jquery+json集成以下采用struts2+jquery+json模拟一个案例。当点击提交按钮时会把输入的数据提交到后台,然后从后台获取数据在客户端显示。效果如下:          接下来为struts2+jquery+json集成步骤:1、新建一个web工程,导入struts2+jquery+json所需jar,如下图目录结构图

2015-10-30 14:45:25 745

原创 S2SH+ajax+json-------(二)实现异步加载

Ajax中解析Json的两种方法对比分析eval();  //此方法不推荐JSON.parse();  //推荐方法一、两种方法的区别我们先初始化一个json格式的对象:?12345varjsonDate = '{ "name":"周星驰","age":23

2015-10-29 21:50:45 428

转载 S2SH+ajax+json-------(三)

JSON(JavaScript Object Notation) 首先来看一下JSON官方对于“JSON”的解释:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edit

2015-10-29 21:01:04 738

原创 ognl.OgnlException: target is null for setProperty(null, "tkscName", [Ljava.lang.String;@1bf9980)

18:30:54,101 WARN OgnlValueStack:49 - Error setting valueognl.OgnlException: target is null for setProperty(null, "tkscName", [Ljava.lang.String;@1bf9980) at ognl.OgnlRuntime.setProperty(OgnlRun

2015-10-28 18:33:53 383

原创 js选择除了自身的其他元素

<div class="main"><ul><li class="a1"></li></ul></div><div class="main"><ul><li class="a1"></li></ul></div>$('li.a1').click(function(){ $('li.a1').not(this).hide();}); $(".detail_ticke

2015-10-28 09:43:11 5490

转载 JQuer选择父类元素与子类元素的语法

一、获取父级元素1、 parent([expr]):获取指定元素的所有父级元素href_firhref_sechref_thrhref_fiv$(document).ready(function(){$("a").parent().addClass('a_par');});二、获取同级元素:1、next([expr

2015-10-28 09:31:38 739

转载 JQuery图片轮换器原理

首先说下,网上找的例子全是用的ul标签实现,其实大可不必,只要是能包含img标签的HTML标签都可以做轮播效果。利用jquery的淡入淡出函数(fadeIn和fadeOut)。废话也不多说,边上代码边讲解。最后附上demo效果地址。先HTML布局: 整体容器--> div class="imgbox"> 图片列表,除第一张显示外,其余隐藏-->

2015-10-18 14:25:28 320

原创 为什么jQuery不能监听body的滚动事件呢?

有如下测试,发现不管用: $(document.body).scroll(function (e) { alert('我滚动了'); });查阅资料发现: 这跟jQuery貌似没什么关系,跟BOM和DOM是有关系的。 用基于miniYUI轻量级框架的JS来测试一下各大主流浏览器下window和document以及document.body上的滚动事件

2015-10-18 13:09:26 6951

转载 spring事务管理几种方式

Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。    DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFacto

2015-10-13 17:52:25 248

原创 hibernate带连接池配置参数的 hibernate.cfg.xml配置文件

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-

2015-10-12 18:17:13 856

转载 Java中静态代理和动态代理介绍

一、代理模式 代理模式是常用的Java 设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。按照代理类的创建时期,代理类可分为两种。静态代理类:

2015-10-12 12:11:57 237

转载 Java中静态代理和动态代理介绍

一、代理模式 代理模式是常用的Java 设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。按照代理类的创建时期,代理类可分为两种。静态代

2015-10-12 12:07:04 234

原创 关于CSS的优先级,CSS优先级计算,多个class引用

原则一: 继承不如指定 原则二: #id > .class > 标签选择符 原则三:越具体越强大 原则四:标签#id >#id ; 标签.class > .classCSS优先级权重计算法CSS优先级包含四个级别(标签内选择符,ID选择符,Class选择符,元素选择符)以及各级别出现的次数!根据这四个级别出现的次数计算得到CSS的优先级。CSS优先级的计算规则如下: * 元

2015-10-11 10:58:19 2193

转载 S2SH的jar包资源链接

第一步找jar包struts jar 包 下载地址:http://struts.apache.org/download.cgi#struts232-SNAPSHOThttp://apache.etoak.com//struts/binaries/struts-2.3.3-all.zip这三个地址都能找到jar包,是不断细化的。spring jar 包 下载地址:ht

2015-10-09 10:18:34 450

转载 dtd声明和entityResolver避免saxReader联网验证

转载    在使用许多使用xml配置文件的框架时,都会碰到以下的问题。有时候项目运行起来,需要花费许多的时间,有时候项目甚至还启动不起来。如使用hibernate时,经常报以下的错误:123org.dom4j.DocumentException: XXXXXXX    at org.dom4j.io.SAXReader.r

2015-10-07 23:12:45 1651

转载 Hibernate 不同数据库的连接及SQL方言

org.hibernate.dialect.MySQLDialect  com.mysql.jdbc.Driver    jdbc:mysql://localhost/dbname?characterEncoding=gb2312    root    root        org.hibernate.dialect.SQLServerDi

2015-10-07 18:17:36 688

转载 Oracle 左连接、右连接、全外连接、(+)号作用

Oracle  外连接(1)左外连接 (左边的表不加限制)       (2)右外连接(右边的表不加限制)       (3)全外连接(左右两表都不加限制)      外连接(Outer Join)outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它还返回任何在第二个输入中没有匹配行的第一个输入中的行。外连接分为三种: 左

2015-10-07 17:54:43 290

转载 Hibernate占位符?和:及JPA

hibernate 4.1之后对于HQL中查询参数的占位符做了改进,如果仍然用老式的占位符会有类似如下的告警信息:[main] WARN  [org.hibernate.hql.internal.ast.HqlSqlWalker] – [DEPRECATION] Encountered positional parameter near line 1, column 95.  Posi

2015-10-07 15:54:13 9028

CAD2Shape5.0.A8完美破解版欢迎下载

CAD2Shape5.0.A08(绿色破解版),用于地图出来,出图,欢迎下载

2019-01-02

高性能MySQL(第3版)-带书签-可编辑

高性能MySQL(第3版)-带书签-可编辑,可编辑PDF,可编辑PDF,可编辑PDF,全书801也 策划编辑z 张春雨 责任编辑z 自涛贾莉 封面设计: Karen Montgomery 张健 印刷g 三河市鑫金马印装有限公司 装订z 三河市鑫金马印装有限公司 出版发行z 电子工业出版社 北京市海淀区万寿路173 信箱邮编: 100036 开本: 787x980 1/16 印张: 50 字数: 1040 千字 印次: 2013 年5 月第1 次印刷

2018-10-17

分布式服务框架原理与实践_李林锋著-完整书签

仅供参考,作者拥有所有版权 第1 章应用架构演进......……………….. . .....… ........................ . .... .. ... .. ................... . ..1 1.1 传统垂直应用架构................................................…......…..............… ...........2 1.1.1 垂直应用架构介绍........ . ............. .. .... . . .. ....…...... . .......…........… .........2 1.1.2 垂直应用架构面临的挑战............………………………………............ 4 1.2 RPC 架构.......……………·………….................…………………………………… ...6 l.2.1 RPC 框架原理...................... . ........…...............…………·………...... 6 1.2.2 最简单的RPC 框架实现.. . . . .......... . .. . . . ..…......…...... . …… .................8 J .2.3 业界主流RPC 框架... .. ....................................... . ........……… ...........14 1.2.4 RPC 框架面临的挑战-……………………………·….............................. 17 1.3 SOA 服务化架构....……….....................…..…....................................... . .... 18 1.3.1 面向服务设计的原则...... . ......... . ...... . ..... . . . ...... . .................................四 1.3.2 服务治理.......…………………... . ...……......…....... . ........….. .. ...... .. ...... 19 1.4 微服务架构. . ........... . ... . …… . ....... . ......... … …..……….........….......……............ 21 1.4 .1 什么是微服务........………….. .. . . ..….................…............ . .......…….. 21 1.4.2 微服务架构对比SOA...... ……………........ . .. . ..….......... . .........… .....22 1.5 总结................................ . ................. . ..............………...........…… ...............23 第2 章分布式服务框架入门.. . ................... . .... . . . .. . ...... . .………………………… .......2 5 2.1 分布式服务框架诞生背景...............................…………… ....................26 2. 1.1 应用从集中式走向分布式. . . ... . . . …………...............…................... 26 目录 2. l.2 亟需服务治理........................…..………………………·…… ..............28 2.2 业界分布式服务框架介绍....………. . ......................……· ……….............29 2.2.1 阿里Dubbo.. …………........…………..... . ……........………… ..............30 2.2.2 淘宝HSF ........... .. ........... ................. .. .................... .. ........ ... .... ..........33 2.2.3 亚马逊Coral Service .......…........……………4 ….....…-……·… 35 2.3 分布式服务框架设计....................…........………..… ......................................36 2.3.1 架构原理.......................................…..... . ...…………… ........................36 2.3.2 功能特性...................................... ……-…....................................37 2.3.3 性能特性.......... . .…........….......……..…………………................... 39 2.3 .4 可靠性…………-……........…… ……...…………...…-…….....… 39 2.3.5 服务泊理.......-............................………………....…… ..................40 2.4 总结........................................................... . .................... ... ................ . .........41 第3 章通信框架.....................................................................................................但 3.1 关键技术点分析........................................................................................... 43 3. 1. 1 长连接还是短连接...........................……………. . .........................… 43 3. 1.2 BIO 还是NIO...................................................................................43 3. 1.3 自研还是选择开源问O 框架........................................................... 46 3.2 功能设计.................................... . ..………………........…… . ....... ... ......……… ...47 3.2.1 服务端设计..........,...................…………………………........................... 48 3.2.2 客户端设计........ . .........……………… …………… ……… - ………................ 50 3.3 可靠性设计................. .... ................ .... ...............................…….............. 53 3.3.1 链路有效性检测.........................……............... .… ........…………........ 54 3.3.2 断连重连机制....…………·…........… ............................................... . ...56 3.3.3 消息缓存重发.…-…….. ……........……...................................57 3.3 .4 资源优雅释放......................... ……….........…………….........…….... 58 3.4 性能设计....………..….............................................................................. 59 3.4.1 性能差的三宗罪............................... .. ..................………………...... 59 3.4.2 通信性能三原则................ .……… ....... …………….................60 3.4.3 高性能之道….........……..............…………......……… . ...…….... .. .... 61 3.5 最佳实践................................ . ................................... ... .. ........ ...………… .....61 3.6 总结..... …………….......…...............…………… .....................................64 • XI. 分布式服务框架原理与实践 第4 章序列化与反序列化.........………..........…........……………………… ...............65 4.1 几个关键概念澄清.....……………………......,......................,…………........… 66 4.1.1 序列化与通信框架的关系...... ..……………… ……… . ..... ... . ............66 4.1.2 序列化与通信协议的关系. . .............…………………............… .66 4.1.3 是否需要支持多种序列化方式... . .........… ………………… .... .......67 4.2 功能设计........ . ........... . ...........… ..................... . ........................................... .67 4.2.1 功能丰富度......... ...... .......………………………………..……·… .......67 4.2.2 跨语言支持........………… ............. ... .........................................68 4.2.3 兼容性.....….. . ...……...………-………………………………… ......69 4.2 .4 性能…………..………… .......................................... .... ................. .. .70 4.3 扩展性设计. .... .. .. . .. . .................. …………………………………............71 4.3.1 内置的序列化/反序列化功能类..............…………………… ............71 4.3.2 反序列化扩展....... . .......……..…·………... . ..………………………… .......72 4.3.3 序列化扩展…........……… ....................................... .. ........................75 4.4 最佳实践... . ........ …………………………………… .. .. ........ .. .. .......77 4.4.1 接口的前向兼容性规范. ........................................ .. .........................77 4.4.2 高并发下的稳定性...........,.. . ...…….......……….......................... .. ..... 78 4.5 总结............................................................. . .................................... . ... .. .....78 第5 章协议枝..........................................................................................…… ........79 • XII • 5.1 关键技术点分析............ . .... ………………………….....………....... 80 5. 1.1 是否必须支持多协议..... .... ....... ... ................. .... ..........................80 5.1.2 公有协议还是私有协议...............……………. ........ .... . ........ ... ....... 80 5. 1.3 集成开源还是自研........…………………………..….......…..................... 81 5.2 功能设计...........................,. …………………………......................... 82 5.2.1 功能描述.................. .... ..... . .…………………………………………… ..........82 5.2.2 通信模型............ . . . ...................... ... .............. . . ........ ............. . ............82 5.2.3 协议消息定义............................ ... ….......…......… ............. .... ...........84 5.2.4 协议枝消息序列化支持的字段类型.........……………… ..... ... ...........85 5.2.5 协议消息的序列化和反序列化........................................................86 5.2.6 链路创建............. .. .....………………………………………………………….的 目录 5.2.7 链路关闭.....……..…………….......…………… ......................... . ........90 5.3 可靠性设计...........……·………………..........................… ........ .... ...............90 5.3.1 客户端连接超时... .. ........…………………......…………………..… ........90 5.3.2 客户端重连机制. ..............................................................................引 5.3.3 客户端重复握手保护...............…… . .....……......…….............… ...........91 5.3 .4 消息缓存重发........……….............................................................. 92 5.3.5 心跳机制...........……………………………………..…........................ 92 5.4 安全性设计..................................................................................................92 日最佳实践一一协民的前向兼容性................................................................94 5.6 .总结j .............................…..................…………………..................….........….....95 第6 章服务路由.............………...……………………………………………………................ 96 6.1 透明化路由............................…...............…………………… ........................97 6. 1.1 基于服务注册中心的订阅发布....................... .. ................... ... .........97 6. 1.2 消费者缓存服务提供者地址........................................……… ...........98 6.2 负载均衡....………………………………….......……………………………………….. 98 6.2.1 随机............................. .. .......…….......…… .......................................98 6.2.2 轮循................…………………………·… . . . ..............… ........ .. ............99 6.2.3 服务调用时延............................. ..... .................................................99 6.2.4 一致性哈希....………………………………….. . …………… .........................100 6.2.5 粘滞连接.....……………………………......…………………… ......101 6.3 本地路由优先策略................ . ………………·…………............... . … ...................102 6.3.1 injvm 模式.......................................................................................102 6.3.2 innative 模式............................……………………………………… ........102 6.4 路由规则..................... . ..…………………… ...................................................103 6.4 .1 条件路由规则........ . ........... .. ........................…………… ................103 6.4.2 脚本路由规则……......…… ................................................................104 6.5 路由策略定制...................……… ……………….......……………….............105 6.6 配置化路由........…………………..............…….. ……….......…..............106 6.7 最佳实践一一多机房路由.............………........................…………… ...........107 6.8 总结....…… .............. . .................................................................... . ............108 • XIII. 分布式服务框架原理与实践 第7 章集群容错..............................…........….........,..........……………………… ......109 7.1 集群容锚场景.... .. ...…………........... .............................................................110 7. l.l 通信链路故障..........………………………………….............… ........ ..110 7. 1.2 服务端超时. . .............……...............…… ............... ... ............. .. ......111 7. 1.3 服务端调用失败.................…..…….. …………………….. ........ .. 111 7.2 容锚策略....................……………… ......................................................... 112 7.2.1 失败自动切换(Failover) .. ... .......... ..... .. . ... ... ...…………….. ......112 7.2.2 失败通知( Failback) ...... .... ... ............ ........ .........…………….... .. ....113 7.2.3 失败缓存( Failcacbe) ....... ......……….................…………… ..........113 7.2 .4 快速失败(Failfast) .. .................. ............................................... .. .114 7.2.5 容错策略扩展............................................... . .................... . .............114 7.3 总结........ . .......................... . .................... ..................... .............................. .115 第8 章服务调用.....................................……………………………………·…… .............116 8.1 几个误区................…… ...............................................................................117 8. 1.1 NJO 就是异步服务.............................................…………… ..........117 8. l.2 服务调用天生就是同步的... . . . ...... .. .……............. . .......... . .… .... .. ......118 8. 1.3 异步服务调用性能更高…………………………..............… ........120 8.2 服务调用方式.............................................................................................120 8.2.1 同步服务调用............ . ......................………………… .......................120 8.2.2 异步服务调用-…… ... ....................................... .. ...................... .. .. ...121 8.2.3 并行服务调用..................................................................................125 8.2 .4 泛化调用............ . . . ... .. ... …………....... .........…….... ...... .... ..........129 8.3 最佳实践.. ..…… …… ....... .. ...........................................................................130 8.4 总结..... .. .............. . ......…,..............……,.....……-………… .......................131 第9 章服务注册中心..........................................…….......,....,........….......… ...........132 • XIV. 9.1 几个概念......…………………………………… ...................................133 9. 1.1 服务提供者... . ... ... ....... . ....... .. .............................. . ..….......…… .........133 9.1.2 服务消费者............... . . . ...... . ....... ……………….......... ...... .............133 9. 1.3 服务注册中心...................………………·…………………......…..…… 133 目录 9.2 关键功能特性设计..............…...........................................… ..................134 9.2.1 支持对等集群.......................…........…………………… ...................135 9.2.2 提供CRUD 接口.......................................…............………… ....136 9.2.3 安全加固......... . .......……… …-……………........,.....................… .....136 9.2.4 订阅发布机制......... .. ........ ……………………….......……..........137 9.2.5 可靠性…..…-………..… ............. .... .... .................. .. ..................138 9.3 基于ZooKeeper 的服务注册中心设计........……………......…....................… 139 9.3.1 服务订阅发布流程设计.................................................… ...............139 9.3.2 服务健康状态检测... …………………………...............…........141 9.3.3 对等集群防止单点故障................................................... .. ..............142 9.3.4 变更通知机制….......…..................................…….............……… ....144 9.4 总结.................…… .......…………………...................... .... ....... ... .......144 第10 章服务发布和引用............……………·…………………………………………....….... 145 10.1 服务发布设计...........................................................................................146 10. 1.1 服务发布的几种方式...........… …….......………........…......146 10. 1.2 本地实现类封装成代理........…………………..……………… ................148 10. 口服务发布成指定协议........……............…......………….........… .....148 10. 1.4 服务提供者信息注册.................... .. ..… ............................... .... .......149 10.2 服务引用设计....…........…….......……….........…….............… ....................150 10.2.1 本地接口调用转换成远程服务调用..................……… ...................150 10.2.2 服务地址本地缓存........................................................................1 引 10.2.3 远程服务调用….......….......…....... .. ....……………………… .......151 10.3 最佳实践............................................………….......….... . ..…..…… ............152 10.3.1 对等设计原则................................................................................152 10.3.2 启动顺序问题.............................….......................… ......................153 10.3.3 同步还是异步发布服务..................................................... ... .........153 10.3.4 警惕网络风暴…………………………………………………… . .....…… .....154 10.3.5 配置扩展……....,..….............,..........………… .............................154 10.4 总结..................…………...… ................................... . ...... . ............... . ......156 • xv. 分布式服务框架原理与实践 第11 章服务灰度发布...............……………………………………………........…… ..........157 11.1 服务灰度发布流程设计.. . ... ... . . ...................………......... . ........……… . . ... . ..158 11.1.1 灰度环境准备. . .................................……………….........… ......158 11.1.2 灰度规则设置... . .................…… ........................... . ........... .. ............159 11.1.3 灰度规则下发.....…..…………………………………………… ..................1ω 11. 1.4 灰度路由……………………·………-…………..………...……..… ........16 1 11.1.5 失败回滚....……………………………………………...……………..……… 162 11.1.6 灰度发布总结........ . ............................. . .........................................1 臼 11.2 总结.. . ........................................................................................................163 第12 章参数传递........... .. ... ... ….......... .. ....………… ..................... . ............. . ... .. ...1 64 12.1 内部传参.. . ....................................... . . ... .…………………………… .........165 12. 1.1 业务内部参数传递...................................….... . .………·…… . ..........165 12. 1.2 服务框架内部参数传递..........................…..............… .................168 12.2 外部传参…........….......……........……………………… .......... .. ..........169 12.2.1 通信协议支持............................................................................... .1ω 12.2.2 传参接口定义.. . ..... ... .................. . .…….....….......…........… .........170 12.3 最佳实践..................……................…………….......…...…………·… .......171 12.3.1 防止参数互相覆盖.........………………·…….. ... .........…… ................171 12.3.2 参数生命周期管理........…….. ... .…………... ...… ...... . ......……… .......171 12.4 总结…………………. .. ...….... ..……. . . ... . … ...... . .................................... . ......172 第13 章服务多版本..........................…...............…………………………................. 173 • XVI. 13.1 服务多版本管理设计................................................. . . . .................. ... .... . ..174 13. 1.1 服务版本号管理.. . .... .. .......…………………………………… .............174 13. 1.2 服务提供者........................ ..... ............. ... ....... ... .............................175 13. 1.3 服务消费者.…….. ....….......………………………………..….........175 13.1 .4 基于版本号的服务路由........ ... .......................... .......................176 13.1 .5 服务热升级… .... . ........ ... ... . ............... . ........................... . ......... .. ......177 日2 与OSGi 的对比.. .. . . ... ……….........….......………………..............178 13.2.1 棋块化开发.. .............. . ... . ... . ..………......…… .................................179 目录 13.2.2 插件热部署和热升级. . . ...………·…….......… … .... . ..…… ....... . .......... 184 13.2.3 不使用OSGi 的其他理由....... . .……………… ................................ .1 85 13.3 总结…….......…………………......……… .. ... . .…... . ..….......……… .......... 185 第14 章流量控制-…...…………………………………………………………………… …… .....186 14.1 静态流控......... . .................................. .. ....... . ......... . .. .. ................... . ...........1 们 14.1.1 传统静态流控设计方案. ........ . ..............….......…… ......... .. . . ............187 14. 1.2 传统方案的缺点...... .. .................................... . ............................... 1 88 14.1.3 动态配额分配制.. .... .... . .... ... ... .. ........ .... ...... . .......... .... .... . .. .. ........... 188 14. 1.4 动态配额申请制............…… . ......… ……….. ............ .. ...........190 14.2 动态流控............................. .... ............................................. . ....................1 川 14.2.1 动态流控因子................... ... .......................................................... 1 归 14.2.2 分级流控… ……………… … … ……… ……… ……... ... ....… ......... . ....... ... ...192 14.3 并发控制.. .. ...…… ........………......... .................................................193 14.3.1 服务端全局控制……… . ..................................… ............................. 19 3 14.3.2 服务消费者流控..... ... . .. ........... .… ………..... ... .. . ...… ..... . ..............194 14.4 连接控制.. ... ...... . .………………………………………………………·……......… ......195 14.4.1 服务端连接数流控. .................. .. . ... .... . ........ .. ..………·… ... . . .. ... .. . .. . .195 14.4.2 服务消费者连接数流控......... . . .... . .. ..............………… .................... 1 归 14.5 井发和连接控制算法........……………………………………………. . …… ......... . ...1 归 14.6 总结... . ........ .. .......... . .. ...... 1 . ………… . ....... . . .... . ..... . .. .. ............ ... .......... 197 第15 章服务降级. . ... ......... .. ... ..... .. ..... . . ......... .... ................. .. .. . ..... ..... .... . .... ... ....... 198 15.1 屏蔽降级............... . ....... ……....………………………·….......…..................199 15 . 川屏蔽降级的流程.. .. . . ................... . ..... . ....................… ..... . ............... 199 15. 1.2 屏蔽降级的设计实现. ..... ... .. . . ............. .. ...... ... ....... . ...... ...... ... .. .......200 15.2 容锚降级.............…...... . ...... ..……· …………..............… .... ... ..............202 15.2.1 容错降级的工作原理.. .. ....... .. ............... .. ..... . .....…..... . … ................202 15.2.2 运行时容错降级................. .. ............ . ....................... . ..... ... ............204 15.3 业务层降级............. . .………………………........…........….......…………… ...205 15.4 总结. ... .......……............……-………………………·………………… ...............205 • XVII. 分布式服务框架原理与实践 第16 章服务优先级调度.............................. . . .... ........... . .....………………….. .. ...… .. 207 16.1 设置服务优先级........ ..... ..... . . . .... …………..............……............. .............208 16.2 线程调度器方案.........................................…………………… ............209 16.3 Java 优先级队列.........................……….........……………........…… ...........210 16.4 加权优先级队列..... ... ..………………………………… ....... . . . .......... ... .. . ..211 16.5 服务迁入迁出........……………………………………………………… ..................212 16.6 总结... . ..................….............…........... . ......................................... ...........213 第17 章服务治理.................................................................................................214 17.1 服务治理技术的历史变迁.......... . .................….......……………… ................215 17.1.1 SOAGovemance............................................................................215 17. 1.2 分布式服务框架服务泊理…………......…… ·………….............217 17. 1.3 AWS 云端微服务治理...................................................................217 17.2 应用服务化后面临的挑战-………..… ......... . ............ .... ..........................218 17.2.1 跨团队协作问题..........………..……………… . ...................................2 叩 门2.2 服务的上下线管控.... . .... . ... . . . ... ...... .........………. ... .. .. ... . .… ............220 17.2.3 服务安全............................……………………………·…… .................220 17.2.4 服务SLA 保障……….......…............….......…………........ . .… .... ... .221 17.2.5 故障快速定界定位....................…………………… .............221 17.3 服务治理......................... ……………………………………...........................222 17.3.1 服务治理架构设计.. .. .....… ........ . ............................................. . . . ...223 17.3.2 运行态服务治理功能设计........ .....… ..................... ....... ....... ..........225 17.3.3 线下服务治理……......………...............…… ...............................232 17.3.4 安全和权限管理....................... . ...........…·…… ..........................234 17.4 总结…….......…………….................…......……….. ... ...…… .................237 第18 章分布式消息跟踪..................……………………............………·….......…·….... 239 • XVIII • 18.1 业务场景分析.............……………………………………….......…..…… ........240 18. 1.1 故障的快速定界定位.. .......... . ........................................................240 18. 1.2 调用路径分析...........…….. .... ….. .. ...……........ . . . ... . ………………… 241 18. 1.3 调用来源和去向分丰斤...............… ............................................... . ...242 目录 18.2 分布式消息跟踪系统设计......... . .... . ....... . ..........………………… ...............242 18.2.1 系统架构……………………………………………………… ........... . .........243 18.2.2 埋点日志....................... . ...-........……………… .. ..... .. .. .... ......… .........244 18.2.3 来样率..................................... .. .... 目 .... .............................. ....... .....2盯47 l山8.2 .4 采集和存储埋点日志.……….…….…..… ….….-… . .… …….…….…. .… ….…….…. .… ….…….….….......…......……….....................248 18.2.5 计算和展示............................................................….......… ...........249 18.2.6 调用链扩展............................…......…… ......................................251 18.3 总结................ . ..................................................... . ........... . .......................2 日 第19 章可靠性设计..............................................................................................253 19.1 服务状态检测..........................………………………….... . ........ .. .... .… . ..........254 19. 1. 1 基于服务注册中心状态检测...................... .. .................................254 19. 1.2 链路有效性状态检测机制.. ..... .. ... .. ... ........ ... .. . ........................... . ..2 55 19.2 服务健康度检测......... . ......... .. .........…………… .. ......………… ..............256 19.3 服务故障隔离....... . . .... ........ .. ................... . . . ...................... . ....... .. ..............257 19.3.1 进程级故障隔离.... . ............ ... ... . ..... .. ..... ………........…..............257 19.3.2 VM 级故障隔离....................……....................…………........…… .259 19.3.3 物理机故障隔离.... . ...... . ........................ . .. . . . .... .... ...... . ....... . ...........260 19.3.4 机房故障隔离....……….....................…………………… .... .. .... . 261 19.4 其他可靠性特性.... ……………………….......…... ......……………......262 19.4.1 服务注册中心................................………………… ....... . ..................262 19.4.2 监控中心.…………............. . ..... .. . . .... . ..…. ... ...…..………… ............262 19.4.3 服务提供者…………........… ................ . . .... ..... ... ........... .. ... . . . . .... .. .. ...262 19.5 总结........... . .........….............………………….......… ....... ... ..................263 第20 章微服务架构.......................…..........…………………......……........… ............264 20.1 微服务架构产生的历史背景.. . ...................…..............… .........................265 20. 1.1 研发成本挑战.......…………………………………..……… ......... ..265 20. 1.2 运维成本高........…….. ... ...…… -… .. ................ .... ........................267 20. 1.3 新需求上线周期长... ......………………………… .... ...... ...... .. . . ...268 20.2 微服务架构带来的改变. .. ...... . .. ………….... ..... .......... .. .......................... .268 20.2.1 应用解辑........... . ..........………………………..... . .……… ............... .... .268 • XIX. 分布式服务框架原理与实践 20.2.2 分而泊之................................................….........… .......................270 20.2.3 敏捷交付...........….......….........………......…......................… ........271 20.3 微服务架构解析.............… ........................................................................271 20.3.1 微服务划分原则............................................................................272 20.3.2 开发微服务...............................………………..........…......……… ....272 20.3.3 基于Docker 容器部署微服务........…….....................….......… ........274 20.3 .4 治理和运维微服务.........………………………..............… ...................277 20.3.5 特点总结.............………..….......…......................…......… ..........278 20.4 总结 ..........................................................................................................2河79 第21 章服务化最佳实践.......................................................................................280 2 1. 1 性能和时延问题........................................................................................281 2 1.1.1 RPC 框架高性能设计..................................................…… ...........281 21.1.2 业务最佳实践.............………-……………………..…… ..................285 2 1.2 事务一致性问题........................................................................................286 2 1.2.1 分布式事务设计方案.................…......…........…........… ............287 2 1.2.2 分布式事务优化 ............................................................................2臼88 • xx. 2引1. 3 研发团队协作问题.…….川…...…….川….川........….............…........……........………… ..............289 2 1.3.1 共用服务注册中心.............................................…………… ...........290 21.3.2 直连提供者................ ... ..............……………… ........ ... ...............290 21.3.3 多团队进度协同..... ....…. ........….. .... ...………… .. ............ .................291 21.3.4 服务降级和Mock 测试..……·………….................…… ................291 2 1.3.5 协同调试问题...............…….....……… ........................................292 21.3.6 接口前向兼容性............................................................................292 21.4 总结........….......................................... …………………….........….............292

2018-09-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除