1. 注意!!!
      这是对上一篇博客 springcloud的延续,整个项目的搭建,来源与上一篇博客。

    一、什么是eureka
  2.  
  3. // eureka是一个注册中心,实现了dubbo中zookeeper的效果!
  4.  
  5. 二、实现eureka工程的搭建?
  6. 1.1 单节点版
  7. 1.1 zookeeper eureka的区别?
  8. /*
  9. 1. zookeeper不会把自己注册到注册中心,但是eureka会!
  10. 2. 配置eureka 需要配置不能把自己注册到注册中心里面。
  11. 3. consumer 也不能把自己注册到注册中心。
  12. 4. 只要provider可以。
  13. */
  14.  
  15. 1.2 创建eureka工程
  16. 20190926-springcloud-eureka-management(pom):只管理jar

  17.      子级项目 --20190926-springcloud-eureka-7081(jar):运行了eureka
  18.  
  19. 1.3 jar包的添加
  20. 所有的eureka都只会用到一个jar
  21. eureka并不是springcloud公司的,是Netflix公司的产品,目前springcloud正在开发完善的springcloud架构来代替Netflix所提供的组件
  22. 虽然eureka的工程构建仍然需要使用springboot,但是不再需要springboot-web-starterjar包,因为eurekajar包中已经有了
  23. // !!!!!如果添加则出现jar包冲突
  24.  
  25. eurekajar包添加只需要在父工程中添加即可,所有的子工程都可以继承父工程的jar
  26. springcloud官网中提供的springcloud2.x版本所规定的jar包格式:
  27. <dependencies>
  28. <dependency>
  29. <groupId>org.springframework.cloud</groupId>
  30. <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  31. </dependency>
  32. </dependencies>
  33.  
  34. 1.4 eureka整个开发中,不涉及任何与业务有关的代码
  35. /*
  36. application.properties
  37. ApplicationRun.java
  38. @SpringBootApplication
  39. @EnableEurekaServer
  40.  
  41. */
  42. 1.5 provider-8081注册进eureka
  43. /*
  44. 在配置zookeeper的时候,无论是服务消费者还是服务生产者,都引入zookeeper的jar包(zkClinet)
  45. 在配置eureka的时候,需要引入么?
  46. !!很需要!!
  47. <dependency>
  48. <groupId>org.springframework.cloud</groupId>
  49. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  50. </dependency>
  51. */
  52. 修改application.properties配置文件
  53. 在讲zookeeper的时候,zk.address=zookeeperip地址
  54. 现在使用eureka的时候,也需要eureka的地址(eureka的项目地址)
  55. eureka.client.service-url.defaultZone=http://localhost:7081/eureka
  56.  
  57. provider-8081项目的主启动类上添加注解
  58. @EnableDiscoveryClient:
  59. springcloud2.x的版本注解
  60. @EnableEurekaClient:
  61. springcloud1.x的版本注解
  62.  
  63. 1.6 配置eureka服务的信息(actuator-info)
  64. // 为什么要配置?
  65.  
  66. 虽然目前eureka注册中心中只有一个服务,但是在真实开发环境中可能有很多个(35个)
  67. 每一个团队/team是有多个人组成的,每一个开发人员开发的功能是不同的,
  68. eg:
  69. 电商
  70. cart微服务:zhangsan开发
  71. order微服务:lisi开发
  72. portal微服务:wangwu开发
  73. 这些微服务最终都需要注册进eureka
  74. 假设zhangsan所开发的cart微服务出现问题了,这个问题是lisi发现的
  75. 如果其中有一个服务出现问题,这个服务正好是自己开发的,但是最终lisi看不到主要信息,直接描述不清楚,这种情况是绝对不允许在团队中出现!
  76. /*
  77. 在provider-8081项目的application.properties中进行配置
  78. 配置eureka的实例名(Status下面所显示的名字)
  79. 不允许出现任何的重复!
  80. eureka.instance.instance-id=虽然可以随意起,但是要求描述出整个微服务的作用
  81. */
  82. 当鼠标移动到服务名的时候,只会显示localhost,但是根据localhost并不能精准的定位到哪一台服务器,需要把localhost改为IP地址
  83.  
  84. # 在eureka中显示IP地址
  85. // eureka.instance.prefer-ip-adderss=true
  86.  
  87. 配置完毕后显示并不是本机的ip地址
  88. providerip地址显示是相对于eureka做的内网映射
  89. eureka的整个注册中心里会指定内部的ip地址,必须要使providereureka在同一个内网中,
  90. 一旦provider成功的注册进了eureka,那么eureka就会给provider分配一个自己的内网ip
  91. // 每一台电脑是有两个IP的,一个是公网IP,一个是内网IP
  92.  
  93. 实现点击服务名显示具体的服务信息
  94. 先添加jar
  95. <dependency>
  96. <groupId>org.springframework.boot</groupId>
  97. <artifactId>spring-boot-starter-actuator</artifactId>
  98. </dependency>
  99.  
  100. // 在provider-8081项目的application.properties配置文件中添加:
  101. info.author.name=Seven Lee
  102. info.company.name=AAA SOFTWARE EDU
  103. info.project.description=This is Demo
  104.  
  105. 1.7 eureka的自我保护机制?
  106. 如果长时间不连接(不激活)eureka的时候,会出现自我保护机制,在eureka页面上会显示:
  107. EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
  108. /*
  109. 为什么会出现自我保护:
  110. 有没有可能网络阻塞(网络非常卡),如果发生后,eureka就检测不到provider的心跳
  111. eureka中有200个provider,如果只有3个provider没有心跳,eureka就会直接把这三台直接剔除
  112. 但是如果有198个provider都没有心跳,则eureka就不会再剔除,也就是说直接会保留这198个provider
  113. */
  114.  
  115. 1.8 什么是eureka的AP性?
  116. 在eureka中注册过的服务会定时向eureka发送心跳
  117. 当网络故障/网络延迟/服务宕机就不会再向eureka发送心跳,eureka从接不到心跳的那一秒开始算起,(90秒)之后会直接把这个服务给剔除
  118. 因为provider的机房停电了,大面积的provider都无法向eureka发送心跳,90秒之后还是没有接收到心跳,
  119. eureka就不会再剔除任何一个服务(也就是说会把全部的服务都保留下来)(这个就是eureka的AP性)
  120. /*
  121. 为什么eureka不会剔除大量的服务?
  122. AP:只保证了服务的可用性,不保证数据的一致性
  123. CP:只保证了数据的一致性,不保证服务的可用性
  124.  
  125. 如果eureka把所有的服务全部剔除,当consumer进行访问调用的发现eureka中并没有任何服务了,整个项目都会处于瘫痪状态,整个客户端的体验就会非常差,也就是说相当于报错500!
  126. 如果当大面积服务都没有心跳,eureka不剔除的情况下,consumer进行访问调用的时候依然可以找到所注册服务,然后就可以直接获取到数据,这些数据可能不是最新的数据!
  127. */
  128. 1.9 如何关闭eureka的自我保护机制:
  129. !!可以关闭!!但是不能这么做!!
  130. 在eureka-7081项目的application.properties配置文件中
  131.  
  132. // eureka.server.enable-self-preservation=false(!!关闭eureka的自我保护机制!!)
  133. 提示一下信息:
  134. THE SELF PRESERVATION MODE IS TURNED OFF. THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.
  135.  
  136. 现在某些微服务就是不需要eureka的自我保护,就想办法把自我保护机制失效
  137. provider告诉eureka,我每个5秒会向你发送一次心跳,当最后一次检测我的时间之后过了8秒还没有接收到心跳直接把我剔除!
  138.  
  139. 在eureka-7081的application.properties配置文件中添加
  140. # eureka自己检测服务的心跳时间(90秒)
  141. # 单位是毫秒,先把eureka检测心跳的时间缩短为10秒
  142. # 也就是说每个10秒就会检测一次服务的心跳
  143. // eureka.server.eviction-interval-timer-in-ms=10000
  144.  
  145. 在provider-8081的application.properties配置文件中添加
  146. # 规定自己向eureka发送心跳的时间
  147. # 单位是秒
  148. // eureka.instance.lease-renewal-interval-in-seconds=5
  149. # 当eureka最后一次检测到心跳的时间间隔(单位是秒)
  150. # eg:15:05:20是最后一次检测到心跳-->检测8秒之后还是无法检测心跳的时候直接剔除
  151. // eureka.instance.lease-expiration-duration-in-seconds=8
  152.  
  153. 2.集群版 (正宗的eureka!)

