零售行业消费者价值环形网络

#零售行业消费者价值网络转变

过去:以产品为中心的单向链式价值链

通过质量、性价比、占有率提升获取高潜在消费者,满足存量 消费群体和潜在需求,通过研发、规模化生产、批发、批发+ 零售、折扣满足需求,提高销售收入,提高效率并降低库存。

未来:以消费者为中心的环式价值网络

全产业各个要素均透过大数据参与构建与消费者的链接,发挥各 自的优势能力所长,共同通过场景、互动、链接、体验、定制来 洞察消费者需求,最优化产业资源配置,基于敏捷感知和生态服 务满足和创造新需求。


Presto架构

Presto架构

Presto是一个在一组机器上运行的分布式系统。 完整安装包括协调员和多个工作人员。 查询从客户端(Presto CLI、presto-jdbc)提交给协调器。 协调器解析, 分析和计划查询执行,然后将处理分发给worker工作进程。

presto硬件架构


oauth2-client在Nginx代理后遇到的问题和解决方案

OAuth2 Client在实际运用过程中遇到的问题

服务程序集成了OAuth2-Client,以便于用户能够方便集成到支持OAuth2第三方登录的自有业务系统中。开发完成后,本地测试、或者直连服务程序,都没有问题。但凡放到线上环境,经过了nginx 转发后,我们的服务程序OAuth登录永远是以失败告终。

现象如下:

访问需要授权的接口时 https://blog.95id.com:4005/user_attr,期望是跳转到授权服务器 github.com进行登录授权,但实际都是跳转到``http://blog.95id.com/login`

因为当时直接用服务程序的端口没问题,就将解决思路放在了nginx 转发过程上。

当时线上环境路由规则类似于:

第一层:nginx1 4005 (ssl、负载均配置在这)

第二层:nginx2 4005

第三层:oauth2-client 8082

再看nginx 的配置,第一层nginx 配置:


Aspectj LTW 实践

Aspectj LTW 实践

本文将介绍使用 AspectJ,介绍它的 3 种织入方式。

AspectJ 作为 AOP 编程的完全解决方案,提供了三种织入时机,分别为

  1. compile-time:编译期织入,在编译的时候一步到位,直接编译出包含织入代码的 .class 文件
  2. post-compile:编译后织入,增强已经编译出来的类,如我们要增强依赖的 jar 包中的某个类的某个方法
  3. load-time:在 JVM 进行类加载的时候进行织入

AOP 面向切面编程

AOP 面向切面编程

概念

大家都知道OOP,即ObjectOriented Programming,面向对象编程。而本文要介绍的是AOP。AOP是Aspect Oriented Programming的缩写,中译文为面向切向编程。OOP和AOP是什么关系呢?首先:

在OOP的世界中,问题或者功能都被划分到一个一个的模块里边。每个模块专心干自己的事情,模块之间通过设计好的接口交互

OOP和AOP都是方法论。我记得在刚学习C++的时候,最难学的并不是C++的语法,而是C++所代表的那种看问题的方法,即OOP。同样,今天在AOP中,我发现其难度并不在利用AOP干活,而是从AOP的角度来看待问题,设计解决方法。这就是为什么我特意强调AOP是一种方法论的原因

###AOP

Java 语言中,从织入切面的方式上看,存在三种织入方式:编译期织入、类加载期织入和运行时织入。

编译期织入是指在Java编译期,采用特殊的编译器,将切面织入到Java类中;而类加载织入则指通过通过特殊的类加载器,在类字节码加载到JVM时,织入切面;运行期织入则是采用CGLib工具或者JDK动态代理进行切面的织入。

所以,AOP 代理则可分为静态代理和动态代理两大类

  • 静态代理是指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强;典型代表Aspectj。
  • 动态代理则在运行时借助于 JDK 动态代理、CGLIB 等在内存中“临时”生成 AOP 动态代理类,因此也被称为运行时增强

【PaaS】认证、授权、鉴权和权限控制

【PaaS】认证、授权、鉴权和权限控制

本篇将对信息安全领域中(主要指)认证、授权、鉴权和权限控制这四个概念给出相应的定义,并对这个概念之间的相互关系进行梳理。

1. 认证

认证是指根据声明者所特有的识别信息,确认声明者的身份。认证在英文中对应于identification这个单词。

最常见的认证实现方式是通过用户名和密码,但认证方式不限于此。下面都是当前常见到的认证技术,

  • 身份证
  • 用户名和密码
  • 用户手机:手机短信、手机二维码扫描、手势密码
  • 用户的电子邮箱
  • 基于时间序列和用户相关的一次性口令
  • 用户的生物学特征:指纹、语音、眼睛虹膜
  • 用户的大数据识别
  • 等等

为了确认用户的身份,防止伪造,在安全要求高的场合,经常会使用组合认证(或者叫多因素认证),也就是同时使用多个认证方式对用户的身份进行校验。


Python效率提升技巧

Python 效率提升技巧

副标题:超三成的python 初学者,倒在了这三个坑内

坊间流传着一句经典:“人生苦短,我用Python!”

python目前斩获的头衔有:挤掉java成为编程语言排行第二、增量最快、AI时代头牌语言,甚至已经入选北京山东等地的中小学教材,因为其简单易用,适用广泛,已经成为很多初学编程人的首选语言。

但由于Python的某些特有的历史原因,例如版本兼容问题等,导致在学习的过程中,总会遇到几个大坑,导致刚刚萌芽的学习热情就被无情浇灭。本篇主要讲解初学python过程中最常遇到的3个大坑:

  1. 版本兼容问题
  2. 依赖包无法下载安装问题
  3. 工程依赖环境问题

学习这几点,初学者不再倒在入门的门槛上,轻松入门;已入门的,可以帮您提高python开发使用和效率


vultr服务器网速问题排查和机房选择

vultr网速问题排查

公司用电信百兆,使用Vultr的日本服务器,延迟300多ms,丢包率50%,网页直接打不开,之前都能秒开Youtube1080分辨率视频,现在开个google搜索都要半天,然后就去排查问题。

先是测试vultr 服务器自身宽带有没有缺斤少两,下载speedtest工具测试,发现服务器自身网速快的飞起,下载有82M每秒。

1
2
3
4
5
6
7
8
9
10
11
12
13
git clone https://github.com/sivel/speedtest-cli.git
cd speedtest-cli/
python speedtest.py
[root@vultr speedtest-cli]# python speedtest.py
Retrieving speedtest.net configuration...
Testing from Choopa, LLC (167.179.101.219)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by i3D.net (Tokyo) [12.49 km]: 1.004 ms
Testing download speed................................................................................
Download: 825.28 Mbit/s
Testing upload speed......................................................................................................
Upload: 504.59 Mbit/s

那么只可能是本地网络到服务器的网络通道出了问题:


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×