vs2017手机网站开发,品牌策划公司怎么选,电商企业网站建设的一般要素有哪些,wordpress公共库设置Nacos与Eureka的使用与区别 单体架构#xff1a;优点缺点 分布式架构需要考虑的问题#xff1a;微服务企业需求 认识SpringCloud服务的拆分与远程调用微服务调用方式 Eureka提供者和消费者架构搭建Eureka服务注册服务发现 Ribbon负载均衡饥饿加载总结 Nacos注册中心Nacos安装… Nacos与Eureka的使用与区别 单体架构优点缺点 分布式架构需要考虑的问题微服务企业需求 认识SpringCloud服务的拆分与远程调用微服务调用方式 Eureka提供者和消费者架构搭建Eureka服务注册服务发现 Ribbon负载均衡饥饿加载总结 Nacos注册中心Nacos安装指南1.Windows安装1.1.下载安装包1.2.解压1.3.端口配置1.4.启动1.5.访问 Nacos服务注册和发现Nacos服务分级存储模型NacosRule负载均衡策略根据权重负载均衡环境隔离-namespaceNacos与Eureka的区别 单体架构
将业务的所有功能集中在一个项目中开发打成一个包部署
优点
架构简单
部署成本低
缺点
耦合度高
分布式架构需要考虑的问题
服务拆分的粒度服务集群地址如何维护服务之间如何实现远程调用服务健康状态如何感知
微服务
微服务是一种经过良好架构设计的分布式架构方案微服务架构特征
单一职责微服务拆分粒度更小每一个服务都对应唯一的业务能力做到单一职责避免重复业务开发面向服务微服务对外暴露业务接口自治团队独立、技术独立、数据独立、部署独立隔离性强
企业需求 认识SpringCloud
服务的拆分与远程调用
服务拆分注意事项
不同微服务不要重复开发相同业务微服务数据独立不要访问其他微服务的数据库微服务可以将自己的业务暴露为接口供其他微服务调用
微服务调用方式
基于RestTemplate发起的http请求实现远程调用http请求做远程调用是与语言无关的调用只要知道对方的ip、端口、接口路径、请求参数即可
Eureka
提供者和消费者
服务提供者暴露接口给其他微服务调用服务消费者调用其他微服务提供的接口提供者和消费角色是相对的一个服务可以同时是服务提供者和消费者
架构
在Eureka架构中微服务角色有两类
EurekaServer服务端注册中心 记录服务信息心跳监控 EurekaClient客户端 Provider服务提供者例如案例中的user-service 注册自己的信息到EurekaServer每隔30秒向EurekaServer发送心跳 consumer服务消费者例如案例中的order-service 根据服务名称从EurekaServer拉去服务列表基于服务列表做负载均衡选中一个微服务后发起远程调用
搭建Eureka
引入eureka-server依赖添加EnableEurekaServer注解在application.yml中配置eureka地址
服务注册
引入eureka-client依赖在application.yml中配置eureka地址
服务发现
引入eureka-client依赖在application.yml中配置eureka地址给RestTemplate添加LoadBalanced注解用服务提供者的服务名称远程调用
Ribbon负载均衡 饥饿加载
Ribbon模式是采用懒加载即第一次访问时才回去创建LoadBalanceClient请求时间会很长。而饥饿加载则会在项目启动时创建降低第一次访问的耗时通过下面配置开启饥饿加载
ribbon:eager-load:enabled: true # 开启饥饿加载clients: userservice #指定对userservice这个服务饥饿加载总结
Ribbon负载均衡规则 规则接口是IRule默认实现是ZoneAvoidanceRule根据zone选择服务列表然后轮询 负载均衡自定义方式 代码方式配置灵活但修改时需要重新打包发布配置方式直观方便无需重新打包发布但是无法做全局配置 饥饿加载 开启饥饿加载指定饥饿加载的微服务名称
Nacos注册中心
Nacos安装指南
1.Windows安装
开发阶段采用单机安装即可。
1.1.下载安装包
在Nacos的GitHub页面提供有下载链接可以下载编译好的Nacos服务端或者源代码
GitHub主页https://github.com/alibaba/nacos
GitHub的Release下载页https://github.com/alibaba/nacos/releases
1.2.解压
将这个包解压到任意非中文目录下
目录说明
bin启动脚本conf配置文件
1.3.端口配置
Nacos的默认端口是8848如果你电脑上的其它进程占用了8848端口请先尝试关闭该进程。
如果无法关闭占用8848端口的进程也可以进入nacos的conf目录修改配置文件中的端口。
1.4.启动
启动非常简单进入bin目录
然后执行命令即可 windows命令 startup.cmd -m standalone1.5.访问
在浏览器输入地址http://127.0.0.1:8848/nacos即可
默认的账号和密码都是nacos进入后
Nacos服务注册和发现
引入nacos.discovery依赖配置nacos地址spring.cloud.nacos.server-addr
Nacos服务分级存储模型
一级是服务例如userservice二级是集群例如杭州或上海三级是实例例如杭州机房的某台部署了userservice的服务器
如何设置实例的集群属性
修改application.yml文件添加
spring.cloud.nacos.discovery.cluster-name属性NacosRule负载均衡策略
优先选择同集群服务实例列表本地集群找不到提供者才去其他集群找并且会报警告确定了可用实例列表后再采用随机负载均衡挑选实例
根据权重负载均衡
在Nacos控制台设置实例的权重值。
环境隔离-namespace
Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西用来做最外层隔离
namespace用来做环境隔离每个namespace都有唯一id不同namespace下的服务不可见
Nacos与Eureka的区别
共同点
都支持服务注册和服务拉取都支持服务提供者心跳方式做健康检测
Nacos与Eureka的区别
Nacos支持服务端主动检测提供者状态临时实例采用心跳模式非临时实例采用主动检测模式临时实例心跳不正常会被剔除非临时实例则不会被剔除Nacos支持服务列表变更的消息推送模式服务列表更新更及时Nacos集群默认采用AP方式当集群中存在非临时实例时采用CP模式Eureka采用AP方式