二、eureka项目jar包的添加,和相关配置文件?

2.1 20190927-springcloud-eureka-management父级项目的 jar包

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>20190927-springcloud-parent</artifactId>
  7. <groupId>com.aaa</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11.  
  12. <groupId>com.aaa</groupId>
  13. <artifactId>20190927-springcloud-eureka-management</artifactId>
  14. <packaging>pom</packaging>
  15.  
  16. <modules>
  17. <module>20190927-springcloud-eureka-7081</module>
  18. </modules>
  19.  
  20. <!--
  21. eureka的jar包添加只需要在父工程中添加即可,所有的子工程都可以继承父工程的jar包
  22. springcloud官网中提供的springcloud2.x版本所规定的jar包格式:
  23. -->
  24.  
  25. <dependencies>
  26. <dependency>
  27. <groupId>org.springframework.cloud</groupId>
  28. <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  29. </dependency>
  30. </dependencies>
  31.  
  32. </project>

2.2   把provider-8081注册进eureka中 的文件配置?

  1. server.port=8081
  2. server.servlet.context-path=/
  3.  
  4. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  5.  
  6. # 我的数据库编码的问题 所以需要添加 characterEncoding=utf8 设置自字符集。
  7. spring.datasource.url=jdbc:mysql://localhost:3306/qy100?characterEncoding=utf8&useSSL=false
  8.  
  9. spring.datasource.username=root
  10. spring.datasource.password=root
  11. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
  12.  
  13. mybatis.type-aliases-package=com.aaa.zxf.model
  14. mybatis.mapper-locations=classpath:mapper/*Mapper.xml
  15.  
  16. #三、
  17. # 配置的是在eureka中显示的服务名(Application)
  18. # 如果不配置,则会显示UNKNOWN(这个是细节!!,以后有问题)
  19. spring.application.name=user-provider
  20.  
  21. #一、
  22. #配置eureka 的注册地址,将provider 注册进来。
  23. # 单节点模式,eureka的命名空间是 defaultZone
  24. # 客户端的命名空间可以随意指定,就算不一致,也可以注册进eureka 。因为单节点只有
  25. #一台eureka, 此时的命名空间是失效的。
  26.  
  27. #二、 注意!
  28. # GreenWich RS.3:无论是单点解还是集群模式,eureka的服务器端和客户端的命名空间必要保持一致,否则会报错(找不到服务实例)
  29. #eureka.client.service-url.defaultZone=http://localhost:7081/eureka
  30. eureka.client.service-url.defaultZone=http://localhost:7081/eureka
  31.  
  32. #四
  33. #在eureka中配置实例, 就是eureka的status下显示的名字
  34. # 不可以重复!!! 等同于mysql中表的id。
  35. eureka.instance.instance-id=user-provider-8081
  36.  
  37. #五、
  38. #在eureka中显示ip的地址
  39. eureka.instance.prefer-ip-address=true
  40.  
  41. #六 点击eureka的服务名显示出该服务的具体信息
  42. # 根据服务的具体内容,作者,公司,以及对整个服务的描述来进行显示
  43. # 相当于在HTML页面上有一个a标签<a href="/actuator/info"></a> --> 跳转到controller:@RequestMapping("/actuator/info")
  44. # !!开头用info!!其他的随便输入
  45.  
  46. info.autor.name=ZhouXu
  47. info.company.name=AAA
  48. info.project.desription=This is Demo
  49.  
  50. #七 现在某些微服务就是不需要eureka的自我保护,就想办法把自我保护机制失效
  51. # 规定自己向eureka发送心跳的时间 单位是秒
  52. eureka.instance.lease-renewal-interval-in-seconds=5
  53.  
  54. #eureka.instance.lease-renewal-interval-in-seconds=5
  55.  
  56. # 当eureka最后一次检测到心跳的时间间隔(单位是秒)
  57. # eg:15:05:20是最后一次检测到心跳-->检测8秒之后还是无法检测心跳的时候直接剔除
  58. eureka.instance.lease-expiration-duration-in-seconds=8

provide-8081启动类添加注解。

  1. package com.aaa.zxf;
  2.  
  3. import org.mybatis.spring.annotation.MapperScan;
  4. import org.springframework.boot.SpringApplication;
  5. import org.springframework.boot.autoconfigure.SpringBootApplication;
  6. import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  7.  
  8. /**
  9. *
  10. * 将provider 注册到 eureka 需要添加注解
  11. * @EnableDiscoveryClient
  12. */
  13. @SpringBootApplication
  14. @MapperScan("com.aaa.zxf.mapper")
  15. @EnableDiscoveryClient
  16. public class ApplicationRun8081 {
  17. public static void main(String[] args) {
  18.  
  19. SpringApplication.run(ApplicationRun8081.class,args);
  20.  
  21. }
  22. }

