免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 42786 | 回复: 31

《分布式服务框架原理与实践》有奖试读活动,欢迎大家参与~ [复制链接]

论坛徽章:
146
2015年亚洲杯之日本
日期:2015-04-28 13:32:012015年亚洲杯之朝鲜
日期:2015-05-06 10:16:442015年亚洲杯之日本
日期:2015-05-06 10:21:342015年亚洲杯纪念徽章
日期:2015-05-13 17:16:442015亚冠之北京国安
日期:2015-05-13 17:18:292015亚冠之鹿岛鹿角
日期:2015-05-13 17:19:062015亚冠之德黑兰石油
日期:2015-05-27 16:47:402015亚冠之塔什干棉农
日期:2015-05-28 15:24:122015亚冠之卡尔希纳萨夫
日期:2015-06-01 13:52:392015亚冠之柏斯波利斯
日期:2015-06-04 17:37:292015亚冠之阿尔纳斯尔
日期:2015-06-16 11:31:202015亚冠之塔什干火车头
日期:2015-06-23 10:12:33
发表于 2016-01-06 10:58 |显示全部楼层
获奖详情:http://bbs.chinaunix.net/thread-4242737-1-1.html



话题背景:
“微服务”无疑是本年度最热的技术关键词之一!近些年来,越来越多网站需要同时提供Web、移动App、OpenAPI多种访问方式,基于分布式服务的业务分治与复用需求越来越强烈,使用分布式服务构建系统已经成为互联网开发的常用手段。但是分布式服务的关键技术有哪些?核心原理是什么?最佳实践是什么?如何落地微服务呢?

今天我们不妨通过此次的试读活动来讨论下此类问题带给我们的一些启示和思路。


图书简介:

image001.jpg

书名:分布式服务框架原理与实践
作者:李林锋
出版社:电子工业出版社
ISBN:978-7-121-27919-5
出版年月:2016-1-1


作者简介:
李林锋,现任华为PaaS平台架构师,8年Java NIO通信框架、平台中间件架构设计和开发经验,主导设计和开发的华为分布式服务框架已经在全球数十个国家成功商用。精通Netty、Mina、RPC框架、企业ESB总线、分布式服务框架等技术,《Netty权威指南》作者,公司总裁技术创新奖获得者。



内容简介:
本书作者具有丰富的分布式服务框架、平台中间件的架构设计和实践经验,主导设计的华为分布式服务框架已经在全球数十个国家成功商用。书中依托工作实践,从分布式服务框架的架构设计原理到实践经验总结,涵盖了服务化架构演进、订阅发布、路由策略、集群容错和服务治理等多个专题,全方位剖析服务框架的设计原则和原理,结合大量实践案例与读者分享作者对分布式服务框架设计和运维的体会。同时,对基于Docker部署微服务以及基于微服务架构开发、部署和运维业务系统进行了详细介绍。


活动时间:2016-01-06——2016-02-03


活动话题:(可任选一个问题作答)
1.什么是微服务?您对这个概念之前有过了解吗/
2.分布式服务的关键技术有哪些?
3.读完阅读样章后,针对分布式服务这个技术,您有何要补充的?或谈谈您对分布式服务的理解。


试读样章: 分布式服务框架原理与实践试读样章.pdf (1.5 MB, 下载次数: 455)

论坛徽章:
7
IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00平安夜徽章
日期:2015-12-26 00:06:30技术图书徽章
日期:2016-02-03 16:35:252016猴年福章徽章
日期:2016-02-18 15:30:34fulanqi
日期:2016-06-17 17:54:25C
日期:2016-10-25 16:08:32
发表于 2016-01-06 11:29 |显示全部楼层
本帖最后由 demilich 于 2016-01-25 11:40 编辑

