阿里云1M做网站闸北区网站建设网

news/2025/10/6 1:37:10/文章来源:
阿里云1M做网站,闸北区网站建设网,好看简单易做的网站,东莞网络推广外包托管狂神说SpringBoot系列连载课程#xff0c;通俗易懂#xff0c;基于SpringBoot2.2.5版本#xff0c;欢迎各位狂粉转发关注学习。未经作者授权#xff0c;禁止转载分布式理论什么是分布式系统#xff1f;在《分布式系统原理与范型》一书中有如下定义#xff1a;“分布式系统… 狂神说SpringBoot系列连载课程通俗易懂基于SpringBoot2.2.5版本欢迎各位狂粉转发关注学习。未经作者授权禁止转载分布式理论什么是分布式系统在《分布式系统原理与范型》一书中有如下定义“分布式系统是若干独立计算机的集合这些计算机对于用户来说就像单个相关系统”分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器处理更多的数据。分布式系统(distributed system)是建立在网络之上的软件系统。首先需要明确的是只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候应用程序也不能进一步优化的时候我们才需要考虑分布式系统。因为分布式系统要解决的问题本身就是和单机系统一样的而由于分布式系统多节点、通过网络通信的拓扑结构会引入很多单机系统没有的问题为了解决这些问题又会引入更多的机制、协议带来更多的问题。。。Dubbo文档随着互联网的发展网站应用的规模不断扩大常规的垂直应用架构已无法应对分布式服务架构以及流动计算架构势在必行急需一个治理系统确保架构有条不紊的演进。在Dubbo的官网文档有这样一张图单一应用架构当网站流量很小时只需一个应用将所有功能都部署在一起以减少部署节点和成本。此时用于简化增删改查工作量的数据访问框架(ORM)是关键。适用于小型网站小型管理系统将所有功能都部署到一个功能里简单易用。缺点1、性能扩展比较难2、协同开发问题3、不利于升级维护垂直应用架构当访问量逐渐增大单一应用增加机器带来的加速度越来越小将应用拆成互不相干的几个应用以提升效率。此时用于加速前端页面开发的Web框架(MVC)是关键。通过切分业务来实现各个模块独立部署降低了维护和部署的难度团队各司其职更易管理性能扩展也更方便更有针对性。缺点公用模块无法重复利用开发性的浪费分布式服务架构当垂直应用越来越多应用之间交互不可避免将核心业务抽取出来作为独立的服务逐渐形成稳定的服务中心使前端应用能更快速的响应多变的市场需求。此时用于提高业务复用及整合的分布式服务框架(RPC)是关键。流动计算架构当服务越来越多容量的评估小服务资源的浪费等问题逐渐显现此时需增加一个调度中心基于访问压力实时管理集群容量提高集群利用率。此时用于提高机器利用率的资源调度和治理中心(SOA)[ Service Oriented Architecture]是关键。什么是RPCRPC【Remote Procedure Call】是指远程过程调用是一种进程间通信方式他是一种技术的思想而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数本质上编写的调用代码基本相同。也就是说两台服务器AB一个应用部署在A服务器上想要调用B服务器上应用提供的函数/方法由于不在一个内存空间不能直接调用需要通过网络来表达调用的语义和传达调用的数据。为什么要用RPC呢就是无法在一个进程内甚至一个计算机内通过本地调用的方式完成的需求比如不同的系统间的通讯甚至不同的组织间的通讯由于计算能力需要横向扩展需要在多台机器组成的集群上部署应用。RPC就是要像调用本地的函数一样去调远程函数推荐阅读文章https://www.jianshu.com/p/2accc2840a1bRPC基本原理步骤解析RPC两个核心模块通讯序列化。测试环境搭建DubboApache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架它提供了三大核心能力面向接口的远程方法调用智能容错和负载均衡以及服务自动注册和发现。dubbo官网 http://dubbo.apache.org/zh-cn/index.html1.了解Dubbo的特性2.查看官方文档dubbo基本概念服务提供者(Provider)暴露服务的服务提供方服务提供者在启动时向注册中心注册自己提供的服务。服务消费者(Consumer)调用远程服务的服务消费方服务消费者在启动时向注册中心订阅自己所需的服务服务消费者从提供者地址列表中基于软负载均衡算法选一台提供者进行调用如果调用失败再选另一台调用。注册中心(Registry)注册中心返回服务提供者地址列表给消费者如果有变更注册中心将基于长连接推送变更数据给消费者监控中心(Monitor)服务消费者和提供者在内存中累计调用次数和调用时间定时每分钟发送一次统计数据到监控中心调用关系说明l 服务容器负责启动加载运行服务提供者。l 服务提供者在启动时向注册中心注册自己提供的服务。l 服务消费者在启动时向注册中心订阅自己所需的服务。l 注册中心返回服务提供者地址列表给消费者如果有变更注册中心将基于长连接推送变更数据给消费者。l 服务消费者从提供者地址列表中基于软负载均衡算法选一台提供者进行调用如果调用失败再选另一台调用。l 服务消费者和提供者在内存中累计调用次数和调用时间定时每分钟发送一次统计数据到监控中心。Dubbo环境搭建点进dubbo官方文档推荐我们使用Zookeeper 注册中心什么是zookeeper呢可以查看官方文档Window下安装zookeeper1、下载zookeeper 地址 我们下载3.4.14 最新版解压zookeeper2、运行/bin/zkServer.cmd 初次运行会报错没有zoo.cfg配置文件可能遇到问题闪退 !解决方案编辑zkServer.cmd文件末尾添加pause 。这样运行出错就不会退出会提示错误信息方便找到原因。3、修改zoo.cfg配置文件将conf文件夹下面的zoo_sample.cfg复制一份改名为zoo.cfg即可。注意几个重要位置dataDir./   临时数据存储的目录(可写相对路径)clientPort2181   zookeeper的端口号修改完成后再次启动zookeeper4、使用zkCli.cmd测试ls /列出zookeeper根下保存的所有节点[zk: 127.0.0.1:2181(CONNECTED) 4] ls /[zookeeper]create –e /kuangshen 123创建一个kuangshen节点值为123get /kuangshen获取/kuangshen节点的值我们再来查看一下节点window下安装dubbo-admindubbo本身并不是一个服务软件。它其实就是一个jar包能够帮你的java程序连接到zookeeper并利用zookeeper消费、提供服务。但是为了让用户更好的管理监控众多的dubbo服务官方提供了一个可视化的监控程序dubbo-admin不过这个监控即使不装也不影响使用。我们这里来安装一下1、下载dubbo-admin地址 https://github.com/apache/dubbo-admin/tree/master2、解压进入目录修改 dubbo-admin\src\main\resources \application.properties 指定zookeeper地址server.port7001spring.velocity.cachefalsespring.velocity.charsetUTF-8spring.velocity.layout-url/templates/default.vmspring.messages.fallback-to-system-localefalsespring.messages.basenamei18n/messagespring.root.passwordrootspring.guest.passwordguestdubbo.registry.addresszookeeper://127.0.0.1:21813、在项目目录下打包dubbo-adminmvn clean package -Dmaven.test.skiptrue 第一次打包的过程有点慢需要耐心等待直到成功4、执行 dubbo-admin\target 下的dubbo-admin-0.0.1-SNAPSHOT.jarjava -jar dubbo-admin-0.0.1-SNAPSHOT.jar【注意zookeeper的服务一定要打开】执行完毕我们去访问一下 http://localhost:7001/ 这时候我们需要输入登录账户和密码我们都是默认的root-root登录成功后查看界面安装完成SpringBoot Dubbo zookeeper框架搭建1. 启动zookeeper 2. IDEA创建一个空项目3.创建一个模块实现服务提供者provider-server 选择web依赖即可4.项目创建完毕我们写一个服务比如卖票的服务编写接口package com.kuang.provider.service;public interface TicketService {    public String getTicket();}编写实现类package com.kuang.provider.service;public class TicketServiceImpl implements TicketService {    Override    public String getTicket() {        return 《狂神说Java》;   }}5.创建一个模块实现服务消费者consumer-server 选择web依赖即可6.项目创建完毕我们写一个服务比如用户的服务编写servicepackage com.kuang.consumer.service;public class UserService {    //我们需要去拿去注册中心的服务}需求现在我们的用户想使用买票的服务这要怎么弄呢 服务提供者1、将服务提供者注册到注册中心我们需要整合Dubbo和zookeeper所以需要导包我们从dubbo官网进入github看下方的帮助文档找到dubbo-springboot找到依赖包dependency    groupIdorg.apache.dubbogroupId    artifactIddubbo-spring-boot-starterartifactId    version2.7.3versiondependency    zookeeper的包我们去maven仓库下载zkclientdependency    groupIdcom.github.sgroschupfgroupId    artifactIdzkclientartifactId    version0.1versiondependency【新版的坑】zookeeper及其依赖包解决日志冲突还需要剔除日志依赖dependency    groupIdorg.apache.curatorgroupId    artifactIdcurator-frameworkartifactId    version2.12.0versiondependencydependency    groupIdorg.apache.curatorgroupId    artifactIdcurator-recipesartifactId    version2.12.0versiondependencydependency    groupIdorg.apache.zookeepergroupId    artifactIdzookeeperartifactId    version3.4.14version        exclusions        exclusion            groupIdorg.slf4jgroupId            artifactIdslf4j-log4j12artifactId        exclusion    exclusionsdependency2、在springboot配置文件中配置dubbo相关属性#当前应用名字dubbo.application.nameprovider-server#注册中心地址dubbo.registry.addresszookeeper://127.0.0.1:2181#扫描指定包下服务dubbo.scan.base-packagescom.kuang.provider.service3、在service的实现类中配置服务注解发布服务注意导包问题import org.apache.dubbo.config.annotation.Service;import org.springframework.stereotype.Component;Service //将服务发布出去Component //放在容器中public class TicketServiceImpl implements TicketService {    Override    public String getTicket() {        return 《狂神说Java》;   }}逻辑理解 应用启动起来dubbo就会扫描指定的包下带有component注解的服务将它发布在指定的注册中心中服务消费者1、导入依赖和之前的依赖一样dependency    groupIdorg.apache.dubbogroupId    artifactIddubbo-spring-boot-starterartifactId    version2.7.3versiondependencydependency    groupIdcom.github.sgroschupfgroupId    artifactIdzkclientartifactId    version0.1versiondependencydependency    groupIdorg.apache.curatorgroupId    artifactIdcurator-frameworkartifactId    version2.12.0versiondependencydependency    groupIdorg.apache.curatorgroupId    artifactIdcurator-recipesartifactId    version2.12.0versiondependencydependency    groupIdorg.apache.zookeepergroupId    artifactIdzookeeperartifactId    version3.4.14version        exclusions        exclusion            groupIdorg.slf4jgroupId            artifactIdslf4j-log4j12artifactId        exclusion    exclusionsdependency2、配置参数#当前应用名字dubbo.application.nameconsumer-server#注册中心地址dubbo.registry.addresszookeeper://127.0.0.1:21813. 本来正常步骤是需要将服务提供者的接口打包然后用pom文件导入我们这里使用简单的方式直接将服务的接口拿过来路径必须保证正确即和服务提供者相同4. 完善消费者的服务类package com.kuang.consumer.service;import com.kuang.provider.service.TicketService;import org.apache.dubbo.config.annotation.Reference;import org.springframework.stereotype.Service;Service //注入到容器中public class UserService {    Reference //远程引用指定的服务他会按照全类名进行匹配看谁给注册中心注册了这个全类名    TicketService ticketService;    public void bugTicket(){        String ticket ticketService.getTicket();        System.out.println(在注册中心买到ticket);   }}5. 测试类编写RunWith(SpringRunner.class)SpringBootTestpublic class ConsumerServerApplicationTests {    Autowired    UserService userService;    Test    public void contextLoads() {        userService.bugTicket();   }}启动测试1. 开启zookeeper2. 打开dubbo-admin实现监控【可以不用做】3. 开启服务者4. 消费者消费测试结果监控中心 ok , 这就是SpingBoot dubbo zookeeper实现分布式开发的应用其实就是一个服务拆分的思想end视频同步更新这次一定

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

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