2.3 eureka服务的信息配置?

20190927-springcloud-eureka-7081子级项目(jar)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>20190927-springcloud-provider-management</artifactId>
  7. <groupId>com.aaa</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11.  
  12. <artifactId>20190927-springcloud-provider-8081</artifactId>
  13.  
  14. <dependencies>
  15. <dependency>
  16. <groupId>com.aaa</groupId>
  17. <artifactId>20190927-springcloud-service</artifactId>
  18. <version>1.0-SNAPSHOT</version>
  19. </dependency>
  20.  
  21. <dependency>
  22. <groupId>org.springframework.cloud</groupId>
  23. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  24. </dependency>
  25.  
  26. <!--
  27. 实现点击服务名显示具体的服务信息的jar包
  28. -->
  29.  
  30. <dependency>
  31. <groupId>org.springframework.boot</groupId>
  32. <artifactId>spring-boot-starter-actuator</artifactId>
  33. </dependency>
  34. </dependencies>
  35.  
  36. </project>

7081的application.properties配置。

  1. # 一、
  2. #eureka 注册中心的相关配置
  3. server.port=7081
  4. server.servlet.context-path=/
  5.  
  6. #二、
  7. # eureka 服务器端的实例名称 唯一的!
  8. #就是给 eureka 起了一个名字。 不可乱起。
  9. #hostname就是本台服务器的域名,不配置就是localhost
  10. eureka.instance.hostname=localhost
  11.  
  12. #三、
  13. # 设置eureka 不要将自己注册到注册中心里面。
  14. # eureka默认也会把自己注册到注册中心里,这里因为最终eureka是不需要被consumer所发现的,所以不再需要把自己注册里面,eureka自己就是注册中心
  15. # 它是对整个服务的管理起作用,并不是一个服务提供者,所以不应该把自己注册到注册中心里
  16. # 默认值为true,需要把默认值改成false
  17. eureka.client.register-with-eureka=false
  18.  
  19. #四、
  20. # 设置eureka 不要在注册中心 发现自己
  21. # eureka的职责是维护服务的实例,表明自己就是注册中心,并不需要从注册中心里发现自己
  22. # 默认值为true,需要手动改为false
  23. eureka.client.fetch-registry=false
  24.  
  25. #五、
  26. #1. eureka的指向地址
  27. # zookeeper需要在linux服务器上进行配置,最终的情况下使用zookeeper的时候必须要指向zookeeper的IP地址
  28. #eureka不需要做任何服务器配置,但是也必须要指向地址(直接指向eureka的项目即可:http://localhost:7081/eureka)
  29.  
  30. #2. localhost
  31. # 该地址中的localhost就是eureka.instance.hostname的值,端口号就是server.port的值,/eureka:固定的(eureka自己提供)
  32. # defaultZone:eureka默认所提供的命名空间
  33. # 在eureka的注册地址中,是可以分空间(zone)的,是命名空间,根据空间的不同来配置不同集群的eureka来实现不同的作用
  34. # eureka不需要linux服务器,但是eureka怎么知道自己和其他的服务器是一个集群呢?
  35. # eg:电商项目
  36. # order项目-->服务的提供者和服务的消费者
  37. # cart项目-->服务的提供者和服务的消费者
  38. # item项目-->服务的提供者和服务的消费者
  39. # manager项目-->服务的提供者和服务的消费者
  40. # userInfo项目-->服务的提供者和服务的消费者
  41. # 就可以根据类别进行配置eureka
  42. # eureka01和eureka02的命名空间就是:order
  43. # eureka03和eureka04的命名空间就是:cart
  44. # 为了提供整个项目的安全性和可维护性
  45.  
  46. #3. 单节点的配置
  47. # 如果为单节点可以随意配置,但是如果为集群则目前为止必须要配置成defaultZone(因为如果是集群版就必须先要声明命名空间,如果不声明则无法使用)
  48. eureka.client.service-url.defaultZone=http://localhost:7081/eureka
  49.  
  50. #六
  51. #关闭eureka的自我保护机制:
  52. #!!可以关闭!!但是不能这么做!!
  53. #eureka.server.enable-self-preservation=false
  54.  
  55. #七 现在某些微服务就是不需要eureka的自我保护,就想办法把自我保护机制失效
  56. #1. provider告诉eureka,我每个5秒会向你发送一次心跳,当最后一次检测我的时间之后过了8秒还没有接收到心跳直接把我剔除!
  57.  
  58. #2. eureka自己检测服务的心跳时间(90秒)
  59. # 单位是毫秒,先把eureka检测心跳的时间缩短为10秒
  60. # 也就是说每个10秒就会检测一次服务的心跳
  61. eureka.server.eviction-interval-timer-in-ms=10000
  62.  
  63. #eureka.server.eviction-interval-timer-in-ms=10000