1.什么是微服务?您对这个概念之前有过了解吗?
我对微服务的理解,其实就是把原先一个提供多种服务的服务器,先打散成分别实现微小功能的服务。再根据自己需要对外提供的服务,组合使用这些微服务。微服务本身其实就是个服务器,提供API,可以有自己的数据库,根据对微服务的需求,可以独立进行伸缩扩展。其实,我理解和SOA颇有相似之处,但是也略有不同。各个微服务之间的耦合度应该更加松散,之间消息的交互应该是统一的。

微服务这么做的话,我觉得有以下好处:
- 耦合度低,所以各个微服务可以使用不同的开发语言进行。也可以由不同的团队负责,在多团队并行开发的时候,更加合适

当然微服务系统的开发,对于项目管理,系统集成以及运维提出了更高的要求。

2.分布式服务的关键技术有哪些?
- RPC/一致性问题/消息传递/负载均衡/集群/命名服务/配置管理/如何提供统一的锁 ....

3.读完阅读样章后,针对分布式服务这个技术,您有何要补充的?或谈谈您对分布式服务的理解。
- 对于分布式相关的书籍,比较好的一个风格是先提出分布式服务需要解决的问题,每个问题有哪些解决方案,优劣是什么,常见的排列组合又是什么,再辅以例子证明自己的论述 ...

论坛徽章:
8
数据库技术版块每日发帖之星
日期:2015-12-22 06:20:00平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2016-01-21 06:20:00IT运维版块每日发帖之星
日期:2016-02-03 06:20:00技术图书徽章
日期:2016-02-03 16:35:252016猴年福章徽章
日期:2016-02-18 15:30:34shanzhi
日期:2016-06-17 17:59:31JAVA
日期:2016-10-25 16:16:28
发表于 2016-01-06 15:24 |显示全部楼层
本帖最后由 sjf0115 于 2016-01-20 16:12 编辑


1.什么是微服务?您对这个概念之前有过了解吗?

一个简单的应用会随着时间推移逐渐变大。几年后,这个小而简单的应用会变成了一个巨大的怪物。一旦你的应用变成一个又大又复杂的怪物,那开发团队肯定很痛苦。敏捷开发和部署举步维艰,其中最主要问题就是这个应用太复杂,以至于任何单个开发者都不可能搞懂它。因此,修正bug和正确的添加新功能变的非常困难,并且很耗时。如果代码难于理解,就不可能被正确的修改。最终会走向巨大的、不可理解的泥潭。许多公司,比如Amazon、eBay和NetFlix,通过采用微处理结构模式解决了上述问题。其思路不是开发一个巨大的单体式的应用,而是将应用分解为小的、互相连接的微服务。一个微服务一般完成某个特定的功能,比如下单管理、客户管理等等。每一个微服务都是微型六角形应用,都有自己的业务逻辑和适配器。一些微服务还会发布API给其它微服务和应用客户端使用。

微服务架构将服务拆分,分别采用相对独立的服务对各方面进行管理,彼此之间使用统一的接口来进行交流。
使用微服务作为主要架构类型的系统是一个拥有大量协调微服务的分布式系统,每个微服务分管自己的进程。由于微服务之间紧密协作,每个微服务只提供拼图的一小块,而系统做为完整的作品存在。协作时,各服务彼此通过一个不绑定具体平台的轻量级媒介进行沟通。

这种微服务架构模式深刻影响了应用和数据库之间的关系,不像传统多个服务共享一个数据库,微服务架构每个服务都有自己的数据库。

好处

(1)通过分解巨大单体式应用为多个服务方法解决了复杂性问题。在功能不变的情况下,应用被分解为多个可管理的分支或服务。
(2)每个服务都可以有专门开发团队来开发。开发者可以自由选择开发技术,提供API服务。
(3)每个微服务独立的部署。开发者不再需要协调其它服务部署对本服务的影响。这种改变可以加快部署速度。
(4)每个服务独立扩展。你可以根据每个服务的规模来部署满足需求的规模。

不足
  
