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

曹县商城网站建设人工在线客服系统

曹县商城网站建设,人工在线客服系统,东莞手机手机端网站建设,网站图片用什么做Nacos安装Nacos 的 Github(Tags alibaba/nacos GitHub)下载我们所需的 Nacos 版本,可以选择 windows 或者 Linux。 进入官网,选择合适版本,tar.gz为linux版本,zip为windows版本。下载并解压 nacos-server…

Nacos安装

Nacos 的 Github(Tags · alibaba/nacos · GitHub)下载我们所需的 Nacos 版本,可以选择 windows 或者 Linux。 进入官网,选择合适版本,tar.gz为linux版本,zip为windows版本。下载并解压 nacos-server-1.4.3.zip,解压完成后进入 /bin 目录,运行startup.cmd脚本。然后访问管理平台:

nacos注册服务中心管理可以通过管理平台查看和配置。启动后访问如下:

管理平台:http://localhost:8848/nacos

用户名:nacos

密 码:nacos

注册中心

这里对架构CAP进行简单介绍

CAP:C 一致性 A 可用性 P 分区容错性

以下是各个注册中心的CAP原理介绍

(1)Zookeeper 和 Consul 遵循 CP 原则,保证了强一致性和分区容错性,放弃可用性,在分布式环境中,如果涉及数据存储的场景,数据一致性应该是首先被保证的,但对于服务发现来说,可用性才是最核心的,针对同一个服务,即使注册中心的不同节点保存的服务提供者信息不相同,也并不会造成灾难性的后果。因为对于服务消费者来说,能消费才是最重要的,消费者拿到不正确的服务实例信息后尝试消费一下,也胜过因为无法获取实例信息而不去消费而导致系统异常
(2)Eureka 遵循 AP 原则,保证可用性,放弃数据一致性,基本能满足注册中心所需的核心功能,但 Eureka 2.x 版本已停止开发,并且宣布如果继续使用的话,风险自负。
(3)Nacos 同时支持 AP 与 CP,默认是 AP,同时功能更丰富,与 SpringCloud Alibaba 的兼容性更好,使用更简单灵活,可以满足更多的业务场景,且支持 K8S 的集成。

在进行Springcloud项目时版本依赖一定要合适,由于本人在一开始搭建项目的时候由于版本问题折腾了一段时间,在此把版本依赖进行记录。

推荐组件版本

导入依赖

  <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>

application.yml文件配置

spring: application:name: usercloud:nacos:server-addr: localhost:8848discovery:cluster-name: SH//集群名字

负载均衡

导入依赖

        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></dependency>

负载均衡配置文件

@Configuration
public class RestTemplateConfiguration {@Bean@LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();}
}

业务使用

@RestController
@RefreshScope
public class UserController {@AutowiredOrdersMapper ordersMapper;String url="http://user:9201/user/";@Value("${pattern.dateformat}")private String dateformat;@AutowiredRestTemplate restTemplate;@AutowiredFeign feign;@GetMapping("/order/{id}")public Orders orders(@PathVariable("id") Long id, @RequestHeader(value = "token",required = false) String token){System.out.println(token);DateFormat df=new SimpleDateFormat(dateformat);System.out.println(df.format(new Date()));Orders orders = ordersMapper.selectById(id);User forObject = restTemplate.getForObject(url + orders.getUserId(), User.class);//User user = feign.findbyId(orders.getUserId());orders.setUser(user);return orders;}}

配置nacos访问进行负载均衡的时候 优先访问集群内部的服务,在访问集群内部的服务实例的时候采用随机方式,配置代码如下,如果不设计以下代码,在访问的时候负载均衡默认采用轮询的方式。

user://要做配置的微服务名称ribbon:NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

实际部署中有这样的场景,服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。可以在nacos中心配置实例权重值。

Nacos配置管理

导入依赖

        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>

在nacos注册中心配置列表新建provider-dev.yaml文件,微服务名-部署环境.文件类型

在resources中新建bootstrap.yml

spring:application:name: providerprofiles:active: devcloud:nacos:server-addr: localhost:8848config:file-extension: yamldiscovery:cluster-name: BJ

配置完成后就可以正常的使用了。

配置热更新在业务组件上加上@RefreshScope注解就可以了

多环境配置共享,微服务启动时会从nacos中读取多个配置文件,[spring.apllication.name].yaml这个文件一定会加载,因此多环境共享配置可以写入这个文件。

多种配置优先级:服务名-profile.yaml>服务名.yaml>本地配置

Feign

导入依赖

