热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开源pig学习

开源pig学习-以下仅供个人学习记录使用,有问题请见谅javahost将主机域名解析到相应的ip地址上。比如在host中配置了www.youtube.comip是百度的ip
以下仅供个人学习记录使用,有问题请见谅 java
  1. host 将主机域名解析到相应的ip地址上。 比如在host中配置了 www.youtube.com ip是百度的ip,然后去ping youtube,返回的ip是百度的ip。

    好处:1.这样以后在项目中只需要使用域名去访问就可以,host统一管理ip,做环境切换。

    1. 方便一键部署。
  2. npm cnpm(淘宝的) npm install -g cnpm --registry=https://registry.npm.taobao.org

安装详情 参考连接 https://www.jianshu.com/p/fbd87ad45631

  1. java流 https://www.yuque.com/pig4cloud/pig/yewg8z

    流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合。 众所周知,集合操作非常麻烦,若要对集合进行筛选、投影,需要写大量的代码,而流是以声明的形式操作集合,它就像 SQL语句,我们只需告诉流需要对集合进行什么操作,它就会自动进行操作,并将执行结果交给你,无需我们自己手写代码。 因此,流的集合操作对我们来说是透明的,我们只需向流下达命令,它就会自动把我们想要的结果给我们。 由于操作过程完全由Java处理,因此它可以根据当前硬件环境选择最优的方法处理,我们也无需编写复杂又容易 出错的多线程代码了。

操作:

创建流 集合,数组,值,文件 list.stream();

常见方法:

  /**
    Consumer :消费型接口
        void accept(T t);  给一个值不返回参数
    BiConsumer 消费两个参数 不返回值
        R apply(T t, U u);
   Supplier :供给型接口
        T get();  不给值返回参数
   Function  :函数型接口
        R apply(T t);  给一个值返回一个参数
   BiFunction 传入两个参数的函数
        R apply(T t, U u);
   Predicate : 断言型接口 
        boolean test(T t); 判断类型
   BiPredicate 两个参数的断言
        boolean test(T t, U u);
  */
 stream.filter((参数)->{判断条件返回true、flase}); //对每个 参数进行过滤
 stream.distinct() ; //对结果去重
 stream.limit(); //返回前几个元素
 stream.map(函数(参数)); //将元素重新组成一个新的流返回。函数是给一个值然后返回一个值

 allMatch--检查匹配所有元素 
 anyMatch--检查是否至少匹配一个元素 
 noneMatch--检查是否没有匹配所有元素 
 findAny--返回当前流中的任意元素 
 count--返回流中的元素的总个数 
 max--返回流中的最大值 
 min--返回流中的最小值
//将字符串集合 转成逗号拼接的一个字符串
String[] a = new String[]{"aa","bb","cc","dd"};
List list = Arrays.asList(a);
String.join("," , a); 或者 String.join(",", list)
//流中的groupby。在终端操作的Collectors中,返回的是map,key是分组的参数,值是分组后的数据
Map> collect = employees.stream()
      .collect(Collectors.groupingBy(Employee::getAge));
session token jwt oauth2

认证:

就是用户登录系统,如何判断你就是你,比如输入用户名密码正确,那么就知道你是你了。还有手机号,如果输入的手机号能收到验证码,也能判断为你是你。

授权:

不同用户权限不同,常用授权方式,COOKIE,session,token,oauth

凭证 :

用来标识访问者身份,就像每个人都有一个身份证,乘车凭身份证进站一样。

COOKIE:

为何产生?http是无状态协议,每次请求都是一次全新的请求,用户在登录系统之后,不可能每次发请求都要走登录验证流程,就需要有个东西存储一下用户状态,服务器也需要知道是谁在访问自己,进行会话跟踪。这样每次发送请求时,不必从登录开始发送那么多一长串的请求,每次请求携带一个登陆后的参数即可。COOKIE应运而生。COOKIE存储在客户端浏览器,不能跨域,只能在单一域名使用。

 COOKIE存储信息:1.sessionId  2.此sessionId属于哪个域名,只能在该域名下使用

session:

基于COOKIE实现的,存储在服务器。浏览器在第一次访问时,服务器会创建session,并返回给客户端一个sessionId,以后浏览器每次发送请求COOKIE都要携带sessionId,服务器判断sessionId属于哪个用户,然后去执行后序操作。浏览器在之后访问这个域名时,会自动判断该域名下是否有COOKIE,如果有浏览器会自动将COOKIE发送给服务器。

