当前位置: 首页 > news >正文

如何建设好网站什么是网站国内高速空间

如何建设好网站,什么是网站国内高速空间,外贸营销平台推广,安徽亳州建设厅网站SpringCloud 基本概念 系统架构 我们之前做的所有的项目都属于单体架构#xff0c;下面我们将要学习更适合大型项目的分布式架构 单体架构#xff1a; 将业务的所有功能几种在一个项目中开发#xff0c;打成一个包部署。 优点#xff1a;架构简单、部署成本低 缺点下面我们将要学习更适合大型项目的分布式架构 单体架构 将业务的所有功能几种在一个项目中开发打成一个包部署。 优点架构简单、部署成本低 缺点耦合度高 分布式架构 根据业务功能对系统进行拆分、每个业务模块作为独立项目开发称为一个服务。 优点降低服务耦合、有利于服务升级拓展。 缺点架构复杂、运维、监控、部署难度高。 微服务 微服务是一种经过良好的架构设计的分布式架构方案。 微服务架构特征 单一职责微服务拆分粒度更小每一个服务都对应唯一的业务能力做到单一职责。面向服务微服务对外暴露业务接口自治团队独立技术独立数据独立部署独立。隔离性强服务调用做好隔离、容错、降级避免出现级联问题。 级联问题常涉及数据的关联性操作引发的一系列连锁变化。 微服务结构 最知名的两种技术架构SpringCloud、阿里巴巴Dubbo SpringCloud集成了各种微服务功能组件。 并基于SpringBoot实现了这些组件的自动装配从而提供了良好的体验。 服务的拆分总结 不同微服务不能重复开发相同业务。微服务数据独立不能访问其他微服务的数据库。微服务将自己的业务暴露为接口供其他微服务使用。 远程调用 案例有两个服务分别是用户服务和订单服务要求根据订单ID查询订单的同时把订单所属的用户信息一起返回。 前面知道不同服务之间数据库互相独立所以我们就只能在后端再发一次http请求去调用其他服务的接口。 这就需要在Java代码中发起HTTP请求此处使用 RestTemplate RestTemplate 是 Spring 框架提供的一个同步的 HTTP 客户端工具用于在 Java 应用程序中发送 HTTP 请求并处理响应。 // 我们需要在配置类中声明一个Bean启动类也属于配置类所以此方法也可写入启动类中。/*** 创建RestTemplate并注入Spring容器* return*/ Bean public RestTemplate restTemplate(){return new RestTemplate(); }然后就可以在Java代码中发送请求了 Service public class OrderService {Autowiredprivate OrderMapper orderMapper;Autowiredprivate RestTemplate restTemplate;public Order queryOrderById(Long orderId) {// 1.查询订单Order order orderMapper.findById(orderId);String url http://localhost:8081/user/ order.getUserId();//使用RestTemplate发送请求第一个参数为请求地址第二个参数为序列化返回对象User user restTemplate.getForObject(url, User.class);order.setUser(user);// 4.返回return order;} }提供者与消费者 服务提供者:一次业务中被其它微服务调用的服务。(提供接口给其它微服务)服务消费者:一次业务中调用其它微服务的服务。调用其它微服务提供的接口) 服务调用关系 服务提供者暴露接口给其他微服务调用服务消费者调用其他微服务提供的接口提供者与消费者角色是相对的一个服务可以同时是服务提供者和服务消费者 Eureka注册中心 前面书写存在一些问题有硬编码的部分请求地址是写死了。 Eureka作用 消费者该如何获取服务提供者具体信息? 服务提供者启动时向eureka注册自己的信息eureka保存这些信息消费者根据服务名称向eureka拉取提供者信息 如果有多个服务提供者消费者该如何选择? 服务消费者利用负载均衡算法从服务列表中挑选一个 消费者如何感知服务提供者健康状态? 服务提供者会每隔30秒向 EurekaServer 发送心跳请求报告健康状态eureka会更新记录服务列表信息心跳不正常会被剔除消费者就可以拉取到最新的信息 在Eureka架构中微服务角色有两类: EurekaServer : 服务端注册中心 记录服务信息心跳监控 EurekaClient : 客户端 Provider:服务提供者例如案例中的user-service 注册自己的信息到 Eureka Server每隔30秒向Eureka Server发送心跳 consumer:服务消费者例如案例中的order-service 根据服务名称从Eureka Server拉取服务列表基于服务列表做负载均衡选中一个微服务后发起远程调用 搭建Eureka Server服务端 第一步创建新的Maven模块引入eureka-server依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId /dependency第二步为启动类添加启动注解 EnableEurekaServer SpringBootApplication public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class,args);} }第三步添加配置信息 server:port: 10086 spring:application:name: eurekaservereureka:client:service-url: #eureka地址信息defaultZone: http://127.0.0.1:10086/eureka 注册user-service 第一步在需要注册的服务中引入eureka-client依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId /dependency第二步在配置文件中添加配置 spring:application:name: userservereureka:client:service-url: #eureka地址信息defaultZone: http://127.0.0.1:10086/eureka同理也可以注册order-service 复制服务右键要copy的服务点击Copy Configuration 起一个名称然后在VM options中配置一个新的端口 -Dserver.port8082 服务拉取 服务拉取是基于服务器名称获取服务列表然后在对服务列表做负载均衡 修改OrderService的代码修改访问的url路径用服务器名代替ip、端口 String url http://userservice/user/ order.getUserId();在RestTemplate的Bean中添加负载均衡注解 Bean LoadBalanced public RestTemplate restTemplate(){return new RestTemplate(); }Ribbon负载均衡 Nacos注册中心 启动方式 startup.cmd -m standalone服务注册 在父工程中添加spring-cloud-alibaba的管理依赖 !-- Nacos 管理依赖-- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.2.5.RELEASE/versiontypepom/typescopeimport/scope /dependency注释原有的eureka依赖添加nacos的客户端依赖 dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency修改配置文件 spring:application:name: orderservicecloud:nacos:server-addr: localhost:8848 #nacos服务地址Nacos服务分级存储模型 一个服务可以有多个实例大型公司会将实例部署在不同的服务器内。一个服务器机房就称为一个集群。 服务调用尽可能调用本地集群的服务跨集群调用延迟较高只有当本地集群不可访问时再去访问其他的集群。 配置服务集群属性修改yml spring:cloud:nacos:server-addr: localhost:8848 # Nacos 服务端地址discovery:cluster-name: HB # 配置集群名称机房位置如果想要设置优先访问同集群服务则需要修改负载均衡的IRule userservice: # 要做配置的微服务名称ribbon:NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则注意将user-service的权重都设置为1 小结NacosRule负载均衡策略 优先选择同集群服务实例列表本地集群找不到提供者才会到其他集群找并且会报警告确定了可用实例列表后再采用随机负载均衡挑选实例 根据权重负载均衡 实际部署中会出现这样的场景: 服务器设备性能有差异部分实例所在机器性能较好另一些较差我们希望性能好的机器承担更多的用户请求 Nacos提供了权重配置来控制访问频率权重越大访问频率越高。 在Nacos控制台可以设置实例的权重值点击编辑按钮 小结实例的权重控制 Nacos控制台可以设置实例的权重值0~1之间同集群内的多个实例权重越高被访问的频率越高权重设置为0则完全不会被访问 环境隔离 - namespace Nacos 中服务存储和数据存储的最外层都是一个名为namespace的东西用来做最外层隔离 注意服务只能访问当前命名空间无法访问其他命名空间的服务 Namespace 下有 Group 下有 Service / Data 新建命名空间在Nacos控制台中 - 命名空间 - 新建命名空间 在代码中修改服务到新的命名空间 spring:cloud:nacos:server-addr: localhost:8848 #nacos服务地址discovery:cluster-name: HB # 集群名称namespace: xxxx # 命名空间idNacos环境隔离 namespace用来做环境隔离每个namespace都有唯一id不同namespace下的服务不可见 临时实例与非临时实例 服务注册到Nacos时可以选择注册为临时或非临时实例通过下面的配置来设置 spring:cloud:nacos:server-addr:discovery:namespace:ephemeral: false #是否为临时实例临时实例宕机时会从nacos的服务列表中剔除而非临时实例则不会 与Eureka的对比 Nacos与eureka的共同点 都支持服务注册和服务拉取都支持服务提供者心跳方式做健康检测 Nacos与Eureka的区别 Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式非临时实例采用主动检测模式临时实例心跳不正常会被剔除非临时实例则不会被剔除Nacos支持服务列表变更的消息推送模式服务列表更新更及时Nacos集群默认采用AP方式当集群中存在非临时实例时采用CP模式;Eureka采用AP方式 AP 可用性保证 CP 一致性保证
http://www.w-s-a.com/news/204414/