       <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>

编写Feign客户端

@FeignClient("user")
public interface Feign {@GetMapping("/user/{id}")User findbyId(@PathVariable("id") Long id);
}

Gateway

新建一个moudle

导入依赖

 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>

编写路由配置

spring:application:name: gatewaycloud:nacos:server-addr: localhost:8848gateway:routes:- id: pro-videruri: lb://providerpredicates:- Path=/order/**filters:- AddRequestHeader=token,mytoken //部分default-filters:- AddRequestHeader=token,mytoken //全局

另一种全局过滤器

@Component
@Order(-1)//越小优先级越高
public class Filter implements GlobalFilter {public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {ServerHttpRequest request = exchange.getRequest();MultiValueMap<String, String> queryParams = request.getQueryParams();String author = queryParams.getFirst("author");if("admin".equals(author)){return chain.filter(exchange);}exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);return exchange.getResponse().setComplete();}
}

请求进入网关会碰到三类过滤器:当前路由的过滤器、DefaultFilter、GlobalFilter,请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器。

由于浏览器不能执行其他网站的脚本,Ajax请求发送不出去。Gateway跨域配置代码如下

spring:application:name: gatewaycloud:nacos:server-addr: localhost:8848gateway:routes:- id: pro-videruri: lb://providerpredicates:- Path=/order/**filters:- AddRequestHeader=token,mytokenglobalcors:  #全局的跨域处理add-to-simple-url-handler-mapping: true #解决options请求拦截的问题corsConfigurations:'[/**]':allowedOrigins: #允许哪些网站的跨域请求- "http://localhost:10010"- "http://www.baidu.com"allowedMethods: #允许的跨域ajax的请求方式- "GET"- "POST"- "DELETE"- "PUT"- "OPTIONS"allowedHeaders: "*"  #允许在请求中携带的头信息allowCredentials: true  #是否允许携带cookiemaxAge: 240000   #这次跨域的有效期,单位ms

http://www.khdw.cn/news/50671.html

相关文章:

  • 湘潭做网站建设的公司淘宝app官方下载
  • 银川专业做网站东莞疫情最新消息今天中高风险区
  • wordpress子站点404seo竞价
  • 3yx这个网站做刷单网站收录登录入口
  • 大埔县住房和城乡规划建设局网站网络营销工程师是做什么的
  • 广州市住房和城乡建设委员会官方网站360线上推广
  • 做网站聊城一键识图找原图
  • 大连哪家科技公司做网站好百度云盘网官网
  • 怎么在网站里添加cnzz统计中国品牌策划公司排名
  • 导航网站 win8风格旅游景区网络营销案例
  • 有自己域名主机怎么做网站外链免费发布平台
  • 哪种语言做网站最合适营销网址
  • wordpress 微信关注插件网站推广与优化平台
  • C语言开发网站开发语言站长查询域名
  • 做实验学编程的网站优化设计五年级下册语文答案
  • 做枪网站子域名查询工具
  • 提供医疗网站建设小说百度风云榜
  • 建设网站需要什么样的服务器专注于品牌营销服务
  • 哈尔滨营销网站制作最近的新闻摘抄
  • 网站做营销推广公司宁波seo外包哪个品牌好
  • 工信部 网站备案查询电商培训机构推荐
  • 一笔签名设计在线网站搜索排名优化价格
  • 大理石在哪些网站做宣传站长工具域名查询ip
  • 广州网站制作到诺然网站seo搜索
  • 网页快速开发平台登封搜索引擎优化
  • 各种网站开发工具上海百度公司地址在哪里
  • 哪有做企业网站百度网盘网页登录入口
  • 建设银行网站地址全国疫情一览表
  • 网站开发公司php工资windows优化大师下载安装
  • 揭阳市建设局网站seo黑帽技术工具