相关文章

Software Foundations Vol.I : 归纳证明(Induction)

Software Foundations Vol.I : 归纳证明(Induction)归纳法证明 我们在上一章中通过基于化简的简单论据证明了 0 是 + 的左幺元。 我们也观察到,当我们打算证明 0 也是 + 的 右 幺元时事情就没这么简单了 Theorem plus…

外贸网站建设和seo海淀网站建设多少钱

本质上, 这两种方式都是加载CSS文件, 但还是存在着细微的差别 import 机制不同于link,link是加载页面前css加载完毕,import 是先读取文件再加载import是css2.0里的 ie5以上不支持用js控制dom时改变样式,只能用link,import不是dom…

广州网站建设app开发哈尔滨网页模板建站

首先思考一个问题:如果 Dubbo 应用使用 ZooKeeper 作为注册中心,现在需要切换到新的 ZooKeeper 实例,如何做到流量无损? 本文提供解决这个问题的一种方案。 场景 有两个基于 Dubbo 的微服务应用,一个是服务提供者&…

Software Foundations Vol.I : Coq函数式编程(Basics)

好久没写随笔了,随便投投.这里的内容主要取至《软件基础》第一卷https://coq-zh.github.io/. 我补充了一部分习题的答案,在https://github.com/mesonoxian-yao/softwareFoudations-volume1-coqLearn可以看看. Software…