相关文章:

  • wordpress项目插件seo的含义
  • 网站平台建设的作用电影宣传类网页界面设计
  • 户外网站模板国外优秀的平面设计网站
  • 家政网站怎么做网站机房建设方案
  • 学校网站建设运行情况2022年近期舆情热点话题
  • 做淘宝需要知道什么网站吗有没有做软件的网站
  • 安丘网站建设制作做网站和微信小程序
  • 京东网站的建设与发展前景黑龙江建设网官网登陆
  • soho的网站怎么做微网站平台建设方案
  • 网站开发下载阿里云oss做视频网站
  • 东莞营销网站制作做一个网站建设
  • 啥网站都能看的浏览器下载网站后台管理系统展望
  • 新建站点步骤汉中 wordpress联盟
  • 坪山网站设计的公司网站 seo 设置
  • 济南网站设计公司排名如何免费注册网站域名
  • 网站开发分工甜妹妹福利wordpress
  • 网站中英文要怎么做网站建设的策划文案
  • 合肥推广外包公司佛山seo
  • 成都网站品牌设计策划课堂网站开发
  • 做直播网站赚钱公司网站空间怎么续费
  • 企业网站制作公司有哪些太原网站建设 thinkphp3.2
  • 云集网站哪个公司做的百度竞价排名怎么做
  • 做网站公司赚钱吗网站建设英语翻译
  • 网络公司除了做网站产品设计作品
  • dede网站模板替换湘潭建设路街道网站
  • 东莞网站优化效果如何网络设计工作
  • 网站备案系统验证码出错的解决方案任丘建设银行网站
  • 个人博客建站wordpress叮当app制作
  • 网站式的公司记录怎么做二手书网站策划书
  • 营销型网站的建设重点是什么帝国程序和WordPress