首页 文章 精选 留言 我的

精选列表

搜索[本地大模型],共10000篇文章
优秀的个人博客,低调大师

gout v0.0.2版本发布,golang 实现的流式 http 客户端

gout v0.0.2 版本发布了,Change log (v0.0.2功能)如下: #52新增 WithContext,可以取消请求 #54unix 管道支持 #62增强 SetBody 函数,支持 io.Reader 接口 #63增强 BindBody 函数,支持 io.Writer 接口 #53新增 http2 文档 #55debug 模式 #57带 namespace 的 debug 模式 #56代码测试覆盖度达到 60% #71提升测试覆盖度到 90% #58新增和 resty 的对比文档 #72提升文档质量,突出特色功能

优秀的个人博客,低调大师

技本功丨甲方大人来了之运维数据分析平台搭建实战

袋鼠云日志团队时常遇到各种各样的甲方大人,毕竟我们是一个非常优秀的企业服务公司(自信满满),当然面对甲方大人的时候要做到处变不惊,临危不乱,镇定自若的接受需求…… 甲方大人的常用台词一定要记住:我们很忙,有好几套监控系统,能不能再不砍掉监控系统的情况下,帮助我们搞定日运维需求呢?这样的需求每天通过项目经理→产品经理→研发经理→浣熊(我)。 But,这个需求有点麻烦呀~ 我捋过我日渐稀疏的发,只能加油干啦! 先说下甲方大人的需求和痛点,甲方大人说平日的系统运维工作主要围绕应用、主机、数据库和业务四个方面。 (1)应用发布平台是IBM的WebSphereApplicationServer(简称WAS),应用的性能监控基于WAS自带监控模块 (2)主机监控基于IBMTivoliMonitoringSystem,业务监控则通过分析应用日志的方式实现 (3)数据库监控依赖一个古老的oracle性能监控工具 (4)应用日志需要登陆到AIX业务机器上查看 “每当出现一个问题,先登陆was看下业务进程性能趋势,再登陆Tivoli查看主机性能趋势,然后登陆数据库监控查看数据库性能趋势,再然后登陆AIX主机查看日志。一套下来肚子就饿了,到食堂发现好吃的饭菜已经被别人抢光了,希望你们能帮我们改善改善伙食“。嗯,听上去影响蛮大的,不过他们怎么知道我烧菜的手艺的,上周末做的清蒸鲈鱼味道还不错... 四个字,赶紧干活。在了解了甲方大人的需求和痛点后,经过一番苦思冥想,设计了下面的看上去有点复杂的架构图。大道至简,借鉴老子的一段话附和一下这张图,“人法地、地法天、天法道、道法自然”,老子用了十三个字,将天、地、人乃至整个宇宙的生命规律精辟涵括、阐述出来。 菜谱准备好了,小葱拌豆腐,开始下锅。 数据采集上,针对WAS、Tivoli、Oracle和AIX应用主机的采集需求,需要coding了(没有什么需求是一坨代码解决不了的,如果有那就两坨),前方高能,请做好笔记: (1)开发一个WAS进程性能采集器,参考https://github.com/alexivkin/WebSphere-Performance-Monitor,万能的python,哦no,这个是Jython,看起来跟python一样嘛,无非就是python里面用java,java里面跑python。由于是三年前的版本,加上没有IBM WAS的测试环境,花掉一个上午时间脑补调试,什么是脑补调试法,答按行过目代码、眼睛输入,大脑跑跑(非专业人士请勿模仿); (2)开发一个Tivoli数据收集器,又花掉一个晚上,Tivoli支持Soap方式拉取新能数据,我不会告诉你可以用一个CURL拉取所有主机性能所有数据的,想知道的留言处扣666; (3)开发一个Oracle数据库性能采集器,还好elastic 大佬开源了beats(https://github.com/elastic/beats),坑爹的是竟然不支持oracle,莫非oracle大佬的开发人员都休眠了么;花了两个晚上捣鼓捣鼓,支持个tps、qps、物理读、逻辑度、吞吐量还是可以的,小算一下支持200多个指标吧,oracle采集beat依赖oracleclient不是一般的麻烦; https://www.oracle.com/technetwork/topics/intel-macsoft-096467.html (4)开发一个AIX日志文件采集器,袋鼠云有技术大牛开发了一个,拿过来直接集成; https://github.com/DTStack/jfilebeat 数据接收和解析组件,袋鼠云自研了java版本的logstash,参考: https://github.com/DTStack/jlogstash 日志接收和解析性能是ruby版本性能5倍以上,关键是配置简单,分钟内上手 数据存储方面,最近一周的日志数据全部投递到elasticsearch里,以防哪天甲方大人心血来潮想搜个日志啥的;结构化的应用进程数据、主机性能数据、数据库性能数据和业务日志数据投递到clickhouse里,通过clickhouse强大的聚合计算能力(多表数据关联,sum/avg等聚合计算),计算出同一时间线上的业务和进程、主机以及数据库性能的关联趋势图。 一句话总结下ck吧,在sql里计算我只服ck! 链接: https://clickhouse-docs.readthedocs.io/en/latest/functions/ 源码请见: https://github.com/yandex/ClickHouse 坚持看到这里就是真爱了,贴上一张系统架构图,图中左方是数据采集层,easymanager是公司自研的自动部署神器(不用想了,没有开源),右边是数据展示端,把应用、主机、数据库、日志数据统一展示在一张大屏上,废话不说了,上菜!