COOKIE和session区别:

1.COOKIE只能存储字符串,并且大小不能超过4k

session可以存储任意类型,并且大小无限制。如果服务器访问人数过多,session将过多的消耗服务器资源。---->token应运而生。

token:

服务启端无状态化,并且不用存储token信息(客户端存储),只负责解析token,用解析时间换取session的存储空间,减轻服务器压力和频繁查库。

refresh_token:

另外一种token,当token过期时,不让用户退出重新输入用户名密码,让用户无感知。

存储在数据库中,只有当token过期是,refresh_token才会起作用。

jwt:不使用COOKIE,所以不存在跨域问题。自包含会话信息,不用查库。

把它放在 COOKIE 里面自动发送,但是这样不能跨域,所以更好的做法是放在 HTTP 请求头信息的 Authorization 字段里,使用 Bearer 模式添加 JWT.

那这个Authorization 字段中的信息,从哪里获取?

jwt和token区别:

相同点:都是令牌,无状态化,记录用户信息的。

不同点:jwt自包含用户信息和加密数据token还要查询数据库获取用户详细信息

nacos

注册中心 服务注册和发现

  1. 正向代理 (服务端暴露,客户端隐藏)将客户端请求代理掉

在代理过程中,隐藏了真实的客户端信息,服务端不知道真实的客户端是谁,客户端的请求会被代理服务器代理请求

举个例子:小王找马云借钱,小王借不到。然后小王通过老王找马云借钱,马云把钱借给了老王,老王把钱给了小王,马云并不知道钱真正给了谁。

  1. 反向代理(代理服务端,服务端被隐藏了)

举个例子:打电话给10086,你不需要知道对面客服在东北还是在广东,是男的还是女的,肯定有人会接通你的电话。在这个过程中,服务端真正的提供服务者 客户端是不知道的,也不用知道,客户端关心的是服务本身。

提到反向代理,nginx必提。当有很多服务需要被代理时,配置nginx是十分繁琐的,要将每个节点的信息实时维护进config文件中,nacos注册中心应运而生。

通过服务名字去注册中心注册,负载均衡根据既定规则 选择一个服务将http服务的ip 和 port返回给调用方。

配置中心

产生原因:静态化配置(直接在项目的application.yml配置)参数过多。时效性,改了配置,要重启所有服务。微服务中无法集中管理。不能区分环境,每次切换要设置不同参数。无法回滚配置,和追溯问题

使用

以源码方式启动,方便在项目中以main方式运行,还可以保证server和client版本一致(不知道如何保证)。

  1. 下载源码,保留conslole目录,
loadBalancer负载均衡器,提供客户端负载均衡算法 sentinel

熔断作用

当调用链路中某个资源出现不稳定,例如,表现为 timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源,最终防止产生雪崩的效果,熔断器应运而生。

机制:1.通过并发线程数进行限制,当线程数堆积到一定的数量之后,对该资源的请求就都会被拒绝。

2.通过响应时间对资源进行降级。

流量控制

系统处理能力有限,但流量不稳定,我们需要根据系统的处理能力进行流量控制,流量控制调配器应运而生

流量控制有以下几个角度:

  • 资源的调用关系,例如资源的调用链路,资源和资源之间的关系;
  • 运行指标,例如 QPS、线程池、系统负载等;

  • 控制的效果,例如直接限流、冷启动、排队等。

Sentinel 的设计理念是让您自由选择控制的角度,并进行灵活组合,从而达到想要的效果。

gateway网关

业务网关:路由转发 + 过滤器。

  • 请求接入: 作为所有 API 接口服务请求的接入点,管理所有的接入请求;
  • 业务聚合: 作为所有后端业务服务的聚合点,所有的业务服务都可以在这里被调用;

  • 中介策略: 实现安全、验证、路由、过滤、流控,缓存等策略,进行一些必要的中介处理
  • 统一管理: 提供配置管理工具,对所有 API 服务的调用生命周期和相应的中介策略进行统一管理。

推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 在给定的数组中,除了一个数字外,其他所有数字都是相同的。任务是找到这个唯一的不同数字。例如,findUniq([1, 1, 1, 2, 1, 1]) 返回 2,findUniq([0, 0, 0.55, 0, 0]) 返回 0.55。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
author-avatar
snailslowdx_619
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有