(1)微服务应用是分布式系统,由此会带来固有的复杂性。。
(2)分区的数据库架构。商业交易中同时给多个业务分主体更新消息很普遍。这种交易对于单体式应用来说很容易,因为只有一个数据库。在微服务架构应用中,需要更新不同服务所使用的不同的数据库。使用分布式交易并不一定是好的选择,不仅仅是因为CAP理论,还因为今天高扩展性的NoSQL数据库和消息传递中间件并不支持这一需求。最终你不得不使用一个最终一致性的方法,从而对开发者提出了更高的要求和挑战。

2.分布式服务的关键技术有哪些?

RPC,服务划分,服务调度,服务化的高性能,服务治理,服务监控





论坛徽章:
146
2015年亚洲杯之日本
日期:2015-04-28 13:32:012015年亚洲杯之朝鲜
日期:2015-05-06 10:16:442015年亚洲杯之日本
日期:2015-05-06 10:21:342015年亚洲杯纪念徽章
日期:2015-05-13 17:16:442015亚冠之北京国安
日期:2015-05-13 17:18:292015亚冠之鹿岛鹿角
日期:2015-05-13 17:19:062015亚冠之德黑兰石油
日期:2015-05-27 16:47:402015亚冠之塔什干棉农
日期:2015-05-28 15:24:122015亚冠之卡尔希纳萨夫
日期:2015-06-01 13:52:392015亚冠之柏斯波利斯
日期:2015-06-04 17:37:292015亚冠之阿尔纳斯尔
日期:2015-06-16 11:31:202015亚冠之塔什干火车头
日期:2015-06-23 10:12:33
发表于 2016-01-06 15:33 |显示全部楼层
欢迎支持,后期会有在微信群里直播分型回复 3# sjf0115


   

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
发表于 2016-01-06 15:47 |显示全部楼层
正在关注这个内容。
希望有人系统介绍一下。感觉RPC, 分布式调用,分布式任务,分布式计算,消息队列都有些关系。
比如gearman,beanstalk,thrift,avro这些

论坛徽章:
8
数据库技术版块每日发帖之星
日期:2015-12-22 06:20:00平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2016-01-21 06:20:00IT运维版块每日发帖之星
日期:2016-02-03 06:20:00技术图书徽章
日期:2016-02-03 16:35:252016猴年福章徽章
日期:2016-02-18 15:30:34shanzhi
日期:2016-06-17 17:59:31JAVA
日期:2016-10-25 16:16:28
发表于 2016-01-06 22:00 |显示全部楼层
回复 4# 王楠w_n

哪个微信群  ChinaUnix吗?具体什么时候?一定要听一下


   

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
发表于 2016-01-06 23:43 |显示全部楼层
本帖最后由 jieforest 于 2016-02-10 22:28 编辑

先占个坑,支持。

把内容再修订一下。


我选第一个问题进行讨论吧。
1.什么是微服务?您对这个概念之前有过了解吗?

要说清楚微服务,首先得理清服务架构的发展历程。

最早是单片架构。
企业应用软件的设计目标是满足各种业务需求,一个给定的应用软件可能需要提供数百个功能,这些功能堆积到单个应用中。比如ERP、CRM等。这对于部署、故障排除、系统伸缩、升级等都是一个严峻的考验。
SOA的设计目标是根据提供相近功能的模块进行聚合和分组,以服务的方式提供功能。在SOA中,应用软件是以“粗粒度”的方式设计服务或服务组合。由于服务的范围非常广泛,故可能会产生复杂的服务(比如带数十个操作或功能的服务),也可能带来复杂的消息格式和相关的标准(比如SOAP中的WS* 标准簇)。

接着是SOA架构。
大多数情况下,SOA的服务是相互独立的,但经常是这些服务都部署到同一个运行时(比如同一个Tomcat实例中)。
单片应用程序的设计,开发和部署为单个单元。
单一应用程序绝大多数是复杂的; 这导致噩梦维护,升级和增加新的功能。
努力实践与单片架构敏捷开发和交付方法。
它要求重新部署整个应用程序,以更新它的一部分。
缩放:有扩大规模作为一个单一的应用程序,并难以与冲突的资源需求规模(例如一个服务需要更多的CPU,而其他需要更多的内存)
可靠性:一个不稳定的服务可以带动整个申请下来。
努力创新:这真的很难采用新技术和框架,因为所有的功能都建立在均质技术/框架。