优秀的个人博客,低调大师

目前本博主发现,功能最好用,免费的,云主机控制面板

vpsmate 安装需求 操作系统:CentOS/Redhat 5.4 或 5.4 以上版本,32位或64位均可,推荐使用 CentOS 6.2 64位。 内存大小:运行时占用约 20MB 左右的服务器内存。 请使用现代浏览器访问面板(IE8+、Firefox 14+、Chrome 21+),推荐使用 Chrome。 在线安装步骤 使用 SSH 连接工具,如 PuTTY、XShell、SecureCRT 等,连接到您的 Linux 服务器。 执行以下命令开始安装:# wget http://www.vpsmate.org/tools/install.py# python install.py 如下图所示: 安装完成后请设置管理员用户名和密码,如果直接回车,则使用默认的用户名admin和密码admin。 设置完后,打开给定的链接地址即可访问您的 VPSMate 面板。 如下图所示: 本文转自 技术花妞妞 51CTO博客,原文链接: http://blog.51cto.com/xiaogongju/2068328

优秀的个人博客,低调大师

latex/Xelatex书籍排版总结---顺便附上一本排好的6寸android书…

前言 园子里应该有不少朋友用latex 写文档,写论文,写简历,写博文,不知道有没有人用来排书?最近,学了一些latex顺便用它把android 设计指南,排成了6寸电子书的格式,手头上pad的,和e-ink可以很好的阅读…,说明一下,如果,你之前没学过latex的话,以下部分内容可能会看不懂…(用到是Ctex 套件,编译用xelatex) 书的结构 竟然,我们使用latex来排版,当然还排得专业一些(呵呵~),一般而言书的通常结构如下图所示: 对于latex而言,已经内置了book的样式,你只需声明documentclass类型就好了. \documentclass{book} 当然,默认的尺寸是A4paper,而我们这次要排6 寸电子看的版本就需要自己设计版面 需要如此设置: \usepackage[% paper paperheight=11.7cm,% margin=0in,% left=0.1cm,% right=0.1cm,% top=0.1cm,% bottom=0.2cm ]{geometry} 这样就很方便的设计好我们需要的版面 然后,利用latex 内置的专门为图书排版使用的命令即可 %用于生成罗马计数的前言 \frontmatter %前言内容 %生成阿拉伯计数的页码 \mainmatter %主体内容 %附录,自动用字母计数的chapter \appendix %附录内容 排版常用布局代码块 1.让winEdit 自动以utf-8打开tex文档,在文件的第一行打上 % !Mode:: "TeX:UTF-8" 2.插图 导言区中的宏包: %插入插图 \usepackage{graphicx} %一般我们用浮动体要进行插图 \begin{figure}[!hp] \section{创新的视觉效果} \centering \scalebox{1.0}{\includegraphics[ \end{figure} 效果: 3,双栏或者多栏等栏布局,我用的是multicol + float 实现 %多栏布局 \usepackage{multicol} \usepackage{float} %双栏等栏布局代码块 \begin{multicols}{2} \begin{figure}{H} %内容 \end{figure} \begin{figure}{H} %内容 \end{figure} \end{multicols} 效果: 3.不等栏布局方案: 用miniage实现,,如果你有更好的方案欢迎提出来 %这栏为内容宽度的三分之一,对齐使用c,t,b这个很难做到对齐,建议有一定 %功底的人才使用这套方案.. \begin{minipage}[c]{\textwidth/3} %内容 \begin{minipage} \begin{minipage[c]{\textwidth/3*2} %内容 \begin{minipage} 效果: 嗯,需要记录的代码就这些了,这部分,是提供给有latex基础的人作为一个参考使用…截图来自于kindle 电脑建议在线阅读:http://www.topfun.us/adchs/ 如果,你手头上e-ink 电子书,或者pad的话,可以去下载阅读 http://www.kuaipan.cn/file/id_2622545685707405.html 本文转自 liam2199 博客,原文链接: http://blog.51cto.com/youxilua/789498 如需转载请自行联系原作者

优秀的个人博客,低调大师

logstash5.0版本之后导入es数据指定ik分词器详解

阅读此文请先阅读上文:[大数据]-Elasticsearch5.3.1 IK分词,同义词/联想搜索设置,前面介绍了ES,Kibana5.3.1的安装配置,以及IK分词的安装和同义词设置,这里主要记录Logstash导入mysql数据到Elasticsearch5.3.1并设置IK分词和同义词。由于logstash配置好JDBC,ES连接之后运行脚本一站式创建index,mapping,导入数据。但是如果我们要配置IK分词器就需要修改创建index,mapping的配置,下面详细介绍。 一、Logstash-5.3.1下载安装: 下载:https://www.elastic.co/cn/downloads/logstash 解压:tar -zxf logstash-5.3.1.tar.gz 启动:bin/logstash -e 'input { stdin { } } output { stdout {} }' (参数表示终端输入输出)如下则成功。 Sending Logstash's logs to /home/rzxes/logstash-5.3.1/logs which is now configured via log4j2.properties [2017-05-16T10:27:36,957][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/home/rzxes/logstash-5.3.1/data/queue"} [2017-05-16T10:27:37,041][INFO ][logstash.agent ] No persistent UUID file found. Generating new UUID {:uuid=>"c987803c-9b18-4395-bbee-a83a90e6ea60", :path=>"/home/rzxes/logstash-5.3.1/data/uuid"} [2017-05-16T10:27:37,581][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>1, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>125} [2017-05-16T10:27:37,682][INFO ][logstash.pipeline ] Pipeline main started The stdin plugin is now waiting for input: [2017-05-16T10:27:37,886][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600} 二、Logstash-5.3.1连接mysql作为数据源,ES作为数据输出端: 由于此版本的logstash已经集成了jdbc插件,我们只需要添加一个配置文件xxx.conf。内容如下test.conf: input { stdin { } jdbc { # 数据库地址 端口 数据库名 jdbc_connection_string => "jdbc:mysql://IP:3306/dbname" # 数据库用户名 jdbc_user => "user" # 数据库密码 jdbc_password => "pass" # mysql java驱动地址 jdbc_driver_library => "/home/rzxes/logstash-5.3.1/mysql-connector-java-5.1.17.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "100000" # sql 语句文件,也可以直接写SQL,如statement => "select * from table1" statement_filepath => "/home/rzxes/logstash-5.3.1/test.sql" schedule => "* * * * *" type => "jdbc" } } output { stdout { codec => json_lines } elasticsearch { hosts => "192.168.230.150:9200" index => "test-1" #索引名称 document_type => "form" #type名称 document_id => "%{id}" #id必须是待查询的数据表的序列字段 } } 创建一个SQL文件:如上配置test.sql内容:select * from table1 test.conf,test.sql文件都在logstash的根目录下。 运行logstash脚本导入数据:bin/logstash -f test.conf启动如下; 等待数据导入完成。开启Es-head,访问9100端口如下: 可以看到已经导入了11597条数据。 更多详细的配置参考官方文档:plugins-inputs-jdbc-jdbc_driver_library 三、logstash是如何创建index,mapping,并导入数据? ES导入数据必须先创建index,mapping,但是在logstash中并没有直接创建,我们只传入了index,type等参数,logstash是通过es的mapping template来创建的,这个模板文件不需要指定字段,就可以根据输入自动生成。在logstash启动的时候这个模板已经输出了如下log: [2017-05-23T15:58:45,801][WARN ][logstash.outputs.elasticsearch] Restored connection to ES instance {:url=>#<URI::HTTP:0x68f0d43b URL:http://192.168.230.150:9200/>} [2017-05-23T15:58:45,805][INFO ][logstash.outputs.elasticsearch] Using mapping template from {:path=>nil} [2017-05-23T15:58:45,979][INFO ][logstash.outputs.elasticsearch] Attempting to install template {:manage_template=>{"template"=>"logstash-*", "version"=>50001, "settings"=>{"index.refresh_interval"=>"5s"}, "mappings"=>{"_default_"=>{"_all"=>{"enabled"=>true, "norms"=>false}, "dynamic_templates"=>[{"message_field"=>{"path_match"=>"message", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false}}}, {"string_fields"=>{"match"=>"*", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false, "fields"=>{"keyword"=>{"type"=>"keyword"}}}}}], "properties"=>{"@timestamp"=>{"type"=>"date", "include_in_all"=>false}, "@version"=>{"type"=>"keyword", "include_in_all"=>false}, "geoip"=>{"dynamic"=>true, "properties"=>{"ip"=>{"type"=>"ip"}, "location"=>{"type"=>"geo_point"}, "latitude"=>{"type"=>"half_float"}, "longitude"=>{"type"=>"half_float"}}}}}}}} 添加IK分词,只需要创建一个json文件:vim /home/rzxes/logstash-5.3.1/template/logstash.json添加如下内容: { "template": "*", "version": 50001, "settings": { "index.refresh_interval": "5s" }, "mappings": { "_default_": { "_all": { "enabled": true, "norms": false }, "dynamic_templates": [ { "message_field": { "path_match": "message", "match_mapping_type": "string", "mapping": { "type": "text", "norms": false } } }, { "string_fields": { "match": "*", "match_mapping_type": "string", "mapping": { "type": "text", "norms": false, "analyzer": "ik_max_word",#只需要添加这一行即可设置分词器为ik_max_word "fields": { "keyword": { "type": "keyword" } } } } } ], "properties": { "@timestamp": { "type": "date", "include_in_all": false }, "@version": { "type": "keyword", "include_in_all": false } } } } } 如需配置同义词,需自定义分词器,配置同义词过滤<IK分词同义词详见上一篇文章>。修改模板logstash.json如下: { "template" : "*", "version" : 50001, "settings" : { "index.refresh_interval" : "5s", #分词,同义词配置:自定义分词器,过滤器,如不配同义词则没有index这一部分 "index": { "analysis": { "analyzer": { "by_smart": { "type": "custom", "tokenizer": "ik_smart", "filter": ["by_tfr","by_sfr"], "char_filter": ["by_cfr"] }, "by_max_word": { "type": "custom", "tokenizer": "ik_max_word", "filter": ["by_tfr","by_sfr"], "char_filter": ["by_cfr"] } }, "filter": { "by_tfr": { "type": "stop", "stopwords": [" "] }, "by_sfr": { "type": "synonym", "synonyms_path": "analysis/synonyms.txt" #同义词路径 } }, "char_filter": { "by_cfr": { "type": "mapping", "mappings": ["| => |"] } } } } # index --end-- }, "mappings" : { "_default_" : { "_all" : { "enabled" : true, "norms" : false }, "dynamic_templates" : [ { "message_field" : { "path_match" : "message", "match_mapping_type" : "string", "mapping" : { "type" : "text", "norms" : false }} }, { "string_fields" : { "match" : "*", "match_mapping_type" : "string", "mapping" : { "type" : "text", "norms" : false, #选择分词器:自定义分词器,或者ik_mmax_word "analyzer" : "by_max_word", "fields" : { "keyword" : { "type" : "keyword" } } } } } ], "properties" : { "@timestamp" : { "type" : "date", "include_in_all" : false }, "@version" : { "type" : "keyword", "include_in_all" : false } } } } } 有了自定义模板文件,test.conf中配置模板覆盖使模板生效。test.conf最终配置如下: input { stdin { } jdbc { # 数据库地址 端口 数据库名 jdbc_connection_string => "jdbc:mysql://IP:3306/dbname" # 数据库用户名 jdbc_user => "user" # 数据库密码 jdbc_password => "pass" # mysql java驱动地址 jdbc_driver_library => "/home/rzxes/logstash-5.3.1/mysql-connector-java-5.1.17.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "100000" # sql 语句文件 statement_filepath => "/home/rzxes/logstash-5.3.1/mytest.sql" schedule => "* * * * *" type => "jdbc" } } output { stdout { codec => json_lines } elasticsearch { hosts => "192.168.230.150:9200" index => "test-1" document_type => "form" document_id => "%{id}" #id必须是待查询的数据表的序列字段 template_overwrite => true template => "/home/rzxes/logstash-5.3.1/template/logstash.json" } } 删除上次创建的index(由于数据导入时会根据原有数据的index,mapping进行索引创建),重新启动logstash。 最终在Kibana中检索关键词 番茄,就会发现西红柿也会被检索到。如下图: 致此logstash数据导入的template重写就完成了。 另一种方式配置IK分词:全局配置,不需要自定义模板。 curl -XPUT "http://192.168.230.150:9200/_template/rtf" -H 'Content-Type: application/json' -d' { "template" : "*", "version" : 50001, "settings" : { "index.refresh_interval" : "5s", "index": { "analysis": { "analyzer": { "by_smart": { "type": "custom", "tokenizer": "ik_smart", "filter": ["by_tfr","by_sfr"], "char_filter": ["by_cfr"] }, "by_max_word": { "type": "custom", "tokenizer": "ik_max_word", "filter": ["by_tfr","by_sfr"], "char_filter": ["by_cfr"] } }, "filter": { "by_tfr": { "type": "stop", "stopwords": [" "] }, "by_sfr": { "type": "synonym", "synonyms_path": "analysis/synonyms.txt" } }, "char_filter": { "by_cfr": { "type": "mapping", "mappings": ["| => |"] } } } } }, "mappings" : { "_default_" : { "_all" : { "enabled" : true, "norms" : false }, "dynamic_templates" : [ { "message_field" : { "path_match" : "message", "match_mapping_type" : "string", "mapping" : { "type" : "text", "norms" : false }} }, { "string_fields" : { "match" : "*", "match_mapping_type" : "string", "mapping" : { "type" : "text", "norms" : false, "analyzer" : "by_max_word", "fields" : { "keyword" : { "type" : "keyword" } } } } } ], "properties" : { "@timestamp" : { "type" : "date", "include_in_all" : false }, "@version" : { "type" : "keyword", "include_in_all" : false } } } } }' 可以使用curl查看模板:curl -XGET "http://192.168.230.150:9200/_template" 原文网址:http://www.cnblogs.com/NextNight/p/6860283.html

优秀的个人博客,低调大师

【新闻】微软推出适用于Linux和Docker的SQL Server 2017版本

前言距离SQL Server 2016发布的一年多以后,微软在本周推出了Microsoft SQL Server 2017的第一个发行版本。新版本对主要的新功能进行了一些较小的更新,其中最重要的新功能是支持适用于Linux系统(RHEL、SUSE Enterprise Linux和Ubuntu)以及运行在Windows、Linux和MacOS上的容器,其中包括在可用性组群中实现高可用,并集成本地Linux集群工具(如Pacemaker)。 RC1使用域凭证和TLS(Transportation Layer Security)加密方案(1.0,1.1或1.2),将客户端应用程序发送的数据加密到SQL Server,并在Windows或Linux客户端新增支持Microsoft AD身份验证系统,实现了在Linux上对SQL Serve

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册