无奈何杨(wnhyang)

I will keep to fight

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


简介

放在前面,怕有些人看不下去错过,整合了身份证 / 手机号 /IP/GPS 解析的工具将在下一篇文章推出,并将全部数据和代码放在 GithubGitee 上。

接着前一篇的的身份证 / 手机号解析服务,其四者难度对比是这样的,身份证 < 手机号 < IP < GPS。也比较好理解,毕竟是从点到线再到面,难度可想而知。GPS 用词可能不当,我还是解释一下,这里的意思是指通过经纬度解析到行政区划 / 地理信息,也可以讲是逆地理编码。

身份证和手机号都相对简单,数据本身不大,而且规则也比较清晰,所以比较容易。相比之下 IPGPS 的难度就大了太多了,IPv4v6 已经是数据量的极大扩展,而且这些数据很难获取,对于 ISP 拥有的 IP 范围匹配又是很大的难题,是需要算法设计的。好像我一直都是这样,简单的事做着没意思,困难的事情又不知道怎么做,还没开始就准备放弃了。就跟打游戏一样,碾压式的赢没有快感,被碾压的输又没有乐趣,只有均式相持拼尽全力的赢才是畅快。回到正题,身份证和手机都是有规律的,不管是数据的管理和搜素算法都可以自己做。而对于 IP,首先数据量就比较大,数据存储、读取、检索都是考虑的点。这还只是谈到了 IP 解析,GPS 的解析就更复杂了。把 IP 数据比做标尺上的刻度的话,GPS 数据就是组成标尺分子原子,只是个小小比喻不用在意😂毕竟数据量从有限的线升级为无限的面,而且经纬度是针对的是地球这个不规则的球体,人类又将不规则的大陆海洋划分为更多密密麻麻的不规则多边形,所有的不规则多边形又是由众多经纬度的点连线划分出来的,想想就知道有多复杂了。

IP 解析

首先就要谈谈这个 IP 解析,真的搞的我头都要炸了。

历程,1、为了简单方便,直接寻找性能和准确性都不错的 api 调用;2、发现这些 api 要么有限制,要么要认证,数据还不是很满意,而且性能不能达到我的要求(30ms 以内);3、发现一些免费有趣的 api,开始跑偏,玩了起来;4、发现狮子的魂 /ip2region 这个项目,其提供了 IP 数据存储和检索的离线解析方案,由此想尝试自己的离线 IP 解析;5、数据从哪里搞呢,本身狮子的魂 /ip2region 项目中已经提供了一份数据,但数据比较简单,不大够用,其实项目已经提供了数据修改更新的方法,但认为手动补充有比较麻烦,所以又琢磨起数据源。

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


提要

早些年,“马云提出,人类已经从 IT 时代走向 DT 时代,IT 时代是以自我控制、自我管理为主,而 DT(Data technology) 时代,它是以服务大众、激发生产力为主的技术。这两者之间看起来似乎是一种技术的差异,但实际上是思想观念层面的差异。”

在这样一个我们自己都不如大数据了解自己的时代,应该都深有体会吧。

那么,在风控系统中数据有哪些,他们在风控系统中如何应用?

参考:

智能风控筑基手册:全面了解风控决策引擎

以下两图都来源于此

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


Java SPI 简介

以下引用 AI

Java SPIService Provider Interface)是一种用于实现组件化的机制,它允许软件组件以插件的形式被发现和加载。在 Java 中,SPI 是通过在 META-INF/services 目录下的特定文件中声明服务提供者来实现的。

下面是 Java SPI 的基本工作原理:

  1. 定义服务接口:首先,定义一个服务接口,该接口规定了一组方法或功能。
  2. 实现服务提供者:然后,编写一个或多个实现了服务接口的具体类,这些类被称为服务提供者。
  3. 创建服务配置文件:在 META-INF/services 目录下创建一个以服务接口全限定名命名的文件,其中包含了实现了服务接口的具体类的全限定名。
  4. 加载服务提供者:通过 Java SPI 机制,Java 运行时会自动加载并实例化服务提供者,并将其注入到应用程序中,使得我们可以在运行时动态地发现和使用这些服务。
阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


提要

前面已经有了几篇文章了,关于风控系统的一些设计和实现。

