无奈何杨(wnhyang)

I will keep to fight

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

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


简介

GitHub - wnhyang/geoHelper

无奈何杨/geoHelper

geoHelper整合了身份证、手机号、IPGPS解析方法,基于内存提供离线高性能解析服务。

身份证/手机号解析服务

IP/GPS解析服务,ip2region,逆地理编码

数据来源

数据 来源
行政区划 GitHub - modood/Administrative-divisions-of-China
手机号 GitHub - EeeMt/phone-number-geo
IP 狮子的魂/ip2region
geo 中国城市坐标(最全最完整)

身份证解析

适用国内身份证解析,作为Hutool.IdcardUtil的扩展,加入AdocUtil,意为中国行政区划工具。

方法包括:

  • getProvince 获取省份
  • getProvinceName 获取省份名称
  • getCity 获取城市
  • getCityName 获取城市名称
  • getArea 获取区县
  • getAreaName 获取区县名称
  • getPca 获取省市区

当然基于GitHub - modood/Administrative-divisions-of-China可以扩展到乡级(乡镇街道)、 村级(村委会居委会),那么数据量会大一些,可以将数据存储在数据库中使用。

阅读全文 »

个人博客:无奈何杨(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)时代,它是以服务大众、激发生产力为主的技术。这两者之间看起来似乎是一种技术的差异,但实际上是思想观念层面的差异。”

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

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

参考:

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

以下两图都来源于此

image
阅读全文 »

个人博客:无奈何杨(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:一个完整的风控引擎,需要有哪些功能?

yuque_diagram
阅读全文 »

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

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


提要

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

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

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

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

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

yuque_diagram

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

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

阅读全文 »

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

个人语雀:wnhyang

共享语雀:在线知识共享

Github:wnhyang - Overview


背景

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

项目链接如下

GitHub - wnhyang/okay-boot

GitHub - wnhyang/okay-vben-admin

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

问题

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

image

在给角色分配菜单权限时,使用的是一个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组件使用示例如下。

阅读全文 »
0%