有问有答 | 分布式服务框架精华问答

戳蓝字“CSDN云计算”关注我们哦!


640?wx_fmt=png

随着社会的发展,技术的进步,以前的大型机架构由于高成本、难维护等原因渐渐地变得不再主流,替代它的就是当下最火的分布式架构。要说分布式架构有多重要,可以说如果你不了解“分布式”,那么你也无法真正了解云计算、大数据、人工智能等新兴技术。那么,新年第一期为大家带来的就是分布式服务框架方面的精华问答,让我们一起打开“分布式”的大门吧!


640?wx_fmt=gif1

Q:分布式服务框架对于文件类的东西(图片)等是如何做同步或者如何部署的?


A:通常需要研发一个通用的RPC框架,它底层通信框架可以使用Netty,基于Netty的TCP/IP能力,可以向上封装应用层协议。由Netty向上生长出其它协议,可以参考基于Netty的相关应用层协议框架,也可以参考下 RestExpress 和Dubbo,两者维度不同。


640?wx_fmt=gif2

Q:怎么考虑RPC和REST的选取呢,REST和微服务还是很容易混淆的?


A:1、RPC框架不等同于服务框架,典型的RPC框架如Avro、MessagePack、gRPC等;典型的服务框架如HSF、JSF、Dubbo等;2、Restufl协议与微服务没任何关系,只不过对外开放时,大部分微服务会发布成Restful协议。


640?wx_fmt=gif3

Q:双机热备(多机热备)和分布式架构都可以起到灾备效果。他们的技术难点分别在哪里?都有哪些相同和不同的地方,如何选择?


A:双机热备等依赖双机软件、需要写双机脚本等,优点是本身对业务的侵入比较小。缺点就是对双开软件、浮动IP、共享存储等有强依赖。

分布式架构:强调对等集群、服务无状态,在这种架构下,任何单点故障都不会中断业务。缺点是:1、分布式架构对业务设计有一定约束,例如Session集中管理、服务无状态等;2、需要对分布式事务做处理,无论是强一致性还是弱一致性。


640?wx_fmt=gif4

Q:通用的RPC框架。Netty和mina有如何做技术选型?请问Mina如何做集群?或者说类似有Socket长连接的如何做集群?


A:可以从架构、功能特性丰富度、成熟度、社区活跃度、学习成本等角度去选型,建议选择Netty。Mina是NIO框架,集群管理、会话管理等需要使用者自己封装。


640?wx_fmt=gif5

Q:分布式系统部署的话,一个项目部署在多个节点上,那么数据库呢,是公用一个数据库,还是每个节点上都有数据库呢?一个项目部署在多个节点上,那么代码中的同步锁操作是不是就失效了呢?例如下单操作,某个物品只有一件了,但是多个用户分别访问了不同的节点服务器,那么任何处理才能保证同时访问不同节点的用户只能有一个用户能下单成功呢?


A:1、通常数据库集群是独立部署,如果量不大,做个读写分离数据库即可;如果数据量大,则做分库分表,可以参考 TDDL;2、是的。所以问题只要是集群部署都有这个问题,思路是锁可以放在数据库端,例如存储过程或者函数;也可以通过SQL操作利用数据库的行锁,例如Select for update;还有一种轻量级的锁方案,即利用CAS原理,做CompareAndSet。


640?wx_fmt=gif6

Q:在实际操作过程中,分布式服务是如何支持多协议的?如果项目数据量比较大,在选择服务调用方式的时候,需要什么特别注意的地方吗?


A:支持多协议,有两种策略:1、利用Netty封装通用的NIO通信框架,在上面通过扩展CodeC做多协议支持;2、参考Dubbo的做法,抽象Portocol协议接口,集成不同协议的开源框架,实现多协议。 服务发布的时候,可以指定发布的协议。建议策略:1、通常时延较小、可控的,可以使用同步调用;2、时延不可控的,采用异步;3、多个服务接口无前后关系的,并行服务调用。


----------------    --------------



1.微信群:

添加小编微信:color_ld,备注“进群+姓名+公司职位”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


2.征稿:

投稿邮箱:liudan@csdn.net;微信号:color_ld。请备注投稿+姓名+公司职位。



推荐阅读

  • 云计算到底是怎么玩的?

  • 企业云存储建设之路

  • AI in 美团:吃喝玩乐背后的黑科技

  • 开除“野狗”式程序员,团队的效率提高了

  • Windows 成“弃子”,Linux 终上位?

  • 可替代Android的6大开源移动操作系统

  • 程序员求助:被领导强行要求写Bug该怎么办?网友的回答让我笑翻


程序员抢票姿势 ↓交朋友还能抢票?


640?wx_fmt=jpeg

为交流学习,请备注+姓名+公司职位(学校专业)


640?wx_fmt=gif点击“阅读原文”,打开 CSDN App 阅读更贴心!


640?wx_fmt=png喜欢就点击“好看”吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言 数组排序 – 冒泡法排序 - C语言零基础入门教程

目录 一.简介二.数组冒泡法排序原理三.数组冒泡法排序实战四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数组进行排序&#xff…

BugkuCTF-MISC题赛博朋克