7081的启动类

  1. package com.aaa.zxf;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
  5.  
  6. /**
  7. * 关于注解?
  8. * @EnableEurekaServer: 就是开启eureka的服务器端
  9. *
  10. * @EnableEurekaClient: !!!!不让用!!!!(springcloud1.x的注解)
  11. */
  12. @SpringBootApplication
  13. @EnableEurekaServer
  14. public class ApplicationRun7081 {
  15. public static void main(String[] args) {
  16. SpringApplication.run(ApplicationRun7081.class,args);
  17. }
  18. }

图解单节点

eureka的简单介绍,eureka单节点版的实现?eureka的自我保护?eureka的AP性,和CP性?的更多相关文章

  1. Elasticsearch源码分析 | 单节点的启动和关闭

    本文主要简要介绍Elasticsearch单节点的启动和关闭流程.Elasticsearch版本:6.3.2 相关文章 1.Google Guice 快速入门 2.Elasticsearch 中的 G ...

  2. jmeter命令行运行-单节点

    jmeter有自己的GUI页面,但是当线程数很多或者现在有很多的测试场景都是基于linux下进行压测,这时我们可以使用jmeter的命令行方式来执行测试,该篇文章介绍jmeter单节点命令运行方式. ...

  3. C# Redis分布式锁 - 单节点

    为什么要用分布式锁? 先上一张截图,这是在浏览别人的博客时看到的. 在了解为什么要用分布式锁之前,我们应该知道到底什么是分布式锁. 锁按照不同的维度,有多种分类.比如 1.悲观锁,乐观锁; 2.公平锁 ...

  4. eureka server 单节点与多节点部署演示

    环境搭建 目录结构(ad-eureka为子模块) --ad-spring-cloud --ad-eureka --pom.xml --pom.xml 主pom.xml <?xml version ...

  5. Hadoop介绍及最新稳定版Hadoop 2.4.1下载地址及单节点安装

     Hadoop介绍 Hadoop是一个能对大量数据进行分布式处理的软件框架.其基本的组成包括hdfs分布式文件系统和可以运行在hdfs文件系统上的MapReduce编程模型,以及基于hdfs和MapR ...

  6. Spring-Cloud之Eureka注册中心环境搭建(单节点)

    一 Eureka概述 服务启动时会生成服务的基本信息对象InstanceInfo,然后在启动时会register到服务治理中心. 注册完成后会从服务治理中心拉取所有的服务信息,缓存在本地. 之后服务会 ...

  7. 老司机实战Windows Server Docker:4 单节点Windows Docker服务器简单运维(下)

    上篇中,我们主要介绍了使用docker-compose对Windows Docker单服务器进行远程管理,编译和部署镜像,并且设置容器的自动启动.但是,还有一些重要的问题没有解决,这些问题不解决,就完 ...

  8. 《PHP 5.5从零開始学(视频教学版)》内容简单介绍、文件夹

    <PHP 5.5从零開始学(视频教学版)>当当网购买地址: http://product.dangdang.com/23586810.html <PHP 5.5从零開始学(视频教学版 ...

  9. 老司机实战Windows Server Docker:3 单节点Windows Docker服务器简单运维(上)

    经过上两篇实战Windows Server Docker系列文章,大家对安装Windows Docker服务以及如何打包现有IIS应用为docker镜像已经有了基本认识.接下来我们来简单讲讲一些最基本 ...