Python 在自然语言处理中的应用与发展

一、引言 🗣️ 自然语言处理(NLP)是人工智能的重要分支,旨在让计算机理解、生成和处理人类语言。它广泛应用于 搜索引擎、机器翻译、智能客服、情感分析、舆情监测 等场景。Python 作为 AI 研究和工程实现的主流语…

专业的深圳网站建设公司排名深圳网站制作公司在那

文章目录 解决TensorRT加速推理SDXL出现黑图问题1. fp162. 更换vae 解决TensorRT加速推理SDXL出现黑图问题 一般产生黑图,仅需要修改下面两个问题即可解决。 1. fp16 将pipeline中的fp16修改为fp32。 在使用稳定扩散(Stable Diffusion)生…

影响网站可用性的因素青州网站设计

文章目录 协议局域网通信IP 地址网络通信的本质tcp 和 udp 协议网络字节序网络主机数据转化接口 协议 协议:收到数据后,多出来的那一部分,也叫一种 “约定”,一整套的自硬件到软件,都有协议,需要有人定制&a…

Python 在网络爬虫与数据采集中的应用

一、引言 🌐 在大数据时代,数据已成为企业与科研的核心资产。然而,很多数据并不以结构化形式直接提供,需要通过网络爬虫和采集技术来获取。Python,凭借其简洁的语法、强大的第三方库和活跃的社区支持,已经成为网…