再接着就是如今的微服务架构。
如果说SOA是粗粒度的服务架构,那么微服务就是细粒度的服务架构。
微服务架构(MSA)的基础是有关开发一个单一的应用程序作为一套小的,独立的服务,这是在自己的进程,开发和部署独立运行。
对于微服务架构的定义,它是作为可用服务分离为一组或多组独立服务的过程。然而,微服务不仅仅是在整体上分割提供的服务成独立服务。
关键的想法是,通过观察整体所提供的功能,可以找出所需的业务能力。那么这些业务能力可以实现为完全独立的、细粒度的、自包含(微)服务。这些服务可能会以不同的技术栈进行实现,每个服务都是解决一个非常具体和有限范围的问题或需求。

微服务的一些准则:
1)单一职责原则
即SRP,Single Responsibility Principle
2)设计边界对齐业务需求
3)让微服务的设计来保证服务的独立开发和独立部署
4)重心在于微服务的范围,而不是让服务尽可能小
5)微服务应该有很少的操作/功能以及简单的消息格式
6)从比较宽泛的服务边界带开始,重构微服务

微服务中的消息通信
在单片应用中,不同的处理单元或组件的业务功能通常是使用函数调用或语言级的方法调用来实现的。在SOA架构中,则改用更加松耦合的Web服务级的消息通信来实现,它主要是基于SOAP协议实现——可以是HTTP或JMS等。SOAP协议的复杂性阻碍了SOA的流行。对于微服务架构,则需要有一个简单的、轻量级的消息通信机制。

1)同步消息通信——REST、Thrift
在微服务架构中,对于同步消息通信(客户端希望能及时得到服务的响应),REST是一致的选择。REST提供了一个简单的基于HTTP的请求-响应模型和基于资源的API的消息通信样式。每一个功能都由一个资源和资源上的操作来表示。

2)异步消息通信——AMQP、STOMP、MQTT
对于一些微服务方案,需要使用异步消息通信技术(客户端无需及时得到响应,或者是根本就不需要响应)。在这样的场景下,广泛使用AMQP、STOMP、MQTT等技术。

求职 : Linux运维
论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:15:0815-16赛季CBA联赛之山东
日期:2016-10-31 10:40:10综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00IT运维版块每日发帖之星
日期:2016-02-08 06:20:00数据库技术版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-10 06:20:00黄金圣斗士
日期:2015-11-24 10:45:10IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:012015年亚洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
发表于 2016-01-07 00:52 |显示全部楼层
好书一定要顶起来。分布式是未来。LINUX让我们有了统一的软件层面的节点。我们姑且将其定义为细胞节点。剩下的事就是不断的增强细胞节点的语义功能。制定规则。让这些细胞节点进入自主状态。

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2016-01-07 09:37 |显示全部楼层
1.什么是微服务?您对这个概念之前有过了解吗/
这个应该是Docker吧,秒级启动新服务的方式,最近很火的

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
发表于 2016-01-07 10:44 |显示全部楼层
本帖最后由 crazyhadoop 于 2016-01-07 10:47 编辑

1. 什么是微服务

微服务本身并没有一个严格的定义,不过从很多人都达成了这样一个共识:微服务是一种简单的应用,微服务是指开发一个单个 小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说,如果每个服务都要同时修改,那么它们就不是微服务,因为它们紧耦合在一起。

2. 分布式服务有哪些关键技术

服务发现,分布式锁,资源调度和资源隔离,高效率的RPC服务, 强大的运维开发。 另外基础服务要好啊,例如存储,数据库,网络,如果没有这些基本的技术保障,说啥都没有用啊。

3. 看了样张,这是科普原理的书籍,与实践差距还很大啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP