做的网站适应屏幕大小网站策划包括什么
注册中心
- eureka
 - 服务端
 - 客户端
 - 负载均衡
 
- nacos
 - 服务端
 - 客户端
 - nacos分级存储模型
 - 配置集群属性
 
- nacos环境隔离-namespace
 - 临时实例和非临时实例
 
- Eureka和Nacos的异同
 - 负载均衡策略
 - 饥饿加载
 
eureka

 
服务端
- 依赖
 
<!--        eureka注册中心服务端依赖--><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies>
 
- 配置项
 
server:port: 10086spring:application:name: eurekaservereureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka
 
- 启动项
 
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class,args);}
} 
客户端
- 依赖
 
<!--        eureka注册中心客户端依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
 
- 配置项
 
eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka/
 
负载均衡
消费者该如何获取服务提供者具体信息?
- 服务提供者启动时向eureka注册自己的信息
 - eureka保存这些信息
 - 消费者根据服务名称向eureka拉取提供者信息
 
如果有多个服务提供者,消费者该如何选择
- 服务消费者利用负载均衡算法,从服务列表中挑选一个
 
消费者如何感知服务提供者健康状态?
- 服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态
 - eureka会更新记录服务列表信息,心跳不正常会被剔除
 - 消费者就可以拉取到最新的信息
 
nacos

在项目父依赖文件中引入
<!--            nacos依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.5.RELEASE</version><type>pom</type><scope>import</scope></dependency>
 
服务端
- 服务端启动:nacos安装目录bin文件夹下,打开命令窗口:startup.cmd -m standalone
 - 端口修改:修改nacos安装目录conf中的application.properties中的server.port
 
客户端
- 引入依赖
 
        <!--        nacos注册中心依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
 
- 配置项
 
spring:cloud:#nacos端口配置nacos:server-addr: localhost:8840
 
nacos分级存储模型
服务->集群->实例
配置集群属性
- 修改服务生产者配置文件
 
spring:cloud:#nacos端口配置nacos:server-addr: localhost:8840discovery: #集群属性cluster-name: HZ
 
- 优先访问集群:修改消费者者配置文件,同时修改负载均衡规则为:com.alibaba.cloud.nacos.ribbon.NacosRule
 
spring:cloud:#nacos端口配置nacos:server-addr: localhost:8840discovery:cluster-name: HZ #集群名称
 
- 设置负载均衡权重(nacos特有)
 

nacos环境隔离-namespace
nacos中服务存储和数据存储最外层都是namespace的东西,用来做最外层隔离
 概念
- namespace用来做环境隔离
 - 每个namespace都有唯一id
 - 不同namespace下的服务不可见
 
实现:
 4. 在nacos控制台命名空间中可以创建namespace,用来隔离不同环境
 5. 修改消费者的application.yml配置,添加namespace
spring:cloud:nacos:discover:namespace: #命名空间ID
 
临时实例和非临时实例
spring:cloud:nacos:discover:ephemeral: false # 设置为非临时实例
 
Eureka和Nacos的异同
同:
- 支持服务注册和拉取
 - 支持服务提供者心跳方式做健康监测
 
异:
- nacos服务端支持主动检测提供者健康状态,临时实例采取心跳模式,非临时实例采取主动检测模式
 - Nacos临时实例心跳不正常会被剔除,非临时实例不会
 - Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
 - Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP模式
 
负载均衡策略
- 方案一:在客户端启动类中添加
 
/*修改负载均衡策略写法,方案一,适用于全局*/@Beanpublic IRule randomRule(){return new RandomRule();}
 
- 方案二:客户端配置项中添加
 
#      修改负载均衡策略写法,方案二
userservice:ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
 
饥饿加载
#       饥饿加载
ribbon:eager-load:enabled: true # 开启饥饿加载clients:- userservice #指定饥饿加载名称,是数组#    - xxxxservice#    - xxxxservice#    - xxxxservice
 