开通网站主机站长统计网站统计

栅格数据是一种从远处表示地球表面和大气的地理空间数据,通常使用卫星或航空传感器。它是一种基于网格的数据结构,其中网格中的每个单元或像素代表地球表面的特定位置。这些像素可以存储各种类型的信息,例如海拔、温度、土地覆盖、降水量或与该位置相关的任何其他连续或分类…

做网站和seo哪个好网站制作的收费标准

虚拟机Linux系统网络配置: 1、Vmware网络设置 虚拟机设置->网路适配器->网络连接 桥接模式:能提供独立的IP地址的情况下使用NAT模式:一台计算机只能使用一个IP,主机与虚拟机共享IP,外部网络无法发现虚拟机&#…

wordpress 企业整站源码岳阳网站建设网站

点击访问体验 之前有体验过github的代码助手,奈何收费了,上周发现有一个免费的代码助手。 下载安装 vscode 搜索扩展 TONGYI Lingma 安装完成后登陆即可体验 写注释让他写代码 根据上下文自动补充 这里我只写了一个方法名,getAgencyList…

15_spring_data_neo4j简单教程

Spring Data Neo4j 简单教程 简介 Spring Data Neo4j 是 Spring Data 项目的一部分,它提供了对 Neo4j 图数据库的集成支持。通过 Spring Data Neo4j,开发者可以轻松地在 Spring Boot 应用中使用 Neo4j 数据库,利用图…