随机推荐

  1. B. The Meeting Place Cannot Be Changed

    B. The Meeting Place Cannot Be Changed time limit per test 5 seconds memory limit per test 256 megab ...

  2. [LeetCode]621. Task Scheduler 任务安排 题解

    题目描述 给定一个char数组,代表CPU需要做的任务,包含A-Z,不用考虑顺序,每个任务能在1个单位完成.但是有规定一个非负整数n代表两个相同任务之间需要至少n个时间单位.球最少数量的时间单位完成所 ...

  3. 【LeetCode】712. Minimum ASCII Delete Sum for Two Strings 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  4. 1114. Boxes

    1114. Boxes Time limit: 0.6 secondMemory limit: 64 MB N boxes are lined up in a sequence (1 ≤ N ≤ 20 ...

  5. 1336 - Sigma Function

    1336 - Sigma Function   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB S ...

  6. select......for update会锁表还是锁行

    select查询语句是不会加锁的,但是select .......for update除了有查询的作用外,还会加锁呢,而且它是悲观锁. 那么它加的是行锁还是表锁,这就要看是不是用了索引/主键. 没用索 ...

  7. CS5212 pin to pin 替代RTD2166|DP转VGA芯片|CS5212转换电路设计方法

    CS5212适用于设计DP转VGA转换电路,主要用在嵌入式单片机基于工业机或者INTEL X86主板上面,也适用于多个电子配件市场和显示器应用程序,如笔记本电脑.主板.台式机.适配器.转换器和转接器. ...

  8. Layui的本地存储方法-Layui.data的基本使用

    本地存储是对 localStorage 和 sessionStorage 的友好封装,可更方便地管理本地数据. localStorage 持久化存储:layui.data(table, setting ...

  9. 中文字体css编码转换

    各大网站的字体选择 网站 字体 腾讯 font: 12px "宋体","Arial Narrow",HELVETICA; 淘宝 font: 12px/1.5 t ...

  10. Kibana_X-Pack管理Elasticsearch权限

    在Kibana上面配置权限,验证对Elasticsearch权限控制, 主要步骤如下: 1.创建角色 2.创建用户,并且赋予用户角色 3.用户登陆,验证没有权限 4.赋予角色权限 5.用户登陆,验证拥 ...