最新要闻
- 每辆都是碰撞测试车 特斯拉全球首创真实碰撞测试系统
- 当前热点-惊蛰习俗有哪些?专家科普:吃梨、吃“懒龙”了解下
- 【世界报资讯】33万买奥迪A7L!上汽回应“内购价最高优惠16万”:正严查信息外泄
- 马斯克:曾对加密货币感兴趣 现在钟情于AI
- 2023年兔年金银币价格表(2023年03月06日)
- 199元!小米推出米家分体露营灯:Type-C接口 满电亮100小时
- 高速公路“见缝插针”超车致事故 司机:我莽撞了
- 每日动态!魅族史上最大规模!魅族20系列发布会定点上海梅赛德斯奔驰文化中心
- 全球滚动:预计上涨0.16元/升!国内油价将于17日24时起再调整
- 全球视讯!《卧龙:苍天陨落》捏人系统受盛赞 胸部拉到最大也不违和
- 关于情侣的四字成语有哪些?关于情侣个性签名大全
- 专业人才入库证书有什么作用?从专业人才走向管理心得体会
- 花羊羊是谁的妈妈?花羊羊为什么没和村长在一起?
- 海麻线是什么东西?海麻线的营养价值及功效
- 电脑怎么设置休眠模式?休眠和待机有什么区别?
- 全球头条:鼠标是无法识别的usb设备_鼠标成为无法识别的USB设备 怎么办
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球头条:1-基础入门
Dubbo
分布式项目重要概念
所有通过互联网连接的、对所有网民公开的项目都是互联网项目。传统项目例如企业内部使用的办公OA系统、人事管理HR系统、客户关系CRM系统等不对公网用户开放的项目。也就是说,传统项目和互联网项目所面相的用户群体不同,传统项目面向企业员工,互联网项目面向所有网民。
通常传统项目使用的用户和并发情况都是可预测的,可以根据目标人群和人数进行技术选型和开发,但面向网民的项目是不可预测的。并且在用户体验和稳定性方面,传统项目的要求比较宽松,但是互联网项目对于网民的可选择性比较多,针对用户体验也更严格。
(资料图片仅供参考)
对于用户体验,也就是从:美观、功能、速度、稳定性四个方面进行优化。美观和功能由产品经理和UI开发人员负责,速度和稳定与后端开发息息相关。稳定性由全面的和深度的测试来解决,只要功能能够经受多次测试考验,稳定性自然也就上升了。但是速度是没有衡量标准的,业务的复杂与否、技术方案是否成熟、以及代码质量都会影响一套业务的运行速度。
衡量一个网站速度与否的标准很难说,但最好的效率是:打开一个新页面在0.36秒内,页面内跳转在0.018秒内。
根据佛经《僧祗律》记载:一刹那为一念,二十念为一瞬,二十瞬为一弹指,二十弹指为一罗预,二十罗预为一须臾,一日一夜有三十须臾。一瞬间为0.36秒,一刹那为0.018秒。
互联网项目的特点为:用户多、流量大、并发高、海量数据、易受攻击、功能繁琐、变更快。
互联网项目重要概念
- 响应时间:一个请求从开始到接收响应所花费的总体时间。
- 并发数:系统同时能够处理的请求数量。
- 并发连接数:客户端向服务端发起请求,建立TCP连接,美妙装服务器连接的总TCP数量。
- 请求数:也称为QPS(Query Per Second)每秒多少请求。
- 并发用户数:单位时间内的用户数量
- 吞吐量:单位时间内系统能处理的请求数量。
- QPS:Query Per Second 每秒查询数;
- TPS:Transations Per Second 每秒事务数;
事务数:从页面开始加载到加载结束为一次事务,也就是一个客户机向服务器阿松请求然后服务器作出反应的过程,服务器在发送请求时开始计时,收到服务器响应后结束计时,由此来计算使用的时间和事务个数。请求与连接:所有的css、js资源的获取都是一次独立的请求,所有Connection为keep-alive的请求都表示为保持连接的请求,通过这个请求可以扩展其他请求。也就是说,请求数一定大于等于连接数。数量比:QPS >= 并法连接数 >= TPS
大型项目架构目标
- 高性能:提供快速的访问体验。
- 高可用:网站服务可以一直正常访问。
- 可伸缩:通过硬件的增加和减少,提高和降低处理能力。
- 高可扩展:降低系统耦合度,方便的进行模块的新增和减少。
- 安全性:提高网站安全进行数据加密和安全存储等策略。
- 敏捷性:随机应变,快速响应,能够快速通过市场需求进行功能迭代。
集群和分布式
集群就是一个业务模块部署多份,分布式就是将一个大的业务系统拆分成小的服务,部署在多个服务器上:集群就是很多人做一样的事,分布式就是很多人做不一样的是,但是这不一样的是最终构成了一件大事。
集群项目时为了避免单个服务的负载压力过大导致速度下降,分布式是为了解耦多个功能模块,以保证每个模块能够方便的管理,从而动态的对模块级进行性能调优。
分布式和集群并不冲突,通常分布式会对单个服务进行集群部署,在性能和便捷性上都能够达到很好的效果。
架构演进
单体架构
最早的架构为单体架构,也就是所有的模块写在一个项目中,然后打包成一个包放到web服务器中。单体架构也可以实现集群部署,叫做单体多机部署。
优点:开发部署简单,小型项目首选。
缺点:
- 项目启动慢:单体项目变大之后,因为代码的变多导致项目的启动会变得缓慢;
- 可靠性差:因为项目的代码都写在一个项目中,任何一个模块的异常都可能导致其他模块的级联异常导致整个项目的宕机;
- 可伸缩、扩展性、可维护性差:当所有代码都在一个项目中的时候,一旦想对一个模块进行迭代更新,就需要对项目进行整体的打包和部署或者集群部署;
垂直架构
垂直架构是将单体架构的多个模块拆分到多个独立的项目中,组成多个独立的单体架构。
垂直架构可以解决单体项目中不易扩展和伸缩性差的问题,因为将模块细分了,所以进行部署的时候可以更加精细的对服务进行管理,单个服务的变小也可以让服务的启动速度变快。
单体架构存在的问题:
- 重复功能太多:因为垂直架构的多个子项目之间相互没有调用,所以公共模块要在每个项目中都存在,这就导致每个服务中都存在相同的功能;
分布式架构
解决了垂直架构中重复代码过多的问题,将重复的功能和模块抽离成独立的服务,其他需要模块直接调用公共模块服务进行数据交互。
服务之间的调用称作RPC(Remote Procedure Call 远程过程调用),远程调用只是一个大的概念,可以使用很多的协议和技术栈来实现,例如HTTP REST风格、Java RMI规范、WebService SOAP协议、Hession等的。
分布式架构存在的问题:当被调用方的地址出现更改,所有使用此服务的调用方都需要对应的更改地址。
SOA架构
SOA(Service-Oriented Architecure 面向服务架构)是一个组件模型,规定将不同功能模块进行拆分,然后通过服务之间定义好的接口和标准相互联系。
ESB(Enterparise Service Bus 企业服务总线)主要提供了服务之间调用和交互的介质、渠道。主要功能包括:负载均衡、流量控制、加密处理、服务监控、异常处理、监控告警等等。
通过此架构,就可以解决服务之间调用路径被硬编码的问题,主需要告诉服务总线要调用的服务,由总线进行服务的分发和处理。
微服务架构
微服务架构实际上和SOA架构相似,微服务架构强调将业务彻底的组件化和服务化,将一个系统拆分成独立的小应用,每个小应用都是独立的服务。服务之间通常采用轻量的RestAPI接口。
微服务架构中每个小服务可自由的选择开发技术,不限制任何技术和语言,只需要提供标准规范的业务接口即可。甚至每一个微服务都可以由独立的团队来进行开发运维。
因为每个微服务使用独立的存储系统,所以是一种去中心化的服务架构。
服务的独立拆分和每个服务的完整性,使得每个小服务都可以实现自动化的部署,方便了自动化部署、测试、运维。
Dubbo概述
Dubbo是SOA时代的产物,也是为分布式系统开发的组件。是阿里巴巴公司开发的开源的、高性能的、轻量级的Java RPC框架。致力于提供高性能的、透明化的RPC远程调用服务方案,以及SOA服务治理方案。
Dubbo架构
- Consumer:服务消费者,调用其他服务的接口;
- Provider:服务提供者,暴露接口给其他服务;
- Registry:注册中心,进行服务注册和发现;
- Moitor:服务管理者,统计服务的调用次数和调用时间的监控中心;
- Container:服务运行时容器;
- 服务启动时通常会在一个容器中,这个容器通常为Tomcat。
- 启动服务后,服务会将自身信息,如IP、端口和其他URL信息注册到注册中心。
- 服务消费者在进行服务调用的时候,要去注册中心获取服务提供者的相关信息。
- 注册中心会根据服务消费者的要求提供服务提供者信息。
- 服务消费者根据注册中心获得的服务提供者信息进行远程调用。
- 服务管理者进行调用时间和调用次数的统计。
Linux安装Zookeeper
Zookeeper是Dubbo官方推荐的注册中心。
Zookeeper需要Java环境,所以需要确保已经提前安装了Java7以上的版本。
官网下载安装包:apache-zookeeper-3.5.10-bin.tar.gz
解压到任意路径下:
tar -zxvf apache-zookeeper-3.5.10-bin.tar.gz
复制配置文件
./conf/zoo_sample.cfg
名称为zoo.cfg
,然后将配置文件中的 dataDir属性更改为软件所在路径内的文件夹即可。./bin/zkServer.sh
就是项目启动、关闭、状态查看的脚本:
# 启动项目./zkServer start# 停止项目./zkServer stop# 查看状态./zkServer status
zk默认的端口是2181,可以在配置文件中更改。
SSM搭建
以下将演示一个服务消费方的控制层远程调用一个服务提供方的服务层的流程。
服务提供者
- 引入以下相关的依赖:
org.apache.dubbo dubbo 2.7.4.1 org.apache.curator curator-framework 4.0.0 org.apache.curator curator-recipes 4.0.0
- application.xml文件中,在头部引入dubbo相关的语法规范配置:
- 添加dubbo的配置:
- 将Service注入注解替换为Dubbo提供的注解:
org.apache.dubbo.config.annotation.Service
服务消费者
服务消费者主要要做的是对其他服务的调用,但是常规情况下是对接口进行注入,然后获取到实现类来完成方法的调用。
- 当然在服务消费者中同样需要引入dubbo和zookeeper的依赖。以及在配置文件中对dubbo进行配置:
在服务消费者中,创建一个接口与服务提供者的接口相同,然后在进行注入的时候通过:
org.apache.dubbo.config.annotation.Reference
注解进行注入。此注解的作用就是远程注入。- 从zookeeper中获取到usereSrvice的url;
- 进行远程接口调用;
- 对调用结果和参数封装成代理对象,给变量赋值;
第一次启动接口进行访问时间会稍微长一点这是正常现象。在访问结束之后会提示接口绑定错误:22222,此接口是dubbo监控系统的端口,如果让两个服务在同一个机器上运行肯定会出现端口占用问题。可以在配置文件中进行端口设置:
由以上情况可知,服务提供方和服务消费方都存在相同的接口,这个接口主要用作service层。为保证一致可以将所有的服务层接口抽离为独立的模块,由各个服务作为依赖引入进行使用:
环球头条:1-基础入门
每日热门:网络安全(中职组)-B模块:Windows操作系统渗透测试
当前资讯!你也能成为“黑客”高手——趣谈Linux Shell编程语言
每辆都是碰撞测试车 特斯拉全球首创真实碰撞测试系统
当前热点-惊蛰习俗有哪些?专家科普:吃梨、吃“懒龙”了解下
【世界报资讯】33万买奥迪A7L!上汽回应“内购价最高优惠16万”:正严查信息外泄
马斯克:曾对加密货币感兴趣 现在钟情于AI
《数据万象带你玩转视图场景》第一期:avif图片压缩详解
每日热讯!计算两个字符串的相似度
2023年兔年金银币价格表(2023年03月06日)
199元!小米推出米家分体露营灯:Type-C接口 满电亮100小时
高速公路“见缝插针”超车致事故 司机:我莽撞了
每日动态!魅族史上最大规模!魅族20系列发布会定点上海梅赛德斯奔驰文化中心
全球滚动:预计上涨0.16元/升!国内油价将于17日24时起再调整
全球视讯!《卧龙:苍天陨落》捏人系统受盛赞 胸部拉到最大也不违和
关于情侣的四字成语有哪些?关于情侣个性签名大全
专业人才入库证书有什么作用?从专业人才走向管理心得体会
花羊羊是谁的妈妈?花羊羊为什么没和村长在一起?
海麻线是什么东西?海麻线的营养价值及功效
MySQL安装入门第一篇
【SpringBoot】AOP默认的动态代理
前端设计模式——工厂模式
电脑怎么设置休眠模式?休眠和待机有什么区别?
洗衣机不进水是哪里的问题?洗衣机不进水怎么处理?
电脑mac地址怎么更改?电脑mac地址查询方法
网件路由器怎么恢复出厂设置?网件路由器哪款性价比高?
全球头条:鼠标是无法识别的usb设备_鼠标成为无法识别的USB设备 怎么办
苹果笔记本好用吗?苹果笔记本换电池需要多少钱?
百度地图怎么看实时街景?百度地图怎么看历史导航轨迹?
全球短讯!极氪汽车被指销售欺诈 有车主坐在体验店门口集体维权
雷军大会发言:小米汽车预计明年上半年量产 一定把车造好!
极致豪华!长城魏牌蓝山内饰官图发布:35万选它还是理想L8
每日资讯:一文看懂2023年CPU如何选:AMD锐龙7000X3D游戏性能封神
阿里拍卖上线湾流G450公务机!博主:近几年最具性价比的一架
全球观天下!055期暗皇福彩3D预测奖号:组选6码参考
焦点报道:【个人杂谈】大体重程序员如何减肥?(个人总结向)
Python、C++、Swift或任何其他语言会取代Java吗?为什么?
速递!koreanDollLikeness_v10模型下载及使用
# 前端周刊:2023-2 期
环球今亮点!Java Struts2系列的XSS漏洞(S2-002)
天天视点!被雷电瞄准时身体会有预兆:如果在乌云下毛发突然竖起 赶紧躲避
世界热议:全球一半人口2035年可能超重:总量超过40亿
全球资讯:石家庄买一根火腿肠就能免费坐地铁 官方回应:鼓励绿色出行
一本院校招聘会现多家酒店招洗碗工引热议 最低工资2千多:官方回应
焦点报道:又一起!美国一小型飞机坠毁后起火 已致1死2伤
聊一聊如何用SonarQube管理.NET代码质量
语义分割评价指标(Dice coefficient, IoU)
(数据库系统概论|王珊)第十章数据库恢复技术-第一、二节:事务的基本概念和数据库恢复概述
天天通讯!Spring Boot 实现装饰器模式,真香!
观天下!密密麻麻!地震后松毛虫大规模入侵土耳其:场面惊悚 令人不适
广东一特斯拉连撞多车冲毁店门现场视频:网友看完称刹车灯亮了 油门当刹车
世界热文:75岁老人中风 好友发现运动步数为0报医:最终脱离危险
全球首个财务自由大学诞生 美国普林斯顿大学2600亿财富养活自己
大神教你在 Linux 中查看你的时区
世界今头条!“帮忙资金”助基金保壳
当前聚焦:工作人员帮游客捡手机被4只幼虎围观 网友:幸亏是“幼儿园”
全球快看点丨董明珠:中国制造业要想成为世界级 必须在创新上下功夫
摄影师把iPhone塞水下拍美景 咕噜咕噜一阵冒泡 Siri:这把憋气局
全球速读:吴青峰发文请大家别听苏打绿的歌:母带仍被非法利用 还听是助纣为虐
学弈这篇文言文是什么意思
环球快报:读Java性能权威指南(第2版)笔记08_即时编译器中
仅1/3美国人能轻松支付400美元应急费用:信用卡违约率激增
可视化调试某个js对象的属性UI插件 class HTUI
每日速递:一进群就水群?试试这个水群拦截工具
世界快讯:裁员70% 关停两个办公点:自动驾驶卡车公司Embark倒闭边缘
【世界新视野】想买法拍车捡漏?你可能得先准备10本驾照
全球速读:985高校女大学生裸辞大公司:每天活得像老鼠
【当前热闻】瞬狙和闪狙哪个更快_瞬狙
精选!台球杆什么皮头最好
世界快消息!打开MASA Blazor的正确姿势4.1:母版页布局
全球热推荐:Study for Go ! Chapter three - Function
day02-项目实现01
全球速读:【奶奶看了都会】ChatGPT3.5接入企业微信,可连续对话
将外部参数传入awk命令的方法汇总
【热闻】Asp.net core mapcontrollers 背后干了些啥
思科交换机的密码策略与端口安全设置
当前关注:Mac OS 打开pycharm立即闪退,报错initial heap size set to a larger value than the max
“一日三次”的药 到底该怎么吃?你可能一直都错了
比亚迪百万豪车!实拍仰望U8原地掉头:这圈儿真圆
环球关注:微软Edge拯救低清老视频 秒变高清!三代N卡、A卡都能用
快看:棉锦防火布
环球即时看!EF7DbContext池
天天时讯:DotNet 5.0 部署 Docker 注意
男子高烧近41度 体温计贴脸狂飙:近期谨防甲流 病死率很高
老人捡到手机不会接听错过四十多通电话 最终成功归还
反诈老陈自曝2022年收入133万:缴税近40万 捐赠84万+
国家二级保护动物有哪些
任意Exe转ShellCode?
快报:一手卖掉《古墓丽影》:SE宣布总裁松田洋介辞职
每日速看!纪念上映20周年:《指环王:王者无敌》将重映4小时加长版
理想L7本月开启交付 50万以内第二排舒适度最好的SUV
全球信息:AMD显卡驱动罕见Bug:Windows都给搞崩了
精彩看点:老牛嚼电线被击倒 网友:应该是母牛 因为公牛不漏电
环球看点!奥斯卡掌掴事件后续
【读书】《成就上瘾:把成事当成一种习惯》
json转golang结构
婚变?前亚视高层与澳门名媛太太近一年未见
焦点播报:员工增长近万人!AMD去年研发支出同比大幅上涨
小米有品219元:平仄普洱生熟茶饼礼盒99元大促
每日热闻!胡令能是哪里人_胡令能简介