还是那句话完整的风控系统功能还是很复杂的,欠考虑的地方还望指正。

参考:

风控中常说的决策引擎,到底是什么?

风控笔记 06:一个完整的风控引擎,需要有哪些功能?

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


提要

参考:智能风控筑基手册:全面了解风控决策引擎

前面有可配置输入参数的接口如何设计风控系统指标计算 / 特征提取分析与实现 01,Redis、Zset、模版方法两篇文章,分别提出:

1、风控系统服务动态选择,根据配置处理输入参数,转换为系统参数

2、使用 Rediszset 结构完成简单的指标计算(特征提取)

他们都是一次风控决策流程的一部分,当然完成的风控系统,比较复杂,涉及的功能模块更多,以下仅仅是我的简单梳理。

如上,服务选择和入参处理可配置输入参数的接口如何设计是这篇文章讨论的内容,风控系统指标计算 / 特征提取分析与实现 01,Redis、Zset、模版方法讨论的是规则集内普通指标计算。

本篇文章讨论通过 LiteFlow 这款规则引擎框架实现风控系统的普通规则条件。

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


背景

之前一直讲过自己独立在做一个中后台管理系统,当然这个只是开始,未来会基于此开发其他项目,因为时间的原因,这项目算是搁置了一段时间,最近又重新拾取来完善。

项目链接如下

GitHub - wnhyang/okay-boot

GitHub - wnhyang/okay-vben-admin

其前端采用 vben 中后台开发框架,后端就是常用的 Spirng Boot 那一套,用户角色菜单设计也是最常用 RABC 的方案。

问题

如下是菜单管理查询到的菜单列表,展示为树形结构。

在给角色分配菜单权限时,使用的是一个 TreeSelect 的组件,该组件提供了可多选的树形结构菜单,当然这个组件本身就有很多配置项,可以自定义很多内容。

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


参考

REST Clients :: Spring Framework

【微服务 | SpringBoot 3.0】 新特性 —— 内置声明式 HTTP 客户端_springboot3.0 内置 http 服务 - CSDN 博客

七大主流的 HttpClient 程序比较

1、Java HttpURLConnection

JDK 自带的标准 HTTP 客户端 API,尽管功能相对基础,但因为内置于 JDK 中,无需额外依赖,所以在许多简单场景下仍然被广泛使用。

2、Java11 HttpClient

Java 11 起,JDK 新增了一个更现代化且功能更完善的 HTTP 客户端 API,旨在替代原有的 HttpURLConnection,支持 HTTP/2 和异步操作。

3、Apache HttpClient

Apache 软件基金会提供的成熟的 HTTP 客户端库,支持同步和异步操作,具备高度可配置性,提供了强大的连接管理和认证支持。

SpringBoot 下配合 RestTemplate 组件使用示例如下。

阅读全文 »

个人博客:无奈何杨(wnhyang)

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


参考

Spring Cloud Gateway CORS 方案看这篇就够了 - 腾讯云开发者社区 - 腾讯云

九种跨域方式实现原理(完整版) - 掘金

什么是跨域,有哪些解决方法

以下为 AI 回答

跨域是指由于浏览器的安全机制,当一个页面尝试通过 XMLHttpRequest 或 Fetch API 等方式向不同于当前页面源(协议、域名、端口三者之一不同的 URL)发起请求时,会被浏览器阻止,这称为 “同源策略” 限制。这是为了防止恶意网站通过脚本对其他网站的数据进行非法访问。

解决跨域问题的方法有很多种,以下是常见的几种:

1、CORS(Cross-Origin Resource Sharing)

CORS 是一种 W3C 标准,允许服务器表明哪些其他源可以请求资源。服务器通过设置响应头(如 Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers 等)来允许特定源或者所有源进行跨域请求。客户端(浏览器)在接收到响应后判断是否符合 CORS 规则,若符合则允许数据交互。

2、JSONP(JSON with Padding)

JSONP 是一种非正式传输协议,它利用 script 标签不受同源策略限制的特点,通过回调函数的形式来加载跨域数据。JSONP 只支持 GET 请求,并且要求服务器端配合提供 JSONP 形式的响应。

阅读全文 »
0%