<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[架构师老狼]]></title><description><![CDATA[资深架构师，专注于区块链、微服务、大数据研究！坚定信念，乐观心态，永不止步！]]></description><link>https://blog.youkuaiyun.com/wolfjson</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wolfjson]]></copyright><item><title><![CDATA[区块链基础之密码学及安全技术]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/131363809</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/131363809</guid><author>wolfjson</author><pubDate>Sat, 24 Jun 2023 17:14:32 +0800</pubDate><description><![CDATA[本质上，同态加密是指这样一种加密函数，对明文进行环上的加法和乘法运算再加密，与加密后对密文进行相应的运算，结果是等价的。具有同态性质的加密函数是指两个明文a、b满足Dec(En(a)⊙En(b))=a⊕b的加密函数，其中En是加密运算，Dec是解密运算，⊙、⊕分别对应明文和密文域上的运算。，mk)，或写成：f(En(m1)，En(m2)，…，En(mk))=En(f(m1，m2，…口令的安全性：仅将口令的哈希值进行保存，进行口令检验时仅需对比哈希值即可，即使攻击者获取了口令的哈希值，也无法计算出口令。]]></description><category></category></item><item><title><![CDATA[区块链基础之共识机制]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/131037374</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/131037374</guid><author>wolfjson</author><pubDate>Sun, 04 Jun 2023 21:36:12 +0800</pubDate><description><![CDATA[区块链上的共识机制主要解决由谁来构造区块，以及如何维护区块链统一的问题。]]></description><category></category></item><item><title><![CDATA[Fabric架构详解]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/130904157</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/130904157</guid><author>wolfjson</author><pubDate>Sat, 27 May 2023 18:09:28 +0800</pubDate><description><![CDATA[1 整体架构

2 运行架构


Fabric CA(可选)
peer：主节点模块，负责存储区块链数据，运行维护链码
orderer：交易打包，排序模块
cryptogen：组织和证书等资料生成模块
configtxgen：生成用于通道配置的文件和创世区块等
configtxlator：负责解析格式化后的区块和交易文件

3 网络运行流程

4 交易流程