珠海网站制作哪家便宜久久建筑网 百度网盘

认证与权限频率组件 身份验证是将传入请求与一组标识凭据(例如请求来自的用户或其签名的令牌)相关联的机制。然后 权限 和 限制 组件决定是否拒绝这个请求。 简单来说就是: 认证确定了你是谁权限确定你能不能访问某个接口限制确定你访问某…

成都网站建设制作设计内蒙古最新消息今天

Python是一种高级编程语言,广泛用于数据科学、人工智能、网络编程等领域。 Python提供了许多内置函数和标准库,可以完成各种任务: 1、print()函数:将文本输出到控制台。可以将字符串、数字和变量等输出到控制台。 2、input()函…

创建自己的网站怎么弄宁乡市住房和城乡建设局网站

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定去往该目标网络的最优BGP路由,然后将该最优BGP路由与去往同一目标网络的其他协议路由进行比较,从而决定是否将该最优…

重庆商家网站农村自建房设计师哪里找

目录 Python基础(八)--迭代,生成器,装饰器与元类 1 迭代 1.1 可迭代对象与迭代器 1.2 自定义迭代类型 1.3 迭代合体 2 生成器 2.1 什么是生成器 2.2 生成器表达式 2.3 生成器函数 3 装饰器 3.1 闭包 3.2 什么是装饰器 …

如何向百度举报网站国外网站怎么上

2019独角兽企业重金招聘Python工程师标准>>> 安装。。。后查看 import django django.VERSION #输出版本号,目前自己是py2.7.9和django1.8 1,新建一个django-project django-admin.py startproject project-name 一个project一般为一个项目 …

网站制作费用申请移动互联网开发记事本项目告别

这一篇讲解消费者 文章目录一、依赖配置1. 引入依赖2. 配置文件3. 主配置二、代码Conding2.1. 消费者代码一、依赖配置 1. 引入依赖 <!--springboot整合RabbitMQ依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>sp…

济南seo外贸网站建设小型公司网站建设

AV1 屏幕内容编码 为了提高屏幕捕获内容的压缩性能&#xff0c;AV1采用了几种编码工具&#xff0c;例如用于处理屏幕画面中重复模式的内帧内块复制&#xff08;IntraBC&#xff09;&#xff0c;以及用于处理颜色数量有限的屏幕块的调色板模式。 帧内块拷贝 AV1 编码中的 Intra …

锦州做网站哪家好cloudfare wordpress

文章目录 Spring Boot 约定大于配置&#xff1a;实现自定义配置引言1. Spring Boot 的约定大于配置2. 自定义配置的需求3. 实现自定义配置的步骤4. 示例&#xff1a;自定义 Spring MVC 配置4.1 创建自定义配置类4.2 创建自定义拦截器4.3 测试自定义配置 5. 其他自定义配置场景5…