<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Keyon Y的博客]]></title><description><![CDATA[车辆网数字化工程师，分享车机智能网联架构技术。]]></description><link>https://blog.youkuaiyun.com/u010467784</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u010467784]]></copyright><item><title><![CDATA[车联网的事件告警实现方案]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/160626852</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/160626852</guid><author>u010467784</author><pubDate>Mon, 04 May 2026 10:00:00 +0800</pubDate><description><![CDATA[决策理由去重与抑制独立实现解决不同层面问题，去重防重复记录，抑制防重复通知去重键包含事件特征故障和事件规则按具体码去重，避免误杀不同事件抑制键不包含事件特征同规则同车辆在抑制窗口内只推送一次，避免轰炸状态明确区分SUPPRESSED 仍记录日志，便于审计和追溯恢复条件清除抑制避免恢复后仍被抑制，确保下次触发正常通知故障规则专用/兜底分离提升评估效率，避免全量规则遍历。]]></description><category></category></item><item><title><![CDATA[车联网规则引擎设计之热更新与版本管理]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/160616124</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/160616124</guid><author>u010467784</author><pubDate>Wed, 29 Apr 2026 13:50:11 +0800</pubDate><description><![CDATA[决策理由规则与版本分离支持版本追溯、快速回滚，测试后再发布全量刷新缓存避免增量更新的并发问题，替换操作原子且快速去重与抑制分离去重防止数据库冗余，抑制防止下游重复通知Redis 快照 + Sorted Set 索引高效支持实时列表查询、按时间倒序、多维度筛选恢复条件配置化不同规则类型灵活配置恢复策略，无需修改代码Redis Stream 推送解耦规则引擎与下游，天然支持多消费者、消息持久化。]]></description><category></category></item><item><title><![CDATA[车联网MQTT 消息处理的高并发优化]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/160561371</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/160561371</guid><author>u010467784</author><pubDate>Mon, 27 Apr 2026 16:09:37 +0800</pubDate><description><![CDATA[决策理由Redis Stream 而非纯内存队列进程重启不丢数据，成本远低于引入 Kafka单协程 XREAD 顺序消费避免并发消费带来的顺序性问题，当前规模下吞吐足够遥测攒批 40 条异步 flush平衡实时性与写入吞吐，ClickHouse 批量写入性能远优于逐条Protobuf 优先 + JSON 降级兼顾新终端（Protobuf）和老终端（JSON），平滑迁移接口抽象（Decoder / Deduper / EventDispatcher）]]></description><category></category></item><item><title><![CDATA[webGL前端数字孪生技术方案]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/130262231</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/130262231</guid><author>u010467784</author><pubDate>Thu, 20 Apr 2023 11:35:44 +0800</pubDate><description><![CDATA[webgl主要是两大领域的知识，前端领域：HTML、CSS、BOM、DOM、Javascript以及计算机图形学领域：建模、渲染、动画、人机交互基本概念相机 Camera几何体 Geometry材质 Material网格 Mesh动画 Animation模型 Model加载器 Loader光照 Light着色器 Shaderthree.js程序结构图树状图。]]></description><category></category></item><item><title><![CDATA[jq与js中的事件机制与阻止]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/78743707</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/78743707</guid><author>u010467784</author><pubDate>Thu, 07 Dec 2017 17:19:09 +0800</pubDate><description><![CDATA[版权声明：此文首发于我的个人站Keyon Y，转载请注明出处。
JQuery中的事件绑定，都是属于事件冒泡。JQuery中绑定事件处理函数的几种方式，都不允许我们传递事件类型（是事件冒泡，还是事件捕获）。例如：  .on(events [, selector ] [, data ], handler) 
参数 
events  - String类型一个或多个用空格分隔的事件类型和可选的命名空间，例如]]></description><category></category></item><item><title><![CDATA[git update-index —assume-unchange path]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/78743700</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/78743700</guid><author>u010467784</author><pubDate>Thu, 07 Dec 2017 17:18:38 +0800</pubDate><description><![CDATA[版权声明：此文首发于我的个人站Keyon Y，转载请注明出处。
有的时候，不小心提交了一个配置文件localconfig.js，每次在本地开发测试之后，都需要更改配置文件。相当麻烦。 
使用    git update-index --assume-unchanged   /path/file
可以忽略这个修改。从而不用提交到库里面。  但是此方法只作用于本地，其他协同开发的同事并不生效，需要也执行]]></description><category></category></item><item><title><![CDATA[IE下getTime()返回NaN]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/78743693</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/78743693</guid><author>u010467784</author><pubDate>Thu, 07 Dec 2017 17:18:02 +0800</pubDate><description><![CDATA[版权声明：此文首发于我的个人站Keyon Y，转载请注明出处。
通过IE开发者工具控制台执行js代码发现，new Date(“2017-11-30 16:13:10”).getTime() 在IE下会返回NaN，而其他浏览器可以正常返回毫秒数。原因解析由于毫秒数在IE浏览器下没有正确获得，所以在之后的计算中，计算结果为undefined解决方法自定义方法自定义一个NewDate方法，通过调用NewD]]></description><category></category></item><item><title><![CDATA['$.browser.msie' 为空或不是对象的问题]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/78743684</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/78743684</guid><author>u010467784</author><pubDate>Thu, 07 Dec 2017 17:17:33 +0800</pubDate><description><![CDATA[版权声明：此文首发于我的个人站Keyon Y，转载请注明出处。
jQuery 从 1.9 版开始，移除了 .browser和.browser 和 .browser.version ， 取而代之的是 $.support 。 在更新的 2.0 版本中，将不再支持 IE 6/7/8。 
解决方法一：<!--[if lt IE 9]>
<script src='/jquery-1.10.1.min.js'>]]></description><category></category></item><item><title><![CDATA[handlerbars转义和反转义]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/78743675</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/78743675</guid><author>u010467784</author><pubDate>Thu, 07 Dec 2017 17:16:53 +0800</pubDate><description><![CDATA[版权声明：此文首发于我的个人站Keyon Y，转载请注明出处。
输出’<img src=”/53.gif” />’ 之类的字符时, 如果使用 ‘<div>{{content}}</div>’这种语法就会自动转义，变成‘&\lt;img src=”/53.gif” /&\gt;’如果不想转义，可以使用两种方法
{{{
SafeString
{{{‘<div>{{{content}}}</div>’或者]]></description><category></category></item><item><title><![CDATA[axios设置请求头内容]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/78623173</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/78623173</guid><author>u010467784</author><pubDate>Fri, 24 Nov 2017 11:56:43 +0800</pubDate><description><![CDATA[axios设置请求头中的Authorization 和 cookie 信息：GET请求axios.get(urlString, 
    {
        headers: {
            'Authorization': 'Bearer ' + token,
            "Cookie" : 'sessionId=' + sessionId + '; recId=' +]]></description><category></category></item><item><title><![CDATA[原生js制作虚拟键盘]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/78286641</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/78286641</guid><author>u010467784</author><pubDate>Thu, 19 Oct 2017 16:42:32 +0800</pubDate><description><![CDATA[今天想起来群友说过之前面试支付宝遇到的一个面试题：问有没有封装过虚拟键盘。 
就动手自己写个玩玩儿~原生js完成的，没有做兼容。 
要注意的地方就是： 
*  字符实体和字符，innerHTML和innerText的区别 
*  原生方法写$的addClass和removeClass效果如下图。 
下面上代码：<!DOCTYPE html>
<html>
<head>
    <meta chars]]></description><category></category></item><item><title><![CDATA[python在cmd中打印彩色文字]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/78249607</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/78249607</guid><author>u010467784</author><pubDate>Mon, 16 Oct 2017 14:45:03 +0800</pubDate><description><![CDATA[百度来的 颜色值不太准确，下面的是亲测修改的； 
单独写了一个文件 printColor.py，使用的时候只要作为模块import进来就行。import ctypes# 【强调】 有蓝色背景色
# 7 = >默认值
# 0 = >黑色
# 1 =蓝
# 2 = >绿色
# 3 = >水
# 4 = >红色
# 5 = >紫色-purple
# 6 = >黄-yellow
# 7 = >白色-whit]]></description><category></category></item><item><title><![CDATA[带有参数的decorator 装饰器]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/78213906</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/78213906</guid><author>u010467784</author><pubDate>Thu, 12 Oct 2017 13:39:55 +0800</pubDate><description><![CDATA[// 请给 @performace 增加一个参数，允许传入's'或'ms'：
@performance('ms')
def factorial(n):
    return reduce(lambda x,y: x*y, range(1, n+1))import timedef performance(unit):
    def a(f):
        def b(*args, **kw):]]></description><category></category></item><item><title><![CDATA[express路由模块化]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/78213892</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/78213892</guid><author>u010467784</author><pubDate>Thu, 12 Oct 2017 13:38:16 +0800</pubDate><description><![CDATA[在node启动文件里（app.js）配制了 路由配制文件的目录：....
app.use('/',require(path.join(config.configRoot,'/routes')));
....然后 express会自动加载’/routes’目录下名为 index.js的文件// index.js
var express = require('express');
var router]]></description><category></category></item><item><title><![CDATA[Vue2踩坑记-Eslint]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/73920880</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/73920880</guid><author>u010467784</author><pubDate>Thu, 29 Jun 2017 17:33:47 +0800</pubDate><description><![CDATA[写Vue2的模块化的时候，代码格式稍微不规范，比如：多打了一个空格、没有正确缩进等等，都会报错，报错的意思 就是说 ‘空格多了’、‘缩进不正确’布拉布拉….  还以为vue2和Jade一样对代码的缩进要求很高呢，然后查了一下才回想起来 
安装Vue2的时候，默认安装了Eslint的工具，就是 Eslint搞的鬼..ESLint是一个QA工具，用来避免低级错误和统一代码的风格Vue2的根目录里有个 .]]></description><category></category></item><item><title><![CDATA[angular2报错记录-routerLink]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/73605201</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/73605201</guid><author>u010467784</author><pubDate>Thu, 22 Jun 2017 15:55:43 +0800</pubDate><description><![CDATA[Can’t bind to ‘routerLink’ since it isn’t a known property of ‘a’…此报错原因： 
  需要在module中引入RouterModule； 
  如果存在module嵌套，则每一个module都应该引入RouterModule。import {RouterModule} from '@angular/router';]]></description><category></category></item><item><title><![CDATA[angular2报错记录-@Component装饰器]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/73499512</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/73499512</guid><author>u010467784</author><pubDate>Tue, 20 Jun 2017 16:02:31 +0800</pubDate><description><![CDATA[Unexpected value ‘AnyComponent’ declared by the module ‘AppModule’…此报错的原因： 
因为装饰器@component需要紧挨着要导出的组件，没有这个修饰符,你的组件并不是一个真正的组件，只是一个类。@Component({
  selector: 'app-hero-app',
  templateUrl: './hero-app.c]]></description><category></category></item><item><title><![CDATA[为Hexo加入浏览量的功能]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/73457662</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/73457662</guid><author>u010467784</author><pubDate>Mon, 19 Jun 2017 10:40:42 +0800</pubDate><description><![CDATA[版权声明：此文首发于我的个人站为Hexo加入浏览量的功能，转载请注明出处。
Hexo是和WordPress一样的完善的博客系统，但是好多辅助功能/插件需要是访问谷歌的服务器的，在我大天朝就只能看看了。可是我们勤劳的程序猿们不甘心不那么完美，所以大神们写了各种教程，通过其他的方法解决了因为谷歌而不能使用的功能， 
今天就来说说为Hexo博客网站加上的浏览量功能。原理就是使用leancloud作为数据库]]></description><category></category></item><item><title><![CDATA[angular $location服务的配置]]></title><link>https://blog.youkuaiyun.com/u010467784/article/details/73457371</link><guid>https://blog.youkuaiyun.com/u010467784/article/details/73457371</guid><author>u010467784</author><pubDate>Mon, 19 Jun 2017 10:14:21 +0800</pubDate><description><![CDATA[location服务可以用来分析和修改浏览器URL地址，使用时需要注意的配置：想配置location服务可以用来分析和修改浏览器URL地址，使用时需要注意的配置：  
想配置location服务，需要获得$locationProvider，并配置： 
html5Mode(true); //开启html5模式 
如下：.config(['$locationProvider', function($lo]]></description><category></category></item></channel></rss>