5 共识过程


]]></description><category></category></item><item><title><![CDATA[区块链应用：椭圆曲线数字签名算法ECDSA]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/126753011</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/126753011</guid><author>wolfjson</author><pubDate>Wed, 07 Sep 2022 20:44:24 +0800</pubDate><description><![CDATA[椭圆曲线数字签名算法，因其高安全性，目前已广发应用在比特币、以太坊、超级账本等区块链项目中。]]></description><category></category></item><item><title><![CDATA[Spark+Flink+Iceberg打造湖仓一体架构实践探索]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/123529939</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/123529939</guid><author>wolfjson</author><pubDate>Wed, 16 Mar 2022 17:47:40 +0800</pubDate><description><![CDATA[数据湖-大数据生态杀青
数据仓库的痛点

只能存储结构化数据，无法采集存储非结构化数据
无法存储原始数据，所有的数据须经过ETL清洗过程
离线数仓的数据表牵一发而动全身，数据调整工程量大
实时数仓存储空间有限，无法采集和存储海量实时数据
回溯效率低下，实时数据和离线数据计算接口难以统一
Kafka 做实时数仓，以及日志传输。Kafka 本身存储成本很高，且数据保留时间有时效性，一旦消费积压，数据达到过期时间后，就会造成数据丢失且没有消费到
将实时要求不高的业务数据入湖、比如说能接受 1-10 分钟的延迟。因]]></description><category></category></item><item><title><![CDATA[2022 Mysql优化来一波]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/122713483</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/122713483</guid><author>wolfjson</author><pubDate>Thu, 27 Jan 2022 11:32:18 +0800</pubDate><description><![CDATA[1 redo log（重做日志）
1）InnoDB首先将redo log放入到redo log buffer，然后按一定频率将其刷新到redo log file。下列三种情况下会将redo log buffer刷新到redo log file：

Master Thread每一秒将redo log buffer刷新到redo log file
每个事务提交时会将redo log buffer刷新到redo log file
当redo log缓冲池剩余空间小于1/2时，会将redo log buffer刷新]]></description><category></category></item><item><title><![CDATA[clickhouse 21.x生产实践优化]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/122651226</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/122651226</guid><author>wolfjson</author><pubDate>Sun, 23 Jan 2022 14:40:26 +0800</pubDate><description><![CDATA[1 时间字段类型

建表时能用数值型或日期时间型表示的字段就不要用字符串，全String 类型在以Hive(hbase)为中心的数仓建设中常见，但 ClickHouse 环境不应受此影响。虽然 ClickHouse 底层将DateTime 存储为时间戳Long类型，但不建议存储Long 类型，因为DateTime 不需要经过函数转换处理，执行效率高、可读性好。

2 Nullable类型

官方已经指出Nullable 类型几乎总是会拖累性能，因为存储Nullable 列时需要创建一个额外的文件来存储 N.]]></description><category></category></item><item><title><![CDATA[2021 个人成长复盘]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/122357345</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/122357345</guid><author>wolfjson</author><pubDate>Fri, 07 Jan 2022 09:18:14 +0800</pubDate><description><![CDATA[感恩2021，畅想2022

01 工作复盘
过去的一年里，你能往简历中浓妆艳抹地写几笔吗？你学了什么新的技术？做了什么大的项目？取得了什么成绩？获得了什么认可？这一年你进步了多少？
02 学习复盘
你看了多少本书？听了多少堂课？列一个书单和课单看一看。你有没有考取什么认证或资质？你有没有掌握新的学习方法或学习途径？
03 财富复盘
你全年的收入和支出，你一年下来的结余和存款，你的睡后收入，注意不是纳税的税，是你闭着眼睛睡大觉也有钱进来的睡后收入，你有什么样的规划？
04 健康复盘
你的身体健康状况如何？如]]></description><category></category></item><item><title><![CDATA[微服务治理系列二]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/122250472</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/122250472</guid><author>wolfjson</author><pubDate>Fri, 31 Dec 2021 15:29:21 +0800</pubDate><description><![CDATA[注册中心Nacos
1 主流注册中心对比

2 CAP实践


C是所有节点在同一时间看到的数据是一致的；而A的定义是所有的请求都会收到响应。何时选择使用何种模式？
如果不需要存储服务级别的信息且服务实例是通过nacos-client注册，并能够保持心跳上报，那么就可以选择AP模式。当前主流的服务如 Spring cloud 和 Dubbo 服务，都适用于AP模式，AP模式为了服务的可能性而减弱了一致性，因此AP模式下只支持注册临时实例。
如果需要在服务级别编辑或者存储配置信息，那么 CP 是必须，K8S服]]></description><category></category></item><item><title><![CDATA[微服务治理系列一]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/122237672</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/122237672</guid><author>wolfjson</author><pubDate>Thu, 30 Dec 2021 17:50:15 +0800</pubDate><description><![CDATA[响应式编程：
1 spring mvc与spring webflux

两个框架都可以使用注解方式，都运行在 Tomet 等容器中；SpringMVC 采用命令式编程，Webflux 采用异步响应式编程
SpringMVC 方式实现，同步阻塞的方式，基于 SpringMVC+Servlet+Tomcat；SpringWebflux 方式实现，异步非阻塞 方式，基于 SpringWebflux+Reactor+Netty

2 响应式编程（Reactor 实现）

响应式编程操作中，Reactor 是满足 R]]></description><category></category></item><item><title><![CDATA[Spark ML处理样本类别不均衡问题]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/122057969</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/122057969</guid><author>wolfjson</author><pubDate>Tue, 21 Dec 2021 11:44:12 +0800</pubDate><description><![CDATA[样本类别分布不均衡导致的危害？

样本类别不均衡将导致样本量少的分类所包含的特征过少，并很难从中提取规律；
即使得到分类模型，也容易产生过度依赖与有限的数据样本而导致过拟合问题，当模型应用到新的数据上时，模型的准确性会很差

解决类别不平衡数据
1 过采样代表性算法-SMOTE
1.1 算法思想

为了解决随机过采样中造成模型过拟合问题，⼜能保证实现数据集均衡的⽬的，出现了过采样法代表性的算法SMOTE 算法。
SMOTE算法是对随机过采样⽅法的⼀个改进算法，由于随机过采样⽅法是直接对少数类进⾏重采⽤，会使]]></description><category></category></item><item><title><![CDATA[医疗机构数字化转型 -无纸化诊疗产品思维]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/121552453</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/121552453</guid><author>wolfjson</author><pubDate>Fri, 26 Nov 2021 09:19:36 +0800</pubDate><description><![CDATA[1 纸质化医疗行业痛点

《医疗机构管理条例实施细则》“门诊病历的保存期不得少于15年;住院病历的保存期不得少于30年”

《电子病历应用管理规范》“有条件的医疗机构电子病历系统可以使用电子签名进行身份认证，可靠的电子签名与手写签名或盖章具有同等的法律效力”


2 无纸化医疗解决方案
2.1 应用全场景

2.2 可信度

卫生部于 2010 年发布了《卫生系统电子认证服务管理办法》，从行业角度提出使用电子认证服务保障卫生信息系统安全，满足卫生信息系统在身份认证、授权管理、责任认定等方面的信息安全需求。
]]></description><category></category></item><item><title><![CDATA[clickhouse 20.x实践小计]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/121541419</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/121541419</guid><author>wolfjson</author><pubDate>Thu, 25 Nov 2021 17:29:31 +0800</pubDate><description><![CDATA[1 列式存储与行式存储对比

采用行式存储时，数据在磁盘上的组织结构为：

好处是想查某个人所有的属性时，可以通过一次磁盘查找加顺序读取就可以。但是当想查所有人的年龄时，需要不停的查找，或者全表扫描才行，遍历的很多数据都是不需要的。
采用列式存储时，数据在磁盘上的组织结构为：

这时想查所有人的年龄只需把年龄那一列拿出来就可以了
对于列的聚合，计数，求和等统计操作原因优于行式存储。
由于某一列的数据类型都是相同的，针对于数据存储更容易进行数据压缩，每一列选择更优的数据压缩算法，大大提高了数据的压缩比重。
由]]></description><category></category></item><item><title><![CDATA[kafka优化笔记]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/121323037</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/121323037</guid><author>wolfjson</author><pubDate>Sun, 14 Nov 2021 21:31:22 +0800</pubDate><description><![CDATA[1 mq的作用
解耦、异步、削峰填谷
2 kafka架构

1）Producer ：消息生产者，就是向 kafka broker 发消息的客户端；
2）Consumer ：消息消费者，向 kafka broker 取消息的客户端；
3）Consumer Group （CG）：消费者组，由多个 consumer 组成。消费者组内每个消费者负
责消费不同分区的数据，一个分区只能由一个组内消费者消费；消费者组之间互不影响。所有的消费者都属于某个消费者组，即消费者组是逻辑上的一个订阅者。
4）Broker ：一台 ]]></description><category></category></item><item><title><![CDATA[spark3.x 生产调优笔记]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/121158570</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/121158570</guid><author>wolfjson</author><pubDate>Fri, 05 Nov 2021 16:40:48 +0800</pubDate><description><![CDATA[1 spark sql写入mysql非常慢

有这样一个业务场景：需要将通过Spark处理之后的数据写入MySQL，并在在网页端进行可视化输出。Spark处理之后有大概40万条数据，写入MySQL却要耗费将近30分钟，这也太慢了！
后来翻看了Spark向JDBC数据源写数据的那部分源码，虽然源码中的实现使用的确实是 PreparedStatement 的addBatch()方法和executeBatch()方法，但是我们再去翻看executeBatch()方法的实现后发现，它并不是每次执行一批插入，而是循环]]></description><category></category></item><item><title><![CDATA[元数据管理理论]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/120902354</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/120902354</guid><author>wolfjson</author><pubDate>Fri, 22 Oct 2021 11:45:06 +0800</pubDate><description><![CDATA[1 为什么需要数据治理？

通过数据治理实现企业数据的标准化、提高数据质量、提升业务处理的效率，为数据分析提供准确的数据支撑，赋能业务，助力企业实现数字化转型。


2 数据治理的本质

数据要产生价值，需要一个合理的“业务目标”，数据治理的所有活动应该围绕真实的业务目标而开展，建立数据标准、提升数据质量只是手段，而不是目标。因此数据治理的第一步不是分析数据问题，而是分析业务问题，找到企业的核心业务诉求，定义数据治理的目标和范围。

3 数据治理架构


在DAMA 数据管理知识体系指南中，数据治理位于数据]]></description><category></category></item><item><title><![CDATA[hive3.x on spark3.0生产调优实践]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/120335367</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/120335367</guid><author>wolfjson</author><pubDate>Thu, 16 Sep 2021 20:18:39 +0800</pubDate><description><![CDATA[1 数据倾斜

绝大部分任务都很快完成，只有一个或者少数几个任务执行的很慢甚至最终执行失败，这样的现象为数据倾斜现象。
将数据倾斜分为单表携带了 GroupBy 字段的查询和两表（或者多表）Join 的查询。

1.1 单表数据倾斜优化
1.1.1 Map 端进行聚合 - GroupBy 操作同时聚合函数为 count 或者 sum
set hive.map.aggr = true;
set hive.groupby.mapaggr.checkinterval = 100000;
set hive.grou]]></description><category></category></item><item><title><![CDATA[Hadoop3.x生产环境调优之高可用]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/120261620</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/120261620</guid><author>wolfjson</author><pubDate>Mon, 13 Sep 2021 16:26:10 +0800</pubDate><description><![CDATA[1 hadoop HA高可用

实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制：HDFS的HA和YARN的HA。
前提：配置zookeeper集群

1.1 HDFS HA 高可用
工作机制

元数据管理方式需要改变：内存中各自保存一份元数据；Edits日志只有Active状态的NameNode节点可以做写操作；两个NameNode都可以读取Edits；共享的Edits放在一个共享存储中管理（journal和NFS两个主流实现）；
需要一个状态管理功能模块：实现了一个zkfai]]></description><category></category></item><item><title><![CDATA[Flink分布式缓存]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/118601615</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/118601615</guid><author>wolfjson</author><pubDate>Fri, 09 Jul 2021 11:00:15 +0800</pubDate><description><![CDATA[分布式缓存

Flink提供了一个分布式缓存，类似于hadoop，可以使用户在并行函数中很方便的读取本地文件，并把它放在taskmanager节点中，防止task重复拉取。 此缓存的工作机制如下：程序注册一个文件或者目录(本地或者远程文件系统，例如hdfs或者s3)，通过ExecutionEnvironment注册缓存文件并为它起一个名称。 当程序执行，Flink自动将文件或者目录复制到所有taskmanager节点的本地文件系统，仅会执行一次。用户可以通过这个指定的名称查找文件或者目录，然后从taskma]]></description><category></category></item><item><title><![CDATA[Flink检查点机制与状态管理]]></title><link>https://blog.youkuaiyun.com/wolfjson/article/details/118545872</link><guid>https://blog.youkuaiyun.com/wolfjson/article/details/118545872</guid><author>wolfjson</author><pubDate>Wed, 07 Jul 2021 14:29:03 +0800</pubDate><description><![CDATA[1 检查点机制
1.1 CheckPoints
为了使 Flink 的状态具有良好的容错性，Flink 提供了检查点机制 (CheckPoints) 。通过检查点机制，Flink 定期在数据流上生成 checkpoint barrier ，当某个算子收到 barrier 时，即会基于当前状态生成一份快照，然后再将该 barrier 传递到下游算子，下游算子接收到该 barrier 后，也基于当前状态生成一份快照，依次传递直至到最后的 Sink 算子上。当出现异常后，Flink 就可以根据最近的一次的快照数据]]></description><category></category></item></channel></rss>