欧宝nba直播:SpringCloud学习笔记
作者:欧宝nba直播在线直播 出处:欧宝odbo官网
随着互联网行业的发展对服务的要求也越来越高服务架构也从单体架构逐渐演变为现在流行的微服务架构。
概念根据业务功能对系统做拆分每个业务功能模块作为独立项目开发称为一个服务。
单一职责微服务拆分粒度更小每一个服务都对应唯一的业务能力做到单一职责
微服务的上述特性其实是在给分布式架构制定一个标准进一步降低服务之间的耦合度提供服务的独立性和灵活性。做到高内聚低耦合。
但方案该怎么落地选用什么样的技术栈全球的互联网公司都在积极尝试自己的微服务落地方案。
SpringCloud集成了各种微服务功能组件并基于SpringBoot实现了这些组件的自动装配从而提供了良好的开箱即用体验。
另外SpringCloud底层是依赖于SpringBoot的并且有版本的兼容关系如下
SpringCloud是微服务架构的一站式解决方案集成了各种优秀微服务功能组件
订单服务如果需要查询用户信息只能调用用户服务的Restful接口不能查询用户数据库
根据id查询订单返回值是Order对象如图
服务消费者一次业务中调用其它微服务的服务。调用其它微服务提供的接口
但是服务提供者与服务消费者的角色并不是绝对的而是相对于业务而言。
order-service根据服务名称拉取实例地址列表。这个叫服务发现或服务拉取
当超过一定时间没有发送心跳时eureka-server会认为微服务实例故障将该实例从服务列表中剔除
服务发现、服务注册统一都封装在eureka-client依赖因此这一步与服务注册时一致。
SpringCloud底层其实是利用了一个名为Ribbon的组件来实现负载均衡功能的。
对以下两种服务器进行忽略 1在默认情况下这台服务器如果3次连接失败这台服务器就会被设置为“短路”状态。短路状态将持续30秒如果再次连接失败短路的持续时间就会几何级地增加。 2并发数过高的服务器。如果一个服务器的并发连接数过高配置了AvailabilityFilteringRule规则的客户端也会将其忽略。并发连接数的上限可以由客户端的clientName.clientConfigNameSpace.ActiveConnectionsLimit属性进行配置。
为每一个服务器赋予一个权重值。服务器响应时间越长这个服务器的权重就越小。这个规则会随机选择服务器这个权重值会影响服务器的选择。
以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类这个Zone可以理解为一个机房、一个机架等。而后再对Zone内的多个服务做轮询。
Nacos是SpringCloudAlibaba的组件而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说并没有太大区别。
因此Nacos中提供了一个NacosRule的实现可以优先从同集群中挑选实例。
因此Nacos提供了权重配置来控制访问频率权重越大则访问频率越高。
非临时实例如果实例宕机不会从服务列表剔除也可以叫永久实例。
①Nacos支持服务端主动检测提供者状态临时实例采用心跳模式非临时实例采用主动检测模式
当微服务部署的实例越来越多达到数十、数百时逐个修改微服务配置就会让人抓狂而且很容易出错。我们需要一种统一配置管理方案可以集中管理所有实例的配置。
首先在user-service服务中引入nacos-config的客户端依赖
在user-service中的UserController中添加业务逻辑读取pattern.dateformat配置
使用ConfigurationProperties注解代替Value注解。
其实微服务启动时会去nacos读取多个配置文件例如
在user-service服务中修改PatternProperties类读取新添加的属性
修改UserApplication2这个启动项改变其profile值
FULL记录所有请求和响应的明细包括头信息、请求体、元数据。
参数列表中的注解映射并不会继承因此Controller中必须再次声明方法、参数列表、注解
将Feign的Client抽取为独立模块并且把接口有关的POJO、默认的Feign配置都放到这个模块中提供给所有消费者使用。
网关作为微服务入口需要校验用户是是否有请求资格如果没有则进行拦截。
路由和负载均衡一切请求都必须先经过gateway但网关不处理业务而是根据某种规则把请求转发到某个微服务这个过程叫做路由。当然路由的目标服务有多个时还需要做负载均衡。
限流当请求流量过高时在网关中按照下流的微服务能够接受的速度来放行请求避免服务压力过大。
跨域问题浏览器禁止请求的发起者与服务端发生跨域ajax请求请求被浏览器拦截的问题
本内容为PUDN经合法授权发布,文章内容为作者独立观点,不代表PUDN立场,未经允许不得转载。
Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用
1. maven父子项目 父工程配置 新项目,maven,父工程名称 字符编码,设置,编辑器文件编码 注解功效激活 java编译选择1.8 文件类型文件过滤 删除掉父工程下的src,只保留一个pom.xml 父工程的...
所预备的理论和技术储备。架构方面,如:面向服务架构(SOA)、微服务架构、事件驱动架构。技术方面,如:Java 8、
上一篇:5分钟深度解析鸿蒙基础架构附原文档!
下一篇:从今定义未来:构建下一代通信基础设施以支持网络新需求