下载文件file.zip,打开发现出错,查看是否为伪加密,以010editor打开搜索504B0102 处起第9,10个字节为0000的为伪加密,若改后仍不能打开为真加密 改为0000后可以打开,解压后得到一个文件cyberpunk.txt&#…

面向对象讲解

定义:以类的方式组织代码,以对象的方式封装数据 对象是具体的事物,类是抽象的。

云要闻 | 腾讯在华南建云计算基地;致敬Larry Roberts;华云数据在无锡拿了一个奖!...

戳蓝字“CSDN云计算”关注我们哦!Hello,everyone:1月2日,星期三CSDN云要闻时间:嗨,大家好,偶是“CSDN 云计算”微信公众号新晋成员一枚,人称“要闻君”。2019年刚一露头儿&#xff0…

C语言 数组排序 – 选择法排序 - C语言零基础入门教程

目录 一.简介二.数组选择法排序原理三.数组选择法排序实战四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数组进行排序&#xff…

史上最详细的值传递和引用传递之间区别

package com.wuming.oop; //值传递 public class Demo04 {public static void main(String[] args) {int a1;System.out.println(a);//1Demo04.change(a);System.out.println(a);//1}//返回值为空public static void change(int a) {a10;} }1 1 package com.wuming.oop; //引用…

BugkuCTF-MISC题三色绘恋

打开压缩包出错 通过winrar可解压出图片 下载文件后是个压缩包,要密码,但是没有任何信息,怀疑是伪加密。010打开 0900改为0000取消加密 后可以解压,得到一张图片。 拿到jpg图片binwalk看下发现zip文件foremost分离一下&#xf…

有问有答 | Storm技术内幕与实践精华问答

戳蓝字“CSDN云计算”关注我们哦!Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。 随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统等, 大数据实时处理…

C语言 数组排序 – 插入法排序 - C语言零基础入门教程

目录 一.简介二.数组插入法排序原理三.数组插入法排序实战四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数组进行排序&#xff…

类和对象的创建

package com.wuming.oop.demo02; //学生类 public class Student {//属性:字段String name;//nullint age0;//0//方法public void study(){System.out.println(this.name"在学习");} }//在该类同包下在创一个类 package com.wuming.oop.demo02;public cl…

BugkuCTF-MISC题闪的好快

下载文件,得到一个gif 打开,发现真的闪的好快啊 gif分解网站:https://tu.sioe.cn/gj/fenjie/ GIF动态图片分解 逐个截屏下来 再逐个通过CQR.exe扫描,得到 SYC{F1aSh_so_f4sT}

OpenStack 2018 年终盘点

戳蓝字“CSDN云计算”关注我们哦!目录前言OpenStack 一年来的成长NovaCinderNeutronIronicCyborgOctaviaKollaMagnumZunKuryr从 OpenStack 到 OpenInfra前言这是最好的时代,也是最坏的时代 — — 查尔斯约翰赫芬姆狄更斯《双城记》年关将至,闲…

类和对象之总结

package com.wuming.oop.demo02;public class Application1 {public static void main(String[] args) {/* 1.类与对象类是一个模板:抽象,对象是一个具体的实例2.方法定义、调用3.对应的应用引用类型:基本类型(8)对象…

C语言 数组排序 – 快速法排序 - C语言零基础入门教程

目录 一.简介二.数组快速法排序原理三.数组快速法排序实战四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数组进行排序&#xff…

BugkuCTF-MISC题善用工具

补充 解出此题需要下载一个工具Free_File_Camouflage Free_File_Camouflage图片隐写工具:能将重要的文件以AES加密算法存放在JPG格式的图片里。你还可以设置口令,就算别人知道你以File Camouflag加密,但不知道密码也无法偷窥的文件。 解题流程 描  …

北美KubeCon新风,正把K8S魔力带向边缘计算

戳蓝字“CSDN云计算”关注我们哦!作者:DJ审校:KevinWang来源:容器魔方1. 容器生态圈新的创新方向2018年容器技术圈的年终盛典北美KubeCon终于在西雅图落下了帷幕。这次北美KubeCon总共吸引了8000多观众参会,创下历史新…

PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译

​ 在这里分享一些技巧和经验给大家。辛苦撰文分享,转载或引用请保留本文作者信息及文章链接。 作者的环境: win7python3.5(anaconda3) 理论上,win7及以上的系统和python任意版本均可。 一、基础脚本 首先我们构建一个简单的脚本&#xff0…

封装之详细详解

1.属性私有,get/set 2.封装:数据的隐藏 3.该漏漏,该藏藏:程序要求高内聚、低耦合,高内聚指类的内部数据操作细节自己完成,低耦合是提供少量方法供外部使用 package com.wuming.oop.demo04; //类 private…

BugkuCTF-MISC题神秘的文件

下载文件file.rar 解压后有个flag.zip与一个logo.png图片,点击flag.zip,发现为明文攻击 由于明文需要与加密文件相同类型的格式,所以将logo.png压缩为.zip格式 发现不可明文,后来发现通过winrar工具压缩为.zip格式可成功明文 得…

云计算的概念 - 初识云计算知识专栏(1)

戳蓝字“CSDN云计算”关注我们哦!作者:云说君来源:Cloud云说云计算的概念云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